MT4的EA程序中K线结束时就平仓怎么写?

 
MT4的EA程序中K线结束时就平仓怎么写?
比如当前K线开仓了,在K线结束时(或者就是在下一根K线开始)就得平仓,这个怎么写法?
if(K线结束()){平卖仓();}

平卖仓()这个我就会
K线结束()这个就不会写了,谁会写麻烦帮我写一下,谢谢.
 
TIAN2018TIAN:
MT4的EA程序中K线结束时就平仓怎么写?
比如当前K线开仓了,在K线结束时(或者就是在下一根K线开始)就得平仓,这个怎么写法?
if(K线结束()){平卖仓();}

平卖仓()这个我就会
K线结束()这个就不会写了,谁会写麻烦帮我写一下,谢谢.

这不难 关键是你得知道要以什么K线结束  

 

1.记录当前K0的时间,当K0时间突然增加,说明起新K线了;

2.记录当前K0的交易量,如果交易量减少了,说明起新K线了;

……

 

input ENUM_TIMEFRAMES Trade_TF = PERIOD_M5;

datetime last_time; //全局变量

int OnInit()

{

   last_time=iTime(NULL,Trade_TF,0);

   return(INIT_SUCCEEDED);

}

void OnTick()

{

   if(iTime(NULL,Trade_TF,0)>last_time) {

   平卖仓();

   }

   last_time=iTime(NULL,Trade_TF,0);

}


这个例子使用5分钟周期时框, 可以切换不同的时间框

代码思路: 赋值当前时间给参数last_time, 当iTime(NULL,Trade_TF,0)发生变化(说明价格进入新柱), iTime(NULL,Trade_TF,0)>last_time(旧值), 运行平仓动作, 运行完平仓动作后, 将新值再次赋值给last_time

               需要注意的是当加载EA时, 需要初始化一次last_time=iTime(NULL,Trade_TF,0); 否则当前有单子的情况下, 一加载EA就会马上平仓动作.

 
你可以换种方式思考,问题就很简单了:计算上一根K线是否满足下单条件,这样就相当于是下一根K线开盘下单,然后自己再限制开单次数,问题就解决了
 
加我微信,微信号:acyleon
 
Zhang Yi:

input ENUM_TIMEFRAMES Trade_TF = PERIOD_M5;

datetime last_time; //全局变量

int OnInit()

{

   last_time=iTime(NULL,Trade_TF,0);

   return(INIT_SUCCEEDED);

}

void OnTick()

{

   if(iTime(NULL,Trade_TF,0)>last_time) {

   平卖仓();

   }

   last_time=iTime(NULL,Trade_TF,0);

}


这个例子使用5分钟周期时框, 可以切换不同的时间框

代码思路: 赋值当前时间给参数last_time, 当iTime(NULL,Trade_TF,0)发生变化(说明价格进入新柱), iTime(NULL,Trade_TF,0)>last_time(旧值), 运行平仓动作, 运行完平仓动作后, 将新值再次赋值给last_time

               需要注意的是当加载EA时, 需要初始化一次last_time=iTime(NULL,Trade_TF,0); 否则当前有单子的情况下, 一加载EA就会马上平仓动作.

谢谢

 
谢谢,楼上的各位
 
 你的办法我用过,最简单的就是当有利润的时候 Open[0]==Close[0]时就平仓,或者date time!=time[0],还有一种方法 就是获取系统时间的分钟数 ,比如是15分钟图挂的EA   那么就是等系统时间的分钟数==15||==30||==45||==0 的时候平仓!希望能帮到你 不明白的话加我的微信18904514480
 
好好奇 你写出来了吗   哈哈
原因: