双均线交叉系统交易模型源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统是个常见的交易系统,这里给出例子,目的在于告诉大家交易系统编码,设计需要考虑的问题,和注意点。

交易规则:

如果短期均线上穿长期均线,做多,如原来持有空单,则先平空单,再建多仓

如果短期均线下穿长期均线,做空,如原来持有多单,则先平多单,再建空单

短周期:10

长周期:20

交易头寸暂为1手

出场部分设计

我们使用三种类型的止损设置:

进场后设置初始止损;

有一定盈利后设置保本止损;

盈利增大后使用追踪止盈(峰值价回落ATR倍数);

为此,设置三个止损参数:

Numeric InitialStop(20); // 初始止损(千分之N)

Numeric BreakEvenStop(30); // 保本止损(千分之N)

Numeric TrailingStop(50); // 追踪止损(千分之N)

三种止损的代码可以放在一起处理,取最有利的价格作为止损(赢)价。

多头止损部分的代码

// 初始止损

StopLine = EntryPrice * (1-InitialStop/1000);

// 达到保本止损条件,将止损位上移到保本的价位

If (HigherAfterEntry >= EntryPrice * (1+BreakEvenStop/1000))

StopLine = EntryPrice;

// 追踪止损的价位超过保本止损价,止损价随盈利峰值价的上升同步提高

If (StopLine < HigherAfterEntry*(1-TrailingStop/1000))

StopLine = HigherAfterEntry*(1-TrailingStop/1000);

Commentary("止损价:"+Text(StopLine));

// 止损触发

If(Low <= StopLine)

{

MyPrice = StopLine;

If(Open < MyPrice) MyPrice = Open;

Sell(Lots,MyPrice);

bLongStoped = True; // 止损后设置标志

Commentary("Long Position Stoped at "+text(MyPrice));

}

其他规则

其他策略和例子1相同:

采用多空模型分开设计;

再进场必须行情再创新高(低);

过滤集合竞价数据

止损处理的细节

无论初次进场还是再次进场,进场后都是把进场价作为开仓后的盈利最高价或最低价。两者的区别之处在于:

初次进场,因为是开盘价进场,可以在开仓Bar实现止损;

而再次入场,因为在历史K线中,无法确定入场点和最高价最低价在时间次序上的关系,从而无法实现在开仓BAR的止损。因此,必须在记录开仓后最高和最低后,加上Return指令,从而忽略掉后面的止损部分公式。

相关文档
最新文档