设为首页收藏本站

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

如何控制重复发单A_sendorder,请教老师! [复制链接]

Rank: 2

精华
0
UID
72860
积分
60
帖子
14
主题
6
阅读权限
30
注册时间
2011-10-20
最后登录
2012-9-23
跳转到指定楼层
1#
发表于 2011-11-24 10:31:42 |只看该作者 |倒序浏览
我是先平仓,平仓成功后在开新仓,以反手做空为例:
if(cont1满足开空){
    setglobalvar(0,3);
    setglobalvar(1,1);
    if(A_BuyPosition >0 && Getglobalvar(0)==3 && GetGlobalVar(1)==1){
        A_SendOrder(enum_sell,enum_exit,A_buyposition(),Q_AskPrice-10);
        SetGlobalVar(1,2);
        }
    if(A_OpenOrderLot==0 && GetGlobalVar(1)==2)
        setglobalvar(0,4);
    if(GetGlobalVar(0)==4 && GetGlobalVar(1)==2 && A_BuyPosition==0 && A_SellPosition==0){
        A_SendOrder(enum_sell,Enum_Entry,1,Q_AskPrice-10);
        setglobalvar(1,3);
        }
    if(GetGlobalVar(0)==3 && GetGlobalVar(1)==1 && A_BuyPosition==0 && A_SellPosition==0){
        A_SendOrder(enum_sell,Enum_Entry,1,Q_AskPrice-10);
        SetGlobalVar(1,3);
        }
    if(A_OpenOrderLot==0 && GetGlobalVar(1)==3){
        SetGlobalVar(0,0);
        SetGlobalVar(1,0);
        }
  }
请教老师,谢谢

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2011-11-24 14:15:55 |只看该作者
回复 1# fangzg123

本来基本上都可以控制住重复发单的,但是以下这两句会导致重复发单,不能每次条件满足都将这两个全局变量设置为可交易。
  1.     setglobalvar(0,3);
  2.     setglobalvar(1,1);
复制代码
不能用满足条件来判断重置全局变量可开仓。

使用道具 举报

Rank: 2

精华
0
UID
72860
积分
60
帖子
14
主题
6
阅读权限
30
注册时间
2011-10-20
最后登录
2012-9-23
3#
发表于 2011-11-24 19:01:24 |只看该作者
老师:能在说的具体些吗?应该如何改才能限制住重复发单?谢谢老师

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
4#
发表于 2011-11-25 10:12:01 |只看该作者
回复 3# fangzg123
例如这样
  1. if(barstatus==0)
  2. {
  3.     setglobalvar(0,3);
  4.     setglobalvar(1,1);
  5. }
  6. if(cont1满足开空){
  7.     if(A_BuyPosition >0 && Getglobalvar(0)==3 && GetGlobalVar(1)==1){
  8.         A_SendOrder(enum_sell,enum_exit,A_buyposition(),Q_AskPrice-10);
  9.         SetGlobalVar(1,2);
  10.         }
  11.     if(A_OpenOrderLot==0 && GetGlobalVar(1)==2)
  12.         setglobalvar(0,4);
  13.     if(GetGlobalVar(0)==4 && GetGlobalVar(1)==2 && A_BuyPosition==0 && A_SellPosition==0){
  14.         A_SendOrder(enum_sell,Enum_Entry,1,Q_AskPrice-10);
  15.         setglobalvar(1,3);
  16.         }
  17.     if(GetGlobalVar(0)==3 && GetGlobalVar(1)==1 && A_BuyPosition==0 && A_SellPosition==0){
  18.         A_SendOrder(enum_sell,Enum_Entry,1,Q_AskPrice-10);
  19.         SetGlobalVar(1,3);
  20.         }
  21.     if(A_OpenOrderLot==0 && GetGlobalVar(1)==3){
  22.         SetGlobalVar(0,0);
  23.         SetGlobalVar(1,0);
  24.         }
  25.   }
复制代码

使用道具 举报

Rank: 2

精华
0
UID
72860
积分
60
帖子
14
主题
6
阅读权限
30
注册时间
2011-10-20
最后登录
2012-9-23
5#
发表于 2011-11-25 10:31:30 |只看该作者
非常感谢老师的指导,谢谢!
老师还要请教,这是翻空的例子,每天有多次翻多或翻空的机会,而且先翻多还是先翻空的顺序不一定,如果是翻多需要用其他的全局变量?还是再次重新初始化让setglobalvar(0,1);

if(barstatus==0){
    setglobalvar(0,1);
    setglobalvar(1,1);
}

使用道具 举报

Rank: 2

精华
0
UID
72860
积分
60
帖子
14
主题
6
阅读权限
30
注册时间
2011-10-20
最后登录
2012-9-23
6#
发表于 2011-11-25 11:33:22 |只看该作者
在增加一个全局变量就可以解决翻多的问题,谢谢老师的指点

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
93332
积分
172
帖子
74
主题
22
阅读权限
40
注册时间
2012-1-17
最后登录
2017-11-22
7#
发表于 2012-6-6 16:47:04 |只看该作者
mark

使用道具 举报

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

bottom

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

GMT+8, 2024-5-17 13:41

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部