技术部老师请帮忙修改一下代码

代码没有交易信号,已经修改多次了就是找不到原因,加载了图表只有画出了上下轨,突破了没有开仓信号,一开始以为是止损代码问题,然后也把止损删除了还是不行,如果可以麻烦老师帮忙加上ATR止损修改一下,日内交易收盘平仓。由于要引用昨天日线高低价,之前在论坛问过老师说直接引用highD和lowD说是不可以的,然后我就试用订阅日线的方式是否正确,请老指点,谢谢!!加载5分钟级别 Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); } Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); }

突破不一定同一时间突破,可以先后突破但是一定要都满足价格大于了两个高位加才入场是否可以用这样写法 if(high>highD[1]) { if(colse[1]>upperbdnd) }

去掉后,每天就只可以交易一次对吗,好的谢谢,今晚我试试,对了这个同时满足突破今天上下轨和昨天日线高低价,如何写才对呢,老师

回复:突破上轨 and 突破下轨 and 。。。

我说个简单的方法,你把这里这个else去掉

至于这个flag要怎么变回0,那您得说清楚,您这个flag是想干嘛用,否则,我们也改不了。 这个flag是控制交易次数的,也就是无论多或者空信号,我模型每天最多交易一次,请问老师如何控制每天只交易一次。

wangkaiming Falg 你怎么变回0 是因为Falg没有重新计算吗,老师应该如何修改,我不太懂

回复:您昨晚通过客服系统问了这个问题。我大致看了下您的代码,问题还比较多。首先不出信号确实如王老师回复您的,是因为flag(您输入的是falg)赋值为1后,后面就没有再赋值为0,导致后面就不产生信号了。您可以拖到图表的最前面,是能看到有一笔交易的。至于这个flag要怎么变回0,那您得说清楚,您这个flag是想干嘛用,否则,我们也改不了。 其次,您flag赋初值0的这个逻辑判断,放的位置也不太对,最后一个分支被执行到的概率很小,因为在它满足之前,前面几个条件有可能早就满足了。这个逻辑您自己需要梳理清楚。 再来,您判断交易条件时,用Close来判断,这个我就不用说了吧,信号闪烁之源。然后,您的判断条件也有问题。 Close大于当天的上轨,而且还要大于昨日高点,但交易信号却只取了上轨的值,这个也是很多用户经常犯的错误之一,明显偷价。我举个例子,让您更容易理解。假如上轨是1000,昨日最高价是2000,价格要大于这两个价格,是不是得2000以上,那您说到了2000,您还能用1000买到吗?

回复:Close大于当天的上轨,而且还要大于昨日高点,但交易信号却只取了上轨的值,这个也是很多用户经常犯的错误之一,明显偷价。我举个例子,让您更容易理解。假如上轨是1000,昨日最高价是2000,价格要大于这两个价格,是不是得2000以上,那您说到了2000,您还能用1000买到吗? 老师我经过你提示指导模型有信号了,并且把突破用Close[1]前一根K线,目前发现如你所说不能同时满足两个条件开仓,目前只是突破了日内轨道就开仓了,但是我思路是需要突破日内轨道的也需要同时满足价格大于昨天日线最高价后才入场开多,价格既要低于日内下轨并且价格也低于昨天日线K线最低价后才符合开空。请问应该如何写这个代码才能符合我的既定开仓条件呢。老师是否可以指导一下写修改一个代码。之前我想用Close[1]>upperBand &&Close[1]>highD【1】,这样好像也不想用订阅日线周期也好像没有符合。

Falg 你怎么变回0

不好意思代码复制了两次重复了 Params Numeric RangEndTime(95000); Numeric TradeEndTime(145000); Numeric ATRS(12); Numeric ATRZS(1.5); Numeric ATRLength(12); Numeric lost(1); Vars Series<Numeric> upperBand; Series<Numeric> LowerBand; Series<Numeric> ATRVal; Numeric myExitprice1; Numeric myExitprice2; Series<Numeric> Falg; Events OnInit() { SubscribeBar(Data0.Symbol,"1D",Data0.BeginDateTime); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] { Commentary("data1.High[1]:="+Text(data1.High[1])); Commentary("data1.Low[1]:="+Text(data1.Low[1])); } IF(CurrentBar==0 or Date<>Date[1]) { upperBand=High; LowerBand=Low; } Else IF(Time<=RangEndTime*0.000001) { upperBand=Max(High,upperBand); LowerBand=Min(Low,LowerBand); } Else IF(Time>= TradeEndTime*0.000001) { Sell(0,Open); BuyToCover(0,Open); } Else IF(TrueDate(0)!=TrueDate(1)) { Falg=0; } IF(Falg==0) { IF(marketposition==0 && Close> upperBand && Close>data1.High[1]) { Buy(lost,Max(Open,upperBand)); Falg= Falg+1; Commentary("多头开仓"); } } IF(Falg==0) { IF(marketposition==0 && Close<LowerBand && Close<data1.Low[1] ) { SellShort(lost,Min(Open,LowerBand)); Falg= Falg+1; Commentary("空头开仓"); } } PlotNumeric("upperBand",upperBand); PlotNumeric("LowerBand",LowerBand); }