RangeBreak系统交易模型源代码--开拓者版本
RangeBreak系统交易模型是著名的交易系统,这里把他解析出来,供大家参考学习之用,这是个日内交易系统,收盘一定平仓; RangeBreak基于昨日振幅和今日开盘价的关系。 昨日振幅=昨日最高价-昨日最低价 上轨 = 今日开盘价+N*昨日振幅 下轨 = 今日开盘价-N*昨日振幅 当价格突破上轨,买入开仓。 当价格跌穿下轨,卖出开仓。
RangeBreak指标 Params
Numeric PercentOfRange(0.3); Vars
Numeric DayOpen; Numeric preDayRange; Numeric UpperBand; Numeric LowerBand; Begin
DayOpen = OpenD(0);
preDayRange = HighD(1) - LowD(1);
UpperBand = DayOpen + preDayRange*PercentOfRange; LowerBand = DayOpen - preDayRange*PercentOfRange;
PlotNumeric(\ PlotNumeric(\ PlotNumeric(\ End RBS_V1 Params
Numeric PercentOfRange(0.3); Numeric ExitOnCloseMins(14.59); Vars
Numeric DayOpen; Numeric preDayRange; Numeric UpperBand; Numeric LowerBand;
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(Open > MyPrice) MyPrice = Open; Buy(1,MyPrice); Return; }
If(MarketPosition!=-1 && Low<=LowerBand) {
MyPrice = LowerBand;
If(Open < MyPrice) MyPrice = Open; SellShort(1,MyPrice); Return;
}
// 收盘平仓
If(Time >=ExitOnCloseMins/100) {
Sell(1,Open); BuyToCover(1,Open); }
SetExitOnClose; End
必须考虑的特殊情况
如果前一日涨停或跌停,则会出现范围很小。 解决方案:
设定一个范围的最小值,假定为当前价格的0.2%。
代码中的改动
Params
Numeric MinRange(0.2); Vars
NumericSeries DayOpen; Numeric preDayHigh; Numeric preDayLow; NumericSeries preDayRange; Begin
preDayHigh = HighD(1); preDayLow = LowD(1); If(Date!=Date[1]) {
DayOpen = Open;
preDayRange = preDayHigh - preDayLow; If(preDayRange < Open*MinRange*0.01) preDayRange = Open*MinRange*0.01; }Else {
DayOpen = DayOpen[1];
preDayRange = preDayRange[1];
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库量化经典 RangeBreak交易系统模型源代码一在线全文阅读。
相关推荐: