Kline.php
3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
namespace trader\struct;
class Kline
{
public $time; //k线开始时间
public $open;
public $high;
public $low;
public $close;
public $vol;
public $volQuote;
public $uts; //k线更新时间
public bool $isFinal;
public function __construct($time, $open, $high, $low, $close, $vol, $volQuote, $uts, bool $isFinal)
{
$this->time = $time;
$this->open = $open;
$this->high = $high;
$this->low = $low;
$this->close = $close;
$this->vol = $vol;
$this->volQuote = $volQuote;
$this->uts = $uts;
$this->isFinal = $isFinal;
}
public function toArray()
{
return [
'time' => $this->time,
'open' => $this->open,
'high' => $this->high,
'low' => $this->low,
'close' => $this->close,
'vol' => $this->vol,
'volQuote' => $this->volQuote,
'uts' => $this->uts,
'isFinal' => $this->isFinal,
];
}
public static function transferOkx($data)
{
$time = $data[0];
$open = $data[1];
$high = $data[2];
$low = $data[3];
$close = $data[4];
if (count($data) > 6) {
$vol = $data[6];
$volQuote = $data[7];
} else {
$vol = 0;
$volQuote = 0;
}
$isFinal = $data[8] == "1";
return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $time, $isFinal);
}
public static function transferBinance($data)
{
$kline = $data['k'];
$time = $kline['t'];
$open = $kline['o'];
$high = $kline['h'];
$low = $kline['l'];
$close = $kline['c'];
$vol = $kline['v'];
$volQuote = $kline['q'];
$uts = $data['E'];
$isFinal = $kline['x'];
return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal);
}
public static function transferBinanceRest($data)
{
$time = $data[0];
$open = $data[1];
$high = $data[2];
$low = $data[3];
$close = $data[4];
$vol = $data[5];
$volQuote = $data[7];
$uts = $data[0];
$isFinal = true;
return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal);
}
public static function transferBybit($data)
{
$kline = $data['data'][0];
$time = $kline['start'];
$open = $kline['open'];
$high = $kline['high'];
$low = $kline['low'];
$close = $kline['close'];
$vol = $kline['volume'];
$volQuote = $kline['turnover'];
$uts = $kline['timestamp'];
$isFinal = $kline['confirm'];
return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal);
}
public static function transferBitget($data)
{
$kline = $data['data'][0];
$time = (int)($kline[0]);
$open = (float)$kline[1];
$high = (float)$kline[2];
$low = (float)$kline[3];
$close = (float)$kline[4];
$vol = (float)$kline[5];
$volQuote = (float)$kline[6];
$uts = $data['ts'];
$isFinal = $data['action'] == "snapshot";
return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal);
}
}