EMA权重计算

 
1.EMA是通过将Close[0]的某个分数加到EMA[1]来确定的--具体是哪个分数?(问题已解决)
2.如何在EMA的当前值中找到cloze的权重?
 
 
怎样?
 
看看作为标准提供的指标--移动平均线。它在那里会更有意义。
粗略地说,你的份额将基于与一个具有大致相同平滑度的指标的时期的比较。
以下是EMA的代码(pr是你的份额):
//+------------------------------------------------------------------+
//| Exponential Moving Average                                       |
//+------------------------------------------------------------------+
void ema()
  {
   double pr=2.0/(MA_Period+1);
   int    pos=Bars-2;
   if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
   while(pos>=0)
     {
      if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
      ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
           pos--;
     }
  }
一般来说,要多检查网站上的文件,也要检查代码本身。
 
ema[i]=k*Close[i]+(1-k)*ema[i+1]。
其中k是0...1的一个分数。通常用周期代替分数,从这个分数计算:k=2.0/(1+周期)。即分数为0.5的EMA将对应于周期3。
 
залез в исходник ЕМА
void ema()
  {
   double pr=2.0/(MA_Period+1); // что значит период МА + 1? зачем?
   int    pos=Bars-2;
   if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
   while(pos>=0)
     {
      if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
      ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr); // Buffer[i]=Close[i]*2% + Buffer[i+1]*(1-2)
                                                                     непонятно: зачем ЕМА[i+1] умножается на 1-2?
           pos--;
     }
  }
 
Mathemat >>:
Загляни в индюкатор, поставляемый стандартно - Moving Average. Там будет понятнее.
Грубо говоря, твоя доля получится исходя из сравнения с периодом индюкатора примерно с таким же сглаживанием.
Вот код для ЕМА (pr - твоя доля):
А вообще почаще заглядывай в документацию, размещенную на сайте, а также в сами коды.

人们已经完全变得懒惰了。难道他们真的更喜欢我们晦涩难懂的语言,而不是被告席上的精确措辞?)))

 
你为什么认为我没有看文件? 我问的是文件中没有的内容。
并且在主题描述中我写了公式,这是文档中唯一的东西。
 
哦,来吧。这一切都在那里。也要从周期上计算出分数。
好的。你现在想通了 "分数 "的事了吗?
 
"通常用一个句号代替分数,根据这个句号计算出分数:K=2.0/(1+句号)",那么2.0是什么,如果不是分数? 因为你说用句号代替了分数
 
如果我没记错的话,这是尤勒斯的配方。但我已不记得它是如何得出的。