mt5版本,请教如何在ea初始化时候将某一指标从过去特定一段时间到当前时间的一系列数值计算并放在计算机内存里面???

 

请教如何在ea刚开始运行?初始化?将自定义或系统自带的指标,例如移动平均线?从过去一段时间到当前时间的一系列数值计算出来并按顺序放到一系列数组上?


用 OnCalculate??????

 

现获取指标句柄,然后用copybuffer()读出指标值,存入数组中。

多读读文档中的技术指标函数里面的例子,你就明白了。

Documentation on MQL5: Technical Indicators / iMA
Documentation on MQL5: Technical Indicators / iMA
  • www.mql5.com
Technical Indicators / iMA - Reference on algorithmic/automated trading language for MetaTrader 5
 
luenbo:

现获取指标句柄,然后用copybuffer()读出指标值,存入数组中。

多读读文档中的技术指标函数里面的例子,你就明白了。

假设ea初始化成功,并将数据读入,那如何将走完每一周期(M5,M15,M30或其他周期)过后的一个最新数据(不是所有)计算得出新值并放到数组里面???有什么方式或方法??有什么解决途径?
 
jamin:
假设ea初始化成功,并将数据读入,那如何将走完每一周期(M5,M15,M30或其他周期)过后的一个最新数据(不是所有)计算得出新值并放到数组里面???有什么方式或方法??有什么解决途径?

程序只有在某些情况下才会重新初始化(如变换周期)。你为何要在EA初始化的时候加载指标呢? 

 
luenbo:

程序只有在某些情况下才会重新初始化(如变换周期)。你为何要在EA初始化的时候加载指标呢? 

请教:1、ea的交易条件不是根据某些指标(自带或自定义、自创造)所得的数据的表现来判断行情趋势来下单的吗????我的意思不是加载指标,而是根据指标计算数值。

          2、ea不需要每次走完一个周期后再初始化,而是在初始化后并在一个新周期之后,计算该周期的数值,并存放到指定位置?

              例如当前M5周期,有10条k线的,初始化后的9,8,7,6,5,4,3,2,1,0k线的移动平均线MA12的数值 1 ,1 ,1 ,1,1 ,1 ,1 ,1 ,1 ,,因为当前k线0因为未走完并且不该值不确定,所以抛弃。

              走完M5一个周期后,一共有11条k线,即11.10,9,8,7,6,5,4,3,2,1,0 ,重新开始计算需要时间且部分数据是重复,所以设想就是只计算刚走完的k线数据,并重新移位。

 

版主在2楼已经说了方法。

在EA中要使用指标,就是先获得指标的句柄 ,然后用CopyBuffer把指标的值拷贝到你定义的数组中,然后可以使用该数组了。

建议你去参考下简单的示范。 

 
Ziheng Zhuang:

版主在2楼已经说了方法。

在EA中要使用指标,就是先获得指标的句柄 ,然后用CopyBuffer把指标的值拷贝到你定义的数组中,然后可以使用该数组了。

建议你去参考下简单的示范。 


我也有类似的疑惑,要在EA中调用自建的指标某一变量数值,怎么办呢

 
yhjcjmn1234:

我也有类似的疑惑,要在EA中调用自建的指标某一变量数值,怎么办呢


在EA的初始化函数也就是OnInit()中调用 iCustom () 获得指标的句柄handle,

指标的数据也就是handle指向的数据由EA自动更新,不要你负责,你任何时候通过CopyBuffer获得的数据都是最新的。

然后,我们一般是在EA的OnTick()中用 CopyBuffer来拷贝该指标的句柄所指向的数据到的数组中。

原因: