输入/搜索内容

在使用JavaScript、Python、Rust语言编写的策略中,需要在策略主循环中调用Sleep()函数。回测时,该函数用于控制回测的运行速度;实盘时,则用于控制策略的轮询时间间隔,从而控制访问交易所API接口的请求频率。

示例

  • 经典的商品期货策略架构:

    javascript
    function main(){ while(true){ // 需要在判断exchange.IO("status")函数返回1(真值)时才可调用行情、交易等函数 if(exchange.IO("status")){ exchange.SetContractType("MA000") var ticker = exchange.GetTicker() Log("MA000 ticker:", ticker) LogStatus(_D(), "已经连接CTP !") } else { LogStatus(_D(), "未连接CTP !") } Sleep(1000) } }
    python
    def main(): while True: if exchange.IO("status"): exchange.SetContractType("MA000") ticker = exchange.GetTicker() Log("MA000 ticker:", ticker) LogStatus(_D(), "已经连接CTP !") else: LogStatus(_D(), "未连接CTP !") Sleep(1000)
    rust
    fn main() { loop { // 需要在判断exchange.IO("status")函数返回1(真值)时才可调用行情、交易等函数 if exchange.IO("status").is_ok_and(|v| v.as_i64() == Some(1)) { let _ = exchange.SetContractType("MA000"); let ticker = exchange.GetTicker(None); Log!("MA000 ticker:", ticker); LogStatus!(_D(None), "已经连接CTP !"); } else { LogStatus!(_D(None), "未连接CTP !"); } Sleep(1000); } }
  • 设计一个On Bar架构的策略

    javascript
    function onTick() { Log("K线更新,新BAR产生") } function main() { var lastTs = 0 while (true) { if (exchange.IO("status")) { exchange.SetContractType("rb888") var r = _C(exchange.GetRecords) if (r.length > 0 && r[r.length - 1].Time != lastTs) { onTick() lastTs = r[r.length - 1].Time } } Sleep(1000) } }
    python
    def onTick(): Log("K线更新,新BAR产生") def main(): lastTs = 0 while True: if exchange.IO("status"): exchange.SetContractType("rb888") r = _C(exchange.GetRecords) if len(r) > 0 and r[-1]["Time"] != lastTs: onTick() lastTs = r[-1]["Time"] Sleep(1000)
    rust
    fn onTick() { Log!("K线更新,新BAR产生"); } fn main() { let mut lastTs = 0; loop { if exchange.IO("status").is_ok_and(|v| v.as_i64() == Some(1)) { let _ = exchange.SetContractType("rb888"); let r = _C!(exchange.GetRecords(None, None, None)); if r.len() > 0 && r[r.len() - 1].Time != lastTs { onTick(); lastTs = r[r.len() - 1].Time; } } Sleep(1000); } }
  • 以下各页是API函数速查表,点击函数名查看语法手册中的详细说明。

本章内容整章阅读

名称描述
全局函数
日志函数
行情函数
交易函数
期货函数
API限流控制优宽量化平台支持对商品期货交易所的 API 调用进行频率限制,以防止触发交易所的频率限制。
策略实盘间通信策略实盘间通信功能允许不同的实盘策略之间进行数据共享与状态同步。
JavaScript多线程优宽量化交易平台从系统底层真正支持JavaScript语言策略的多线程功能,实现了以下对象:
TA指标函数
talib指标函数talib指标库包含众多技术分析指标,例如:talib.CDL2CROWS。