诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

mt4获利多少全部清仓怎么写?

这是mt4编程方面的问题,它的策略要求是在订单总盈利满足设定条件的时候将订单全部平仓。

如果是计算当前mt4账户的总盈利,那直接用 AccountProfit() 函数即可。如果要计算某个EA或者某个指定货币对的订单总盈利,那需要单独编写盈利统计函数。

清仓通常是指将账户所有订单或者指定某种类型的订单全部平仓。如果是账户清仓,则在平仓所有多空单的时候还有考虑到是否删除所有未成交挂单。

这里以mt4账户总盈利达到多少执行全部清仓做示范,参考代码:

1、定义输入变量

input double  Clusd = 300;//定义账户盈利清仓金额变量

2、构建账户一键清仓函数,为了能有效的清仓所有订单,以 while() 循环结构编写较好。

   void Closeall()
   {
   int a=0;
    while(OrdersTotal()>0)
      {
         for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
            {
             if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)
             {
               if(OrderType() < 2)
                 {
                  if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,CLR_NONE))
                     {
                      Print("OrderClose Error #",GetLastError());
                      }
                   }
               if(OrderType() >= 2) 
   		 {
   	           if(!OrderDelete(OrderTicket()))
   		     {
                     Print("OrderDelete Error #",GetLastError());
                     }
   		  }  
             }
           }
            a=a+1;if(a==20){return;}
       }
   }

3、在EA主函数OnTick(void)中执行。

if(AccountProfit() >= Clusd){Closeall();}

账户盈亏清仓类的EA,在ea吧有现成的EA可直接下载使用。如果是新手研究学习EA编程,可以参考上面代码进行演变。

版权所有转载请注明标题及链接:峰汇在线 » mt4获利多少全部清仓怎么写?