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)
}
}
'''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)
/*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}
exchange.GetRate exchange.GetData