if条件满足的情况下没有执行下面的语句 [开拓者 TB]
- 咨询内容:
- Params
- Numeric length1(20);
- Numeric length2(80);
- Vars
- NumericSeries Avghigh20;
- NumericSeries Avghigh80;
- NumericSeries Avglow20;
- NumericSeries Avglow80;
- NumericSeries ma20;
- NumericSeries ma80;
- Begin
- Avghigh20=Average(high,length1);
- Avghigh80=Average(high,length2);
- Avglow20=Average(low,length1);
- Avglow80=Average(low,length2);
- ma20=Average(close,length1);
- ma80=Average(close,length2);
- if ((Close[1]>Avghigh20[1]&&ma20[1]>ma20[2])&&(close[1]>Avghigh80[1]&&ma80[1]>ma80[2])&&MarketPosition<>1)
- Buy(1,open);
- else if (close[1]<Avglow80[1]&&MarketPosition==1)
- Sell(1,open);
- else if ((Close[1]<Avglow20[1]&&ma20[1]<ma20[2])&&(close[1]<Avglow80[1]&&ma80[1]<ma80[2])&&MarketPosition<>-1)
- SellShort(1,open);
- else if (close[1]>Avghigh80[1]&&MarketPosition==-1)
- BuyToCover(1,open);
- Commentary("20最高价="+text(avghigh20));
- Commentary("80最高价="+text(avghigh80));
- Commentary("20最低价="+text(avglow20));
- Commentary("80最低价="+text(avglow80));
- Commentary("20均价="+text(ma20));
- Commentary("80均价="+text(ma80));
- Commentary("交易状态="+text(MarketPosition));
- End
- Params
- TB技术人员:
简单看了一下公式,里面使用的最大参数是80.
也就是说为了保证交易的正确性,信号会在currentbar>=80后才会有信号。。
图表最左边的bar上是不会显示信号的。。
建议你在公式里加上currentba>=maxbarsback的条件。 - TB客服:
小米 发表于 2016-2-5 10:52
简单看了一下公式,里面使用的最大参数是80.
也就是说为了保证交易的正确性,信号会在currentbar>=80后才会 ...
谢谢谢谢!!!好厉害!!!
那以前不加的时候他为什么没有信号但是marketposition却变了呢? - 网友回复:
shingyscorpio 发表于 2016-2-5 11:03
谢谢谢谢!!!好厉害!!!
那以前不加的时候他为什么没有信号但是marketposition却变了呢? ...
那你的公式条件已经满足了开仓的条件 。。
但是如果是currenbar<maxbarsback时,我们会认为数据没有达到原需求,出来的计算结果可能是有误的,所以不显示plotnumeric等输出以及信号的输出、、
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容