關於 CCI 指標中加入 移動平均線的計算

 
Hello , 想請問一個問題就是,我在 CCI 指標視窗中增加一條 MA(紅色的移動平均線) 如下圖,

我該如何在 EA 程式中撰寫取得如圖中顯示的 MA 值 (21.7691) ?

 

感謝您的幫忙。 

 

 
ArthurZhan:
Hello , 想請問一個問題就是,我在 CCI 指標視窗中增加一條 MA(紅色的移動平均線) 如下圖,

我該如何在 EA 程式中撰寫取得如圖中顯示的 MA 值 (21.7691) ?

 

感謝您的幫忙。 

 

 

你增加MA时 选择了 参数 First Indicator's data ,那么就是说这个条红色MA实际是对CCI做的移动平均计算后得出的。

两种解决方案:

1. 在EA中你可以先获得CCI的值,然后再对其进行移动平均计算。 或者,

2. 设计一个指标对CCI进行移动平均计算,然后在EA中调用这个指标。

 
Ziheng Zhuang:

 

你增加MA时 选择了 参数 First Indicator's data ,那么就是说这个条红色MA实际是对CCI做的移动平均计算后得出的。

两种解决方案:

1. 在EA中你可以先获得CCI的值,然后再对其进行移动平均计算。 或者,

2. 设计一个指标对CCI进行移动平均计算,然后在EA中调用这个指标。

你好,我先用一個迴圈收集 CCI 的 14  週期元素值,然後用  iMAOnArray() 去計算 移動平均值。

但是奇怪的是, iMAOnArray() 算出來的值和指標視窗出現的 MA 值不一樣。

我把相關的程式碼貼在下面,可以請您幫我看看是哪邊弄錯了嗎?  感謝萬分。 

ArrayResize(cciArry,14);
         
for(int i=0;i<14;i++)
{
   cciArry[i]=iCCI(tradeItem,0,14,PRICE_CLOSE,i);
}
         
cciAvg = iMAOnArray(cciArry,0,14,0,MODE_SMA,0);
 
ArthurZhan:

你好,我先用一個迴圈收集 CCI 的 14  週期元素值,然後用  iMAOnArray() 去計算 移動平均值。

但是奇怪的是, iMAOnArray() 算出來的值和指標視窗出現的 MA 值不一樣。

我把相關的程式碼貼在下面,可以請您幫我看看是哪邊弄錯了嗎?  感謝萬分。 

代码没有错。

你加载CCI指标时 用的是 PRICE_CLOSE ? ,加载MA指标时用的是MODE_SMA? 估计你的问题出在这二者。

 
Ziheng Zhuang:

代码没有错。

你加载CCI指标时 用的是 PRICE_CLOSE ? ,加载MA指标时用的是MODE_SMA? 估计你的问题出在这二者。

我在 CCI 指標視窗中加載的均線是用 MODE_EMA 的.
我用手動算過發現是 均線計算 EMA 的公式好像 MT4 和 一般的指數移動平均線的算法不同.

你知道在 MT4 中 EMA均線的計算公式嗎?

謝謝!
 
ArthurZhan:
我在 CCI 指標視窗中加載的均線是用 MODE_EMA 的.
我用手動算過發現是 均線計算 EMA 的公式好像 MT4 和 一般的指數移動平均線的算法不同.

你知道在 MT4 中 EMA均線的計算公式嗎?

謝謝!

  为什么你还纠结这个问题?

都已经给你指出来了,你的代码没有问题。

问题在于你指标视窗中的均线用的是MODE_EMA,可是的你的代码中用的是SMA

 

ArrayResize(cciArry,14);
         
for(int i=0;i<14;i++)
{
   cciArry[i]=iCCI(tradeItem,0,14,PRICE_CLOSE,i);
}
         
cciAvg = iMAOnArray(cciArry,0,14,0,MODE_SMA,0);  // 你代码中用的是SMA