iMA()函数的移动参数是什么意思?

9
有人能为我解释一下iMA函数的两个shift参数之间的区别吗?请以示例为例。根据MQL4文档:

ma_shift - 移动平均线偏移量。指标线相对于图表的时间框架偏移。

shift - 指标缓冲区中取出的值的索引(相对于当前条目向前推移给定周期的位移)。

标准MA指标采用哪些参数?

2个回答

19
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

对于打包的标准指标“移动平均线”,“Shift”字段修改了“ma_shift”参数。

Indicator

对于打包的自定义指标'Moving Averages','MA_Shift'字段修改'ma_shift'参数。

Custom Indicator

两个指标都无法修改最后一个“shift”参数。

comparison


Graphically,对于标准指标“移动平均线”,更改“Shift”字段会将MA线向右移动(使用+ve数字),并将其向左移动(使用-ve数字)由整数值定义的周期数。

ma_shift = 0: default

ma_shift = 4: ma_shift +4

ma_shift = -4: ma_shift -4

在代码方面,当调用iMA()并将ma_shift设置为4时,例如:

double iMA("EURUSD", PERIOD_H1, 8, 4, MODE_SMA, PRICE_CLOSE, 0)

您将获得4个周期以前的移动平均值。


这是一个简单的文本指示器,显示iMA()值,其中周期、ma_shift和shift参数可编辑。尝试一下,并与“移动平均”指标(打开数据窗口)进行验证。
#property indicator_chart_window

extern int period   = 8;
extern int ma_shift = 0;
extern int shift    = 0;

void start(){
   string A1=StringConcatenate("Stat: ", DoubleToStr(MA(),5));
   Comment(A1);
   return (0);
}

double MA(){
   return(iMA(NULL, 0, period, ma_shift, 0, 0, shift));
}

iMA()函数中的最后一个“shift”参数用于移动计算所使用的周期,并且只能是正数。负数将请求未来不存在的周期。您可以尝试在上面的文本指示器中放入负数以查看结果。(0.00000) 如上所述,指标不允许编辑此参数,因为它们实际上是相同的。
double iMA("EURUSD", PERIOD_H1, 8, 4, MODE_SMA, PRICE_CLOSE, 0)

同上

double iMA("EURUSD", PERIOD_H1, 8, 0, MODE_SMA, PRICE_CLOSE, 4)

所以它为什么存在?很可能是为了与其他指标进行标准化,例如http://docs.mql4.com/indicators/iAlligator,其中“shift”参数是确定要从哪个时间段计算的总体决定因素,而单独的jaw_shift、teeth_shift、lips_shift则是用于图形移动绘制的独立参数。

3
ma_shift”是“线条”显示的图形位移量。这仅与显示数组值有关,与编码没有太多关系。EA方面不太相关。

shift”是元素的取值,用于计算。默认情况下,位移值为零(即零线(最后一根K线))。在MQL4中,任何K线的位移都是从最后一根K线开始向后。

例子:
您比较两个SMA。一个是20周期/0位移,另一个是10周期/4位移。每个SMA之间的比较将在数组中的最后一根K线上的20周期SMA和数组中向后4个周期的10周期SMA之间进行。
数字说明...
假设在最后一根K线上,20 SMA 的值为 1.1000
假设10 SMA 如下:
1.1050 在0根(最后一根)
1.1000 在1根(上一根)
1.0950 在2根(两根之前)
1.0900 在3根(三根之前)

结果:
是否为 20SMA(位移0)> 10SMA(位移0) => NO
是否为 20SMA(位移0)> 10SMA(位移3) => Yes

简而言之,MA_shift 是向前/向后移动线条的位移量。位移是向后的柱值的位移(从第0/最后一根K线开始)。意思是,4位移代表MA值往前4根K线。这个选项仅在编码时可用,用于算法构建。因为当计算MA交叉时,计算机使用的是数组值而不是线本身,所以对EA不相关。

祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接