exchange.SetData()
函数用于设置策略运行时加载的数据。
参数value
经JSON编码后的字符串长度。
number
exchange.SetData(key, value)
数据集合名称。
key
true
string
exchange.SetData()
函数所要加载的数据,数据结构为数组。数据结构与exchange.GetData()
函数请求外部数据时所要求的数据格式相同,即:"schema": ["time", "data"]
。
value
true
array
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/
function main() {
var data = [
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
exchange.SetData("test", data)
while(true) {
Log(exchange.GetData("test"))
Sleep(1000)
}
}
“`python
“‘backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{“eid”:“Futures_CTP”,“currency”:“FUTURES”}]
“’
def main():
data = [
[1579536000000, “abc”],
[1579622400000, 123],
[1579708800000, {“price”: 123}],
[1579795200000, [“abc”, 123, {“price”: 123}]]
]
exchange.SetData(“test”, data)
while True:
Log(exchange.GetData(“test”))
Sleep(1000)
cpp
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{“eid”:“Futures_CTP”,“currency”:“FUTURES”}]
*/
void main() { json data = R”([ [1579536000000, “abc”], [1579622400000, 123], [1579708800000, {“price”: 123}], [1579795200000, [“abc”, 123, {“price”: 123}]] ])“_json;
exchange.SetData("test", data);
while(true) {
Log(exchange.GetData("test"));
Sleep(1000);
}
}
在策略中直接写入数据,要求数据格式如以下示例中的
data变量所示。以下测试代码运行时,会在对应的时间获取相应的数据。可以看到时间戳
1579622400000对应的时间为
2020-01-22 00:00:00,当策略程序运行到这个时间之后,在下一条数据时间戳
1579708800000即时间
2020-01-23 00:00:00之前,调用
exchange.GetData(Source)函数获取数据,获取的都是
[1579622400000, 123]”`这条数据的内容。随着程序继续运行,时间推移,依此类推获取后续数据。
以下示例中,当运行时(回测或实盘),当前时刻到达或超过1579795200000
这个时间戳时,调用exchange.GetData()
函数,返回值为:{"Time":1579795200000,"Data":["abc",123,{"price":123}]}
。"Time":1579795200000
对应数据[1579795200000, ["abc", 123, {"price": 123}]]
中的1579795200000
。"Data":["abc",123,{"price":123}]
对应数据[1579795200000, ["abc", 123, {"price": 123}]]
中的["abc", 123, {"price": 123}]
。
加载的数据可以是任何经济指标、行业数据、相关指数等,用于策略量化评估所有可量化的信息。
{@fun/Market/exchange.GetData exchange.GetData}