设为首页收藏本站

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

同一秒内既开仓又平仓的问题 [复制链接]

Rank: 2

精华
0
UID
227607
积分
91
帖子
58
主题
22
阅读权限
30
注册时间
2016-1-29
最后登录
2016-9-9
跳转到指定楼层
1#
发表于 2016-5-30 21:46:13 |只看该作者 |倒序浏览
老师。我的公式出现同一秒既卖出开仓又平空仓(买入开仓与平多没问题)。请问问题在哪?

----------------------------
                malong=Average(close,longlen);  //计算长均线
                mashort=Average(close,shortlen);  //计算短均线
                conCrossOver=CrossOver(mashort,malong);  //金叉
                conCrossUnder=CrossUnder(mashort,malong);  //死叉
            …………
       if(A_TotalPosition()==0)
        {
                if(buycondition  and GetGlobalVar(2) == 0)
                {
                SetGlobalVar(0,2);
                A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
                SetGlobalVar(2,1);
                SetGlobalVar(1,CurrentTime);
                Return;
                }

                if(sellcondition and GetGlobalVar(2) == 0)
                {
                 SetGlobalVar(0,3);
                A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);                    

                 SetGlobalVar(2,1);
                SetGlobalVar(1,CurrentTime);
                Return;
                }


        }

               
        if(A_SellPosition()>0  and GetGlobalVar(0) == 3  and  GetGlobalVar(3) == 0)
        {
               

                If(conCrossOver)   
                {
                               
               
                A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                  Return;
                }
                               
                               
                               
                if(High-EntryPrice>=i_reverse)
                {

                A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                  Return;
                }
        }

        if(A_BuyPosition()>0  and GetGlobalVar(0) == 2 and  GetGlobalVar(3) == 0)
        {
            

              If(conCrossUnder )
                {
                               
                A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                Return;
                }

                 
                if(EntryPrice-Low>=i_reverse)
                {
               A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                 Return;
                }
        }  


Rank: 2

精华
0
UID
227607
积分
91
帖子
58
主题
22
阅读权限
30
注册时间
2016-1-29
最后登录
2016-9-9
2#
发表于 2016-5-31 09:13:59 |只看该作者
已经解决

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
3#
发表于 2016-5-31 09:15:34 |只看该作者
concrossover,与concorssunder声明的是bool  还是boolseries?

使用道具 举报

Rank: 2

精华
0
UID
227607
积分
91
帖子
58
主题
22
阅读权限
30
注册时间
2016-1-29
最后登录
2016-9-9
4#
发表于 2016-6-1 14:49:42 |只看该作者
在这里,
concrossover,与concorssunder声明的是bool  还是boolseries,会有区别吗?我声明的是bool,但没有发现问题.

我发现同一秒既开仓又平仓,是因为EntryPrice用的不对.这是一个超级图表信号,而我用的是A函数发单,结果EntryPrice每次估计都为0

使用道具 举报

Rank: 2

精华
0
UID
227607
积分
91
帖子
58
主题
22
阅读权限
30
注册时间
2016-1-29
最后登录
2016-9-9
5#
发表于 2016-6-1 14:50:48 |只看该作者
后来,我将EntryPrice改为A_SellAvgPrice,就正常了

使用道具 举报

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

bottom

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

GMT+8, 2024-5-8 15:19

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部