在 GitHub 上查看

基于Level 1的EMA交叉限价入场图

该图保留TwoDLimitsStrategy的EMA(14)/EMA(50)信号,并展示订单处理过程。每根已完成的五分钟K线对Level 1报价取样,在最优报价之外放置限价单,并在均线反向交叉时撤销未成交订单。

策略概览

  • 已完成的五分钟K线输入快速EMA(14)和慢速EMA(50),两个Crossing模块分别识别向上和向下交叉。
  • BestBidPrice与BestAskPrice由Level 1异步到达,并在每根K线完成时锁存后再计算订单价格。
  • 买单位于最优买价下方0.02%,卖单位于最优卖价上方0.02%,让Order cancellation有可观察的作用。
  • 每次成交启动100根K线的N values冷却;完成前禁止新入场,也不向Position protection发送价格。
  • 冷却结束后,Position protection采用0.3%止损和0.6%止盈。

入场与出场规则

  • 做多入场: EMA(14)上穿EMA(50),Position为空或空头,最优买价有效且冷却完成时,在锁存买价下方挂买入限价单。数量为abs(Position)加基础数量,因此一次成交可平空并开多。
  • 做空入场: EMA(14)下穿EMA(50),Position为空或多头,最优卖价有效且冷却完成时,在锁存卖价上方挂卖出限价单,并使用同样的净反转数量。
  • 离场: 反向EMA交叉会撤销仍有效的对侧限价单。入场成交并等待100根K线后,Position protection按0.3%止损或0.6%止盈退出;对向限价单成交也可反转持仓。

参数

参数 默认值 说明
Candle Time Frame 00:05:00 EMA、报价取样、冷却计数和保护检查共同使用的已完成K线周期。
Fast EMA Length 14 快速指数移动平均包含的五分钟数据数量。
Slow EMA Length 50 慢速指数移动平均包含的五分钟数据数量。
Quote Offset 0.02% 相对最优报价的百分比偏移:买单低于买价,卖单高于卖价。
Base Volume 1 抵消反向敞口后新开仓的基础数量。
Cooldown, candles 100 每次成交后重新启用入场和保护前等待的已完成K线数。
Stop Loss 0.3% 保护止损距入场成交价的百分比。
Take Profit 0.6% 止盈目标距入场成交价的百分比。

图表详情

  • C#源码使用市价入场;本图有意改用Level 1限价单,以展示订单注册和撤销的生命周期。
  • 源码的200/400个价格步长按回测中BTCUSDT价格换算为约0.3%/0.6%,并保留1:2比例。
  • 源码在成交后的前100根K线不检查止损或止盈;价格门控真实再现了这一执行顺序。
  • 报价锁存器将异步Level 1与K线驱动的EMA决策对齐。由于回放证券可能没有价格步长,价格收缩被关闭。

使用方法

将 .json 文件导入 Designer,在回测器中用历史数据运行,然后根据自己的交易品种调整参数或方块,确认无误后再用于实盘。