《2022年2022年量化经典RangeBreak交易系统模型源代码一 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年量化经典RangeBreak交易系统模型源代码一 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、RangeBreak系统交易模型源代码 - 开拓者版本RangeBreak系统交易模型是著名的交易系统,这里把他解析出来,供大家参考学习之用,这是个日内交易系统,收盘一定平仓; RangeBreak 基于昨日振幅和今日开盘价的关系。昨日振幅 =昨日最高价 -昨日最低价上轨 = 今日开盘价 +N*昨日振幅下轨 = 今日开盘价 -N*昨日振幅当价格突破上轨,买入开仓。当价格跌穿下轨,卖出开仓。RangeBreak指标Params Numeric PercentOfRange(0.3); Vars Numeric DayOpen; Numeric preDayRange; Numeric Upper
2、Band; Numeric LowerBand; Begin 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - DayOpen = OpenD(0); preDayRange = HighD(1) - LowD(1); UpperBand = DayOpen + preDayRange*PercentOfRange; LowerBand = DayOpen - preDayRange*PercentOfRange; PlotNum
3、eric(UpperBand,UpperBand); PlotNumeric(LowerBand,LowerBand); PlotNumeric(MidLine,DayOpen); End RBS_V1 Params Numeric PercentOfRange(0.3); Numeric ExitOnCloseMins(14.59); Vars Numeric DayOpen; Numeric preDayRange; Numeric UpperBand; Numeric LowerBand; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
4、- - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - Numeric MyPrice; Begin DayOpen = OpenD(0); preDayRange = HighD(1) - LowD(1); UpperBand = DayOpen + preDayRange*PercentOfRange; LowerBand = DayOpen - preDayRange*PercentOfRange; If(MarketPosition!=1 & High=UpperBand) MyPrice = UpperBand; If(O
5、pen MyPrice) MyPrice = Open; Buy(1,MyPrice); Return; If(MarketPosition!=-1 & Low=LowerBand) MyPrice = LowerBand; If(Open =ExitOnCloseMins/100) Sell(1,Open); BuyToCover(1,Open); SetExitOnClose; End 必须考虑的特殊情况如果前一日涨停或跌停,则会出现范围很小。解决方案:设定一个范围的最小值,假定为当前价格的0.2%。代码中的改动名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
6、- - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - Params Numeric MinRange(0.2); Vars NumericSeries DayOpen; Numeric preDayHigh; Numeric preDayLow; NumericSeries preDayRange; Begin preDayHigh = HighD(1); preDayLow = LowD(1); If(Date!=Date1) DayOpen = Open; preDayRange = preDayHigh
7、- preDayLow; If(preDayRange Open*MinRange*0.01) preDayRange = Open*MinRange*0.01; Else DayOpen = DayOpen1; preDayRange = preDayRange1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 增加止损有可能通道会比较宽,难道非要等到反转才平仓?考虑增加止损设置,有2 种方案: 1 、亏损固定点数。 2 、
8、亏损当前价格的百分比。考虑到商品价格变化的差异,我们采取第二种方式。止损部分代码先增加一个变量StopLine,用来保存止损位置。下面是做多时的止损代码: If(MarketPosition=1) StopLine = AvgEntryPrice-DayOpen*StopLossSet*0.01; If(Low = StopLine) MyPrice = StopLine; If(Open = StopLine) MyPrice = StopLine; If(Open MyPrice) MyPrice = Open; BuyToCover(Lots,MyPrice); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -