gyshssl 发表于 2019-7-19 16:31:02

MT4代码学习---简单的定时开仓策略

我们交易中有时候会用到定时开仓策略,该策略需要我们在指定时间进行下单操作,比如在下午欧洲盘开盘的时候,使用伦敦盘突破进行开仓。
下面我们讲一下该类型策略的源码。
直接上定时开仓源码:

void OnTick()
{
   
iTimeControl(11,06, 12,03);
   
}
//+------------------------------------------------------------------+

bool timeorder=false;//该变量需要在程序头定义

bool iTimeControl(int myStartHour,int myStartMinute, int myStopHour,int myStopMinute)
      { if (Hour()==0 && Minute()==0)
         timeorder=false;//新的一天变量初始化
      if (Hour()==myStopHour && Minute()==myStopMinute+1)//满足结束时间条件
               {
                timeorder=false;
               }
         if (Hour()==myStartHour && Minute()==myStartMinute)//满足开始时间条件
               {
                timeorder=true;
                OrderSend(Symbol(),OP_BUY,0.1,Ask,300,Ask-1000*Point,Ask+1000*Point,"jay",123654,0,clrRed);
               }
               return(timeorder);
         }         主函数ontick中我们调用了一个函数:iTimeControl,然后在下面进行子函数定义。


bool iTimeControl(int myStartHour,int myStartMinute, int myStopHour,int myStopMinute)
{ if (Hour()==0 && Minute()==0)
timeorder=false;//新的一天变量初始化
if (Hour()==myStopHour && Minute()==myStopMinute+1)//满足结束时间条件
{
timeorder=false;
}
if (Hour()==myStartHour && Minute()==myStartMinute)//满足开始时间条件
{
timeorder=true;
OrderSend(Symbol(),OP_BUY,0.1,Ask,300,Ask-1000*Point,Ask+1000*Point,"jay",123654,0,clrRed);
}
return(timeorder);
}


其中调用了一个bool型变量,以控制是否开仓。函数中调用了四个参数,分别是开始时间(小时,分钟),结束时间(小时分钟)。然后在这个时间之外的所有时间都不开仓,在这个时间之内进行开仓操作。



gyshssl 发表于 2019-7-19 16:32:27

特别提示:以上代码仅限于策略学习使用,因为依据以上代码交易会出现大量同时开仓现象,仅供学习之用。
页: [1]
查看完整版本: MT4代码学习---简单的定时开仓策略