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就会马上平仓动作.
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线结束时(或者就是在下一根K线开始)就得平仓,这个怎么写法?
if(K线结束()){平卖仓();}
平卖仓()这个我就会
K线结束()这个就不会写了,谁会写麻烦帮我写一下,谢谢.