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  进行 有偿 编写!(不贵!点击查看价格!)
                        
相关文章
- 
                        没有相关内容
                       

 
                     会员登录/注册
会员登录/注册