有人可以解释一下shift这个iMA函数的两个参数之间的区别是什么?
根据MQL4文件:
ma_shift- 移动平均移动.指标线偏移与时间范围的图表相关.
shift- 从指标缓冲区获取的值的索引(相对于当前条的转移给定的前期数)
标准MA指标采用哪些参数?
Rai*_*den 15
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
Run Code Online (Sandbox Code Playgroud)
对于打包的标准指标'移动平均线','移位'字段修改'ma_shift'参数.

对于打包的自定义指标'移动平均线','MA_Shift'字段修改'ma_shift'参数.

两个指标中的任何内容都不允许您修改最后一个"shift"参数.

在图形上,对于标准指标"移动平均线",更改"移位"字段将MA线向右移动(带有+ ve数字)并向左移动(带有-ve数字)移位由整数值定义的周期数.
ma_shift = 0:

ma_shift = 4:

ma_shift = -4:

代码方面,当轮询iMA()并将ma_shift设置为4时,例如
double iMA("EURUSD", PERIOD_H1, 8, 4, MODE_SMA, PRICE_CLOSE, 0)
Run Code Online (Sandbox Code Playgroud)
你会得到4个时期的移动平均值.
这是一个简单的文本指示器,显示iMA()值,其中period,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));
}
Run Code Online (Sandbox Code Playgroud)
iMA()函数中的最后一个'shift'参数会移动用于计算的周期,并且只能是+ ve编号.-ve号将要求将来不存在的时段.您可以尝试在上面的文本指示器中添加-ve数字,以查看您获得的内容.(0.00000)如上所述,指标不允许编辑此参数,只是因为它们实际上是相同的.
double iMA("EURUSD", PERIOD_H1, 8, 4, MODE_SMA, PRICE_CLOSE, 0)
Run Code Online (Sandbox Code Playgroud)
与...一样
double iMA("EURUSD", PERIOD_H1, 8, 0, MODE_SMA, PRICE_CLOSE, 4)
Run Code Online (Sandbox Code Playgroud)
那为什么呢?最有可能作为其他指标的标准化,例如http://docs.mql4.com/indicators/iAlligator ,其中'shift'参数是一个总体确定器,用于计算从哪个时间段开始,并且单独的jaw_shift,teeth_shift,lips_shift是独立的参数以图形方式移动绘制的线条.
| 归档时间: |
|
| 查看次数: |
15965 次 |
| 最近记录: |