Cácexchange.GetData()
chức năng được sử dụng để có được dữ liệu tải bởi cácexchange.SetData()
hoặc được cung cấp bởi một liên kết bên ngoài.
Các hồ sơ trong bộ sưu tập dữ liệu. đối tượng
trao đổi.GetData(key) trao đổi.GetData ((key, timeout)
Tên của bộ sưu tập dữ liệu chìa khóa đúng chuỗi Sử dụng để thiết lập thời gian cache trong milliseconds. thời gian nghỉ sai số
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
while(true) {
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
}
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''
def main():
exchange.SetData("test", [[1579536000000, _D(1579536000000/1000)], [1579622400000, _D(1579622400000/1000)], [1579708800000, _D(1579708800000/1000)]])
while True:
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
void main() {
json arr = R"([[1579536000000, ""], [1579622400000, ""], [1579708800000, ""]])"_json;
arr[0][1] = _D(1579536000000);
arr[1][1] = _D(1579622400000);
arr[2][1] = _D(1579708800000);
exchange.SetData("test", arr);
while(true) {
Log(exchange.GetData("test"));
Sleep(1000 * 60 * 60 * 24);
}
}
Cuộc gọi để có được dữ liệu được viết trực tiếp.
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
while(true) {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Sleep(1000)
}
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''
def main():
while True:
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Sleep(1000)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
void main() {
while(true) {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
Sleep(1000);
}
}
Nó hỗ trợ để yêu cầu dữ liệu thông qua các liên kết bên ngoài, định dạng của dữ liệu được yêu cầu để:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
Ở đâu?schema
là định dạng dữ liệu cho mỗi bản ghi trong cơ thể dữ liệu được tải, được cố định ở["time", "data"]
tương ứng với định dạng của dữ liệu nhập từng lần trongdata
thuộc tính.
Những gì được lưu trữ trongdata
thuộc tính là cơ thể của dữ liệu, với mỗi mục bao gồm dấu thời gian cấp độ millisecond và nội dung dữ liệu (có thể là bất kỳ dữ liệu có thể mã hóa JSON nào).
Chương trình dịch vụ để thử nghiệm, được viết bằng Go:
package main
import (
"fmt"
"net/http"
"encoding/json"
)
func Handle (w http.ResponseWriter, r *http.Request) {
defer func() {
fmt.Println("req:", *r)
ret := map[string]interface{}{
"schema": []string{"time","data"},
"data": []interface{}{
[]interface{}{1579536000000, "abc"},
[]interface{}{1579622400000, 123},
[]interface{}{1579708800000, map[string]interface{}{"price":123}},
[]interface{}{1579795200000, []interface{}{"abc", 123, map[string]interface{}{"price":123}}},
},
}
b, _ := json.Marshal(ret)
w.Write(b)
}()
}
func main () {
fmt.Println("listen http://localhost:9090")
http.HandleFunc("/data", Handle)
http.ListenAndServe(":9090", nil)
}
Dữ liệu phản hồi của chương trình khi nhận được yêu cầu:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
Mã chiến lược thử nghiệm:
function main() {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
}
def main():
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
void main() {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"));
}
Phương pháp gọi để lấy dữ liệu của một liên kết bên ngoài.
function main() {
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data")) // The xxx part of the link is the code of the query data, here xxx is an example.
}
def main():
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"))
void main() {
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"));
}
Yêu cầu dữ liệu cho truy vấn được tạo trên nền tảngdữ liệu, yêu cầu định dạng dữ liệu của câu trả lời là (phải có thời gian, các trường dữ liệu được mô tả trong sơ đồ):
{
"data": [],
"schema": ["time", "data"]
}
Các trường exchange.GetData()
hàm được gọi, một đối tượng JSON được trả về, ví dụ:{"Time":1579795200000, "Data":"..."}
.
Nhận dữ liệu ngay lập tức để backtesting và bộ nhớ cache một phút dữ liệu cho giao dịch trực tiếp.from
(được đánh dấu thời gian bằng giây),to
(được đánh dấu thời gian trong giây) đến yêu cầu, các tham số như:period
(thời gian đường K cơ bản, được đánh dấu theo thời gian trong milliseconds) được sử dụng để xác định khung thời gian mà trong đó dữ liệu sẽ được thu thập.
{@fun/Market/exchange.SetData exchange.SetData}
exchange.SetData exchange.GetMarkets