|
我们交易中有时候会用到定时开仓策略,该策略需要我们在指定时间进行下单操作,比如在下午欧洲盘开盘的时候,使用伦敦盘突破进行开仓。
下面我们讲一下该类型策略的源码。
直接上定时开仓源码:
- 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型变量,以控制是否开仓。函数中调用了四个参数,分别是开始时间(小时,分钟),结束时间(小时分钟)。然后在这个时间之外的所有时间都不开仓,在这个时间之内进行开仓操作。
|
|