• QQ空间
  • 回复
  • 收藏

【MT4学习】一键平仓脚本学习

gyshssl 数据策略 2019-8-17 14:05 128682人围观


下面是一个一键平仓脚本,默认的是“all”平掉所有的持仓单,如果希望平掉多单,空单,盈利单,亏损单,只需要修改onstart函数中iCloseOrders中的类型。

  1. //+------------------------------------------------------------------+
  2. //|                                                      close01.mq4 |
  3. //|                                                        geekquant |
  4. //|                                        https://www.geekquant.com |
  5. //+------------------------------------------------------------------+
  6. #property copyright "geekquant"
  7. #property link      "https://www.geekquant.com"
  8. #property version   "1.00"
  9. #property strict
  10. #property show_inputs
  11. //+------------------------------------------------------------------+
  12. //| Script program start function                                    |
  13. //+------------------------------------------------------------------+
  14. void OnStart()
  15.   {
  16. iCloseOrders("All");
  17.    
  18.   }
  19. //+------------------------------------------------------------------+


  20. void iCloseOrders(string myType)
  21.   {  
  22.    int i;
  23.    for (i=OrdersTotal()-1; i>=0; i--)
  24.    {
  25.    
  26.     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
  27.     continue;
  28.     else
  29.     {
  30. //--------------平掉所有单----------------------+
  31.   if(myType=="All")
  32.     {
  33.         OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
  34.       }
  35. //--------------平掉多单----------------------+
  36.     if(myType=="Buy")//平掉所有多单
  37.       {
  38.           if(OrderType()==OP_BUY)
  39.           OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
  40.         }
  41. //--------------平掉空单----------------------+
  42.       if(myType=="Sell")//平掉所有空单
  43.       {
  44.    
  45.           if(OrderType()==OP_SELL)
  46.           OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
  47.         }
  48. //--------------平掉盈利单----------------------+        
  49.    if(myType=="Profit")//平掉所有盈利单
  50.       {
  51.           if(OrderProfit()>0)
  52.           OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
  53.         }
  54.       }
  55.     //--------------平掉亏损单----------------------+        
  56.    if(myType=="Loss")//平掉所亏损单
  57.       {
  58.           if(OrderProfit()<0)
  59.           OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
  60.       }
  61.       }
  62.       }
  63.       
  64.       
复制代码
MT4编程课程.png



路过

雷人

握手

鲜花

鸡蛋
原作者: gyshssl
关注微信