一个关于EA仓位控制的问题,望有大师可以指导一下

 
情况是这样的:
我写了一个EA,最初的想法是我选中的几个执行EA的品种,通过EA系统每个只交易一次。
所以我就把程序写成了这样:
if(OrdersTotal()==0)
   {
         if(iSt_1(myMain1,myMain2,myMain3,myMain4)!=0 && iSt_3(myMain5,myMain6,myMain7,myMain8)!=0)
            {
               int ticket = OrderSend(NULL,OP_SELL,hand,Ask,20,Ask + 330* Point,0,NULL,1001,0,Green);
            }
   }
    else
   {
         if(OrderProfit()<-50)
            {
               bool a=OrderClose(OrderTicket(),hand,Ask,30,Red);
            }
   }
  
但是在运行过程中,发现了一个问题。这个程序是计算总仓位的量。所以只能是一个品种交易一次,然后系统就不会再做交易了。
比方说,我同时监控了EUR/USD、AUD/USD这两个品种。
当EUR/USD达到开仓条件的时候会开仓,然后AUD/USD如果同时也达到了条件就不会开仓了。
我起初的思路是想每个品种开一次仓。
不知道,哪位高人有解决方案。小弟刚学MQL4不久,望高人指点,叩拜!
 
peng liu:
情况是这样的:
我写了一个EA,最初的想法是我选中的几个执行EA的品种,通过EA系统每个只交易一次。
所以我就把程序写成了这样:
if(OrdersTotal()==0)
   {
         if(iSt_1(myMain1,myMain2,myMain3,myMain4)!=0 && iSt_3(myMain5,myMain6,myMain7,myMain8)!=0)
            {
               int ticket = OrderSend(NULL,OP_SELL,hand,Ask,20,Ask + 330* Point,0,NULL,1001,0,Green);
            }
   }
    else
   {
         if(OrderProfit()<-50)
            {
               bool a=OrderClose(OrderTicket(),hand,Ask,30,Red);
            }
   }
  
但是在运行过程中,发现了一个问题。这个程序是计算总仓位的量。所以只能是一个品种交易一次,然后系统就不会再做交易了。
比方说,我同时监控了EUR/USD、AUD/USD这两个品种。
当EUR/USD达到开仓条件的时候会开仓,然后AUD/USD如果同时也达到了条件就不会开仓了。
我起初的思路是想每个品种开一次仓。
不知道,哪位高人有解决方案。小弟刚学MQL4不久,望高人指点,叩拜!
指定一下交易标的
 
peng liu:
情况是这样的:
我写了一个EA,最初的想法是我选中的几个执行EA的品种,通过EA系统每个只交易一次。
所以我就把程序写成了这样:
if(OrdersTotal()==0)
   {
         if(iSt_1(myMain1,myMain2,myMain3,myMain4)!=0 && iSt_3(myMain5,myMain6,myMain7,myMain8)!=0)
            {
               int ticket = OrderSend(NULL,OP_SELL,hand,Ask,20,Ask + 330* Point,0,NULL,1001,0,Green);
            }
   }
    else
   {
         if(OrderProfit()<-50)
            {
               bool a=OrderClose(OrderTicket(),hand,Ask,30,Red);
            }
   }
  
但是在运行过程中,发现了一个问题。这个程序是计算总仓位的量。所以只能是一个品种交易一次,然后系统就不会再做交易了。
比方说,我同时监控了EUR/USD、AUD/USD这两个品种。
当EUR/USD达到开仓条件的时候会开仓,然后AUD/USD如果同时也达到了条件就不会开仓了。
我起初的思路是想每个品种开一次仓。
不知道,哪位高人有解决方案。小弟刚学MQL4不久,望高人指点,叩拜!
你要计算每一种交易标的的数量,而不是简单用OrdersTotal()==0
原因: