在模拟账户上运行策略

“自动策略”面板把你保存的某个策略脚本运行在这台电脑上的模拟考核账户上。它每根收盘 K 线决策一次,永远无法触及经纪商。

Senzoukria · 文档 · 更新于 2026 年 9 月


位置

位置
回放 → 交易面板区 → “自动策略”面板
默认
“手动 — 无策略” —— 在你选定脚本之前什么都不运行
节奏
每根收盘 K 线调用一次;不含形成中的 K 线
窗口
最多把 600 根收盘 K 线交给脚本,最新的在前
账户
仅模拟考核账户 —— 平台不向任何经纪商路由订单

它做什么

面板列出所有以“策略”类型保存的脚本。选中一个,它就会挂载到图表的 K 线上。每当一根新的 K 线收盘,脚本的 decide() 函数就被调用一次,传入已收盘的 K 线、当前模拟持仓、tick 大小,以及一个由它在各根 K 线之间自行携带的状态对象。

脚本返回的是决策,而不是订单。挂载层把这个决策翻译成对模拟账户 store 的调用:按市价开仓,或全平。它不引入任何连接模块和经纪商 API,因此策略没有通往实盘账户的路径 —— 这里的机器人是纸上交易机器人,也只能是这个。

选择器下方的状态行显示运行状态、迄今为止的决策次数和最后一次决策。被阻止的决策和脚本错误各占一行。

策略返回的决策

decide() 返回对象的各字段,按挂载层读取它们的方式
字段默认值作用
action必填“buy”、“sell”或“close”。其他任何值都会被报告为无法识别的决策。
qty1开仓合约数。向下取整,且绝不低于 1。
stopTicks相对成交价向下(多头)或向上(空头)的 tick 距离。省略即表示开仓时不附带止损。
targetTicks盈利方向离场单的 tick 距离。省略即表示没有止盈。
返回 null一个有效的答复:这根 K 线什么都不做。

如何使用

  • 先在脚本页面编写并保存策略 —— 一个都没有时面板会显示“尚无策略”。
  • 打开回放,显示交易面板区,然后在“自动策略”选择器中选中该脚本。
  • 看决策计数器,而不是权益曲线:它告诉你脚本究竟有没有被调用。
  • 切换脚本会清空携带的状态和防重放保护,因此新脚本从一张白纸开始。

局限与陷阱

  • 开仓要通过与手动按钮相同的防护:回撤已被击穿、每日亏损上限已触及或合约数超限时开仓会被拒绝,并显示原因。
  • 该品种没有实时价格时,开仓会被挂起并显示“正在等待实时价格” —— 不会凭空编造成交。
  • 决策只在收盘 K 线上做出,因此策略无法在形成中的 K 线内部作出反应;正是这一点让实盘运行与回测可比。
  • 模拟账户只属于这台电脑。那里的结果不是对在别处交易的任何东西的预测。

其他语言版本

常见问题

自动策略能向我的经纪商发订单吗?
不能。挂载层只调用模拟账户 store,脚本本身运行在一个没有平台 API 的 worker 里。平台完全不向经纪商路由订单。
为什么我的策略在最后一根 K 线上什么都不做?
形成中的 K 线被刻意排除。只有在一根 K 线收盘之后脚本才被调用,因此最新的决策总是针对正在构建的那根之前的 K 线。
脚本能看到多少根 K 线?
最多 600 根收盘 K 线,最新的在前,转换成所有脚本共用的固定 K 线结构(时间、OHLC、成交量、delta、成交笔数和足迹图价位明细)。