设为首页收藏本站

 找回密码
 注册
查看: 1467|回复: 1
打印 上一主题 下一主题

实盘中If条件不满足却执行了,不知何原因? [复制链接]

Rank: 1

精华
0
UID
264118
积分
13
帖子
6
主题
3
阅读权限
10
注册时间
2018-4-4
最后登录
2018-5-15
跳转到指定楼层
1#
发表于 2018-4-25 22:54:25 |只看该作者 |倒序浏览
我在程序里面,用了If条件语句,但是条件不满足时,却执行了。具体片段如下:
If(A_BuyPosition>0 && Time>=Nightbegintime/100 && Time<=Nightlasttime/100 )
        {
                If(Q_Last > Myprice+2*MinMove*PriceScale )   //多单保本出场
                {   
                  PlotString("A","可保本出场",high,Yellow);
                  If( Q_Last<=Myprice)
                  {
                       A_SendOrder(Enum_Sell,Enum_Exit,EachLots,Q_BidPrice());
                          Commentary("多单保本出场");       
                      PlotString("PS","多单保本出场",Low,Red);
                          Myprice=InvalidNumeric;
                  }
                }
                Else If( Low< Low[1] )// 建仓后的多单出场条件
                {
                        A_SendOrder(Enum_Sell,Enum_Exit,EachLots,Q_BidPrice());
                        Commentary("多单出场");       
                        PlotString("PS","多单出场",Low,Red);
                }       

结果在没有持仓都情况下,”可保本出场”的字段,在每个BAR都出现了,是不是每个BAR在条件不满足都情况下,都执行了IF语句里面的PlotString("A","可保本出场",high,Yellow); 如下图:       
       

不知是啥原因,管理员解释一下。       
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2018-4-26 09:46:50 |只看该作者
对于A函数的调试,我们是建议使用fileapend来记录。
这段代码里使用a_xxxx类的帐户函数,但是却没有使用barstatus==2的分支控制,这样在历史K线上的a_buyposition是一个无效值 ,而这个无效值是一个大于0的数值,所以在时间条件内的a_buypsotion>0是会一直满足的。
在第一层条件满足的情况下,第二层也满足了,自然就会输出字符串了。

A_XXXX类帐户函数的使用需要对TB的语法以及机制更为了解方好使用。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-25 15:23

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部