客服热线:18391752892

求助写一个晚上2点55分自动平掉所有仓位的EA

   日期:2019-01-12     浏览:965    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 本帖最后由 LIJIASHUANG 于 2014-12-18 16:44 编辑
求助写一个晚上2点55分自动平掉所有仓位的EA
各位大师好,本人主要做德国指数,但由于他隔天跳空点数很大(常常100多点),我都是当日在收盘前全部单子都平掉。
但由于要上班,晚上12:00就要休息了。可是,有时12:00手上还有趋势单在手上,这时平了又可惜了。如果开着电脑,到了晚上2:55分电脑能自动平仓就好了,那位帮我写一个晚上2:55分自动平仓的EA,万分感谢!

//+------------------------------------------------------------------+
//|                                     14点开仓.mq4 |
//|                 Copyright 2014, metaQuotes Software Corp. |
//|                                   http://www.m |
//+------------------------------------------------------------------+
#property copyright Copyright 2014, metaQuotes Software Corp.
#property link      http://www.m
#property version    1.00
#property strict
input int     openhour;
input int     openminite;
input int     openseconds;
input int     closehour;
input int     closeminut;
input int     closeseconds;
input int     deadclosehour;
input int     deadcloseminut;
input int     deadcloseseconds;
input double toplosepersent=0.1;
double   stoplose;
double closeprice_14hour=0.0;
double calclots()
{
 return (AccountBalance()*toplosepersent)/stoplose;
}
//+------------------------------------------------------------------+
//| Expert initialization function                       |
//+------------------------------------------------------------------+
int onInit()
 {
//---
   
//---
   return(INIT_SUCCEEDED);
 }
//+------------------------------------------------------------------+
//| Expert deinitialization function                       |
//+------------------------------------------------------------------+
void onDeinit(const int reason)
 {
//---
   
 }
//+------------------------------------------------------------------+
//| Expert tick function                               |
//+------------------------------------------------------------------+
void onTick()
{
//--- 
      stoplose=(iATR(NULL,PERIOD_D1,12,0)*10000);
      if((Hour()==openhour) (Minute()==openminite) )
      {
       order_open();
      }
      if( (Hour()==closehour) (Minute()==closeminut) )
      {
       order_close();
      }
      if( (Hour()==deadclosehour) (Minute()==deadcloseminut) )
      { 
       closeall();
      }
      return;
     
 }
//+------------------------------------------------------------------+
void order_open()
{
 closeprice_14hour=0.0;
 if(OrdersTotal() 0) return;
 
   if(iMACD(NULL,1,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0) 0)//开多单
   
     {
        if(OrderSend(Symbol(),OP_BUY,calclots(),Ask,3,Ask-stoplose*Point*10,0, 14点的买单 ,12345,0,Green) 0)
          {
         printf( ordersend error ,GetLastError());
           return;
          }
         
         
     }
   if(iMACD(NULL,1,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0) 0)
   {
     if(OrderSend(Symbol(),OP_SELL,calclots(),Bid,3,Bid+stoplose*Point*10,0, 14点的卖单 ,12345,0,Green) 0)
          {
         printf( ordersend error ,GetLastError());
           return;
          }
   }
   if(iMACD(NULL,15,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0)==0)
   {
      return ;
   }
 
 return;
}
void closeall()
{
 
 
 
 int total=OrdersTotal();
 int cnt=0;
 if (total 1) return ;
 
 
 for(cnt=0;cnt total;cnt++)
 {
   if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==TRUE)         ///仅仅有一个单子
     {
        if(OrderType()==OP_BUY)
        {   
         
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet))
           {
              Print( OrderClose error ,GetLastError());
              return ;
             }
         
       
       }
       
       if(OrderType()==OP_SELL)
       {
         
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet))
              {
             Print( OrderClose error ,GetLastError());
             return ;
              }
         
       }   
        }
 }
 
return;
}
void order_close()
{
int total=OrdersTotal();
 int cnt=0;
 if (total 1) return ;
 
 
 for(cnt=0;cnt total;cnt++)
 {
   if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==TRUE)         ///仅仅有一个单子
     {
        if(OrderType()==OP_BUY)
        {   
          if(iClose(NULL,15,0) iClose(NULL,15,18))
         {Print( 多单10点30平仓
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet))
           {
              Print( OrderClose error ,GetLastError());
              return ;
             }
         }
         
       
       }
       
       if(OrderType()==OP_SELL)
       {
         if(iClose(NULL,15,0) iClose(NULL,15,18))
            {Print( 空单10点30平仓
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet))
              {
             Print( OrderClose error ,GetLastError());
             return ;
              }
            }
         
       }   
        }
 }
 
return;
     
}
     
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行