设为首页收藏本站

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

关于重复发单的问题,求解!! [复制链接]

Rank: 5Rank: 5

精华
0
UID
28852
积分
651
帖子
153
主题
42
阅读权限
60
注册时间
2011-3-15
最后登录
2022-1-5
跳转到指定楼层
1#
发表于 2011-8-4 14:58:32 |只看该作者 |倒序浏览
求各位大哥帮忙看下 下面的代码, 是否存在重复发单的问题,在模拟盘跑的时候,出现一个bar交易好多次,
Vars
    NumericSeries qopen;
    Numeric bar;
    bool con2;
Begin
   If(BarStatus==0)
   {
    SetGlobalVar(0,0);
    }
    bar=BarsSinceLastEntry();

//多头
    If(A_TotalPosition==0 && GetGlobalVar(5)==0 && open>=close[1] )
    {  
        A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
    SetGlobalVar(0,1);
     }
        If(A_BuyPosition>0 && GetGlobalVar(5)==1 && Close>open[bar]+4 )
    {
    A_SendOrder(Enum_Sell,Enum_Exit,1,Q_AskPrice);
    SetGlobalVar(0,0);
     }
    If(A_BuyPosition>0 && GetGlobalVar(5)==1 && Close<open[bar]+1)
    {
     A_SendOrder(Enum_Sell,Enum_Exit,1,Q_AskPrice);
    SetGlobalVar(0,0);
     }

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
2#
发表于 2011-8-5 11:30:09 |只看该作者
GetGlobalVar(5)
SetGlobalVar(0,0)貌似是全局变量索引号不一致?
期货IT

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
28852
积分
651
帖子
153
主题
42
阅读权限
60
注册时间
2011-3-15
最后登录
2022-1-5
3#
发表于 2011-8-5 14:37:52 |只看该作者
回复 2# alex647l
哦  额  我太粗心啦  呵呵,改过来试试看  谢谢啦

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
28852
积分
651
帖子
153
主题
42
阅读权限
60
注册时间
2011-3-15
最后登录
2022-1-5
4#
发表于 2011-8-5 14:40:30 |只看该作者
回复 2# alex647l
  我改成以下这样了,可是还是会重复发单,奇怪了 帮忙看看吧,谢谢
Vars
    NumericSeries qopen;
    Numeric bar;
    Numeric quan;
    bool con2;
Begin
    If(BarStatus==0)
   {
    quan=0;
    SetGlobalVar(0,quan);
    }else
    {
        quan=GetGlobalVar(0);
     }
    bar=BarsSinceLastEntry();

//多头
    If(A_TotalPosition==0 && quan==0 && open>=close[1] )
    {  
        A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
    quan=1;
    SetGlobalVar(0,quan);
     }
If(A_BuyPosition>0 && quan==1 && Close>open[bar]+12)
    {
    A_SendOrder(Enum_Sell,Enum_Exit,1,Q_AskPrice);
    quan=0;
    SetGlobalVar(0,quan);
     }
    If(A_BuyPosition>0 && quan==1 && Close<open[bar]+3)
    {
     A_SendOrder(Enum_Sell,Enum_Exit,1,Q_AskPrice);
     quan=0;
    SetGlobalVar(0,quan);
     }   
end

使用道具 举报

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
5#
发表于 2011-8-8 08:52:07 |只看该作者
If(A_TotalPosition==0 && quan==0 && open>=close[1] )
    {  
        A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
    quan=1;
    SetGlobalVar(0,quan);
     }
我只知道这里应该用Q_BidPrice,至于依旧重复发单,不知道是不是SetGlobalVar的执行速度不够导致的
期货IT

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
6#
发表于 2011-8-9 09:35:07 |只看该作者
回复 4# a415260930


If(A_TotalPosition==0 && quan==0 && open>=close[1] )
改成
If(A_TotalPosition==0 && GetGlobalVars(0)==0 && open>=close[1] )

另外
  bar=BarsSinceLastEntry();不能在这里用
BarsSinceLastEntry只能识别用buy、sell发单信号的,无法识别A_SendOrder

使用道具 举报

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

bottom

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

GMT+8, 2024-5-11 21:33

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部