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

1
回复
8225
查看
[复制链接]

196

主题

140

回帖

1444

积分

管理员

积分
1444
来源: 2019-7-19 16:31:02 显示全部楼层 |阅读模式
我们交易中有时候会用到定时开仓策略,该策略需要我们在指定时间进行下单操作,比如在下午欧洲盘开盘的时候,使用伦敦盘突破进行开仓。
下面我们讲一下该类型策略的源码。
直接上定时开仓源码:

  1. void OnTick()
  2.   {
  3.    
  4. iTimeControl(11,06, 12,03);
  5.    
  6.   }
  7. //+------------------------------------------------------------------+

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

  9. bool iTimeControl(int myStartHour,int myStartMinute, int myStopHour,int myStopMinute)
  10.       { if (Hour()==0 && Minute()==0)
  11.            timeorder=false;//新的一天变量初始化
  12.         if (Hour()==myStopHour && Minute()==myStopMinute+1)//满足结束时间条件
  13.                  {
  14.                 timeorder=false;
  15.                  }
  16.          if (Hour()==myStartHour && Minute()==myStartMinute)//满足开始时间条件
  17.                  {
  18.                 timeorder=true;
  19.                 OrderSend(Symbol(),OP_BUY,0.1,Ask,300,Ask-1000*Point,Ask+1000*Point,"jay",123654,0,clrRed);
  20.                  }  
  21.                  return(timeorder);
  22.          }        
复制代码
主函数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型变量,以控制是否开仓。函数中调用了四个参数,分别是开始时间(小时,分钟),结束时间(小时分钟)。然后在这个时间之外的所有时间都不开仓,在这个时间之内进行开仓操作。

QQ截图20190719163002.png

回复

使用道具 举报

196

主题

140

回帖

1444

积分

管理员

积分
1444
2019-7-19 16:32:27 显示全部楼层
特别提示:以上代码仅限于策略学习使用,因为依据以上代码交易会出现大量同时开仓现象,仅供学习之用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册
关注微信