संसाधन लोड हो रहा है... लोड करना...

exchange.GetData


数据集合中的记录。
object

exchange.GetData(key)
exchange.GetData(key, timeout)

数据集合名称。
key
true
string
用于设置缓存超时,单位为毫秒。实盘时默认为一分钟缓存超时。
timeout
false
number

```javascript
/*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गुणों में बार-बार डेटा का प्रारूप।

测试用的服务程序,使用Go语言编写:

```golang
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"))   // 链接中xxx部分为查询的数据的编码,此处xxx为举例
}
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"));
}

अनुरोधडाटाडेटाप्लेटफॉर्म पर बनाए गए क्वेरी डेटा का उत्तर देने के लिए कहा गया डेटा प्रारूप है ((time, data फ़ील्ड में वर्णित होना चाहिए):

{
    "data": [],
    "schema": ["time", "data"]
}

इसमें, डेटा तालिका तालिका में आवश्यक डेटा सामग्री है, और तालिका तालिका में डेटा तालिका तालिका में सहमत होना चाहिए; जब कॉल किया जाता हैexchange.GetData()फ़ंक्शन एक JSON ऑब्जेक्ट देता है, जैसेः{"Time":1579795200000, "Data":"..."}

पुनः परीक्षण के समय एक बार डेटा प्राप्त किया जाता है, वास्तविक समय में एक मिनट का डेटा कैश किया जाता है। पुनः परीक्षण प्रणाली में, जब एक्सेस इंटरफेस अनुरोध डेटा का उपयोग किया जाता है, तो पुनः परीक्षण प्रणाली स्वचालित रूप से अनुरोध में वृद्धि करती हैfrom(घंटे के लिए सेकंड)to(घंटे के लिए सेकंड)period(नीचे के लाइन चक्र, समय टोकन मिलीसेकंड) जैसे पैरामीटर डेटा प्राप्त करने के लिए समय सीमा निर्धारित करने के लिए उपयोग किए जाते हैं।

{@मज़ा/बाजार/विनिमय.सेटडेटा विनिमय.सेटडेटा}

exchange.SetData exchange.GetMarkets