开拓者期货期权程序化系统交易论坛

标题: 请教Ih948和其他高手。 A函数重复发单的问题 [打印本页]

作者: yangtse010    时间: 2010-4-8 22:19:34     标题: 请教Ih948和其他高手。 A函数重复发单的问题

if(cLose[1]>MA[1]&&A_TodayBuyPosition<lots)   // 收盘价站稳均线之上,买进lots手
  {  A_SendOrder(Enum_buy,Enum_entry,lots,Q_AskPrice+f); }  

  if(收盘价跌破均线,平掉所有多单 );


   请教,前根K线的收盘价站稳均线,用A函数发单,加了仓位管理A_TodayBuyPosition<lots后,为什么还会重复发单,使得开仓数量超过lots手啊?

     怎样用全局变量来控制呢?  使得每次收盘价格站稳均线,只开仓lots手,不能重复发单

    谢谢!
作者: yangtse010    时间: 2010-4-9 09:33:26

自己顶1个     等高手来回答
作者: lh948    时间: 2010-4-9 09:47:32

加了仓位管理A_TodayBuyPosition<lots后,为什么还会重复发单
因为成交回报还没有推送回来,A_TodayBuyPosition还得不到正确的持仓,所以A_SendOrder还会重发
使用全局变量例如:
        If(BarStatus==0)
                        SetGlobalVar(0,0);
        If(Close[1]<Close && GetGlobalVar(0)<5)
                {
                        if(A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice))
                                SetGlobalVar(0,GetGlobalVar(0)+1);
                        i=i[1]+1;
                }Else
                        i=i[1];
作者: yangtse010    时间: 2010-4-9 11:42:48

恩  谢谢IH948老大.     i=i[1]+1; 在程序中起什么作用呢?
作者: lh948    时间: 2010-4-9 11:46:01

我之前调试用的,没什么用,直接忽略
作者: yangtse010    时间: 2010-4-9 12:07:58

春天来了   乱花渐欲迷人眼
作者: rookies    时间: 2012-2-25 22:55:21

一般A函数需要配合全局变量一起写,因为A函数的执行是盘中实时的,很可能会造成每一TICK下一次单,而这时你的成交回报还没有返回
作者: CrewsHe    时间: 2012-4-13 12:27:24

学习了





欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2