리소스 로딩... 로딩...

exchange.GetData

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