求助程序编写
使用指标:20日布林线做多单条件:当价格触及到布林线上轨时,在布林上轨与中轨的二分之一价格处挂多单;做空条件:当价格触及到布林线下轨时,在布林下轨与中轨的二分之一价格处挂空单;平多单条件:当价格跌破布林下轨平多单;平空单条件:当价格跌破布林下轨平空单;其他:如果满足做多条件后,并没有触发挂单,再有价格触及到布林上轨时,撤销之前挂的多单,再次用新的价格去挂多单,空单也是如此。求助编写
使用指标:20日布林线做多单条件:当价格触及到布林线上轨时,在布林上轨与中轨的二分之一价格处挂多单;做空条件:当价格触及到布林线下轨时,在布林下轨与中轨的二分之一价格处挂空单;平多单条件:当价格跌破布林下轨平多单;平空单条件:当价格跌破布林下轨平空单;其他:如果满足做多条件后,并没有触发挂单,再有价格触及到布林上轨时,撤销之前挂的多单,再次用新的价格去挂多单,空单也是如此。求助编写
策略逻辑规则不够完整。如果不考虑策略完整性,代码实现并不难,因为规则不够完善,完整代码就不贴出来。提供部分代码供您参考。Params Numeric Length(20); //周期 Numeric Offset(2); //标准差倍数 Vars ... ... // 请复制系统boll代码,部分变量改了下名字 Series<Numeric> LLine(0,2); Series<Numeric> SLine(0,2); Series<Integer> dir(0,2);Events OnReady() { SetBackBarMaxCount(1+Length); } OnBar(ArrayRef<Integer> indexs) { ... ... // 请复制系统boll代码,部分变量改了下名字 If(High > UpLine) { dir = 1; If(MarketPosition <> 1) LLine = (UpLine + MdLine)/2; } PlotNumeric(\"LLine\",LLine,0,red); If(Low < DnLine) { dir = -1; If(MarketPosition <> -1) SLine = (DnLine + MdLine)/2; } PlotNumeric(\"SLine\",SLine,0,Green); If(dir[1] == 1 && MarketPosition <> 1 && Low < LLine[1]) { Buy(1, Min(Open,LLine[1])); dir = 0; } If(MarketPosition == 1 && BarsSinceEntry > 0 && Low < MdLine[1]) Sell(0,Min(O,MdLine[1])); If(dir[1] == -1 && MarketPosition <> -1 && High > SLine[1]) { SellShort(Lots[1], Max(Open,SLine[1])); dir = 0; } If(MarketPosition == -1 && BarsSinceEntry > 0 && High > MdLine[1]) BuyToCover(0,Max(O,MdLine[1])); }
建议谨慎防止被骗