输入/搜索内容
内置函数
Global
Log
Market
exchange.GetTicker
exchange.GetDepth
exchange.GetTrades
exchange.GetRecords
exchange.GetPeriod
exchange.SetMaxBarLen
exchange.GetRate
exchange.SetData
exchange.GetData
exchange.GetMarkets
exchange.GetTickers
Trade
Account
Futures
Threads
TA
Talib
OS
结构体
内置变量

设置策略运行时所加载的数据。

exchange.SetData(key, value)

示例

在策略中直接写入数据,数据格式需与以下示例中的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}]。

javascript
/*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)
rust
/*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"}] */ fn main() { let data = r#"[ [1579536000000, "abc"], [1579622400000, 123], [1579708800000, {"price": 123}], [1579795200000, ["abc", 123, {"price": 123}]] ]"#; exchange.SetData("test", data); loop { Log!(exchange.GetData("test")); Sleep(1000); } }

返回值

类型描述

number

参数 value 经 JSON 编码后的字符串长度。

参数

名称类型必填描述

key

string

是

数据集合的名称。

value

array

是

exchange.SetData() 函数所要加载的数据,其数据结构为数组。该数据结构与 exchange.GetData() 函数请求外部数据时所要求的数据格式相同,即:"schema": ["time", "data"]。

参考

备注

所加载的数据可以是任意经济指标、行业数据、相关指数等,用于策略量化考核各类可量化的信息。