이exchange.GetData()
함수는 데이터 로딩을 얻기 위해 사용됩니다.exchange.SetData()
기능 또는 외부 링크에 의해 제공됩니다.
데이터 수집에 있는 기록 물체
교환.GetData (키) 교환.GetData (키, 타임아웃)
데이터 수집의 이름 키 사실 문자열 캐시 타임아웃을 밀리초로 설정하는데 사용되는데, 실시간 거래에 1분 캐시 타임아웃으로 설정되죠. 타임아웃 거짓 번호
/*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);
}
}
직접 데이터를 입력하기 위한 전화
/*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);
}
}
외부 링크를 통해 데이터를 요청할 수 있는 지원, 요청된 데이터의 형식
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
어디?schema
로드된 데이터의 본체에 있는 각 레코드의 데이터 형식입니다.["time", "data"]
입수별 데이터의 형식과 일치하는data
속성
저장된 것은data
이 속성은 데이터의 본체이며, 각 항목은 밀리초 수준 타임 스탬프와 데이터 내용 (어떤 JSON 코딩 데이터도 될 수 있다) 으로 구성됩니다.
테스트를 위한 서비스 프로그램, 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)
}
요청 받은 후 프로그램 응답 데이터:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
테스트 전략 코드:
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"));
}
외부 링크의 데이터를 얻기 위한 호출 방법.
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"));
}
플랫폼에서 생성된 질의에 대한 요청 데이터데이터데이터, 응답의 데이터 형식이 (시간, 스케마에 설명 된 데이터 필드가 있어야합니다):
{
"data": [],
"schema": ["time", "data"]
}
exchange.GetData()
함수가 호출되면 JSON 객체가 반환됩니다. 예를 들어:{"Time":1579795200000, "Data":"..."}
.
백테스팅을 위해 데이터를 한 번에 얻고 실시간 거래에 대한 데이터를 1 분 캐시합니다. 백테스팅 시스템에서 액세스 인터페이스를 사용하여 데이터를 요청할 때 백테스팅 시스템은 자동으로 추가합니다.from
(초로 표시된 시간),to
(초로 시간표) 요청, 파라미터period
(K-라인 기간, 밀리초로 시간표) 는 데이터를 획득해야 할 시간 프레임을 결정하는 데 사용됩니다.
{@fun/Market/exchange.SetData exchange.SetData}
exchange.SetData exchange.GetMarkets