Gösterge yükseltmesi için 10 ABD doları - sayfa 7

 
Her şey, katılımcıları ortalamanız için olacaktır. En az bir büyüklük sırası daha düşük alın.
 
Svinozavr >> :

Ve üstel için ne var? Zaten başlangıçta "kesirli" bir periyoda sahip, aslında sahip olmadığı - sadece bir katsayı var. geri bildirim. Bu, EMA'nın kesirli olmaması için MT'de yapılır. Ve böylece her zaman bir kesirli parametresi vardı. Bu katsayıyı kesirli dönemden yeniden hesaplayın ve hepsi bu. k=2.0/(1+dönem);
Eh, standart olanların geri kalanı zaten basit bir şekilde yapılıyor.

Cahilliğim için özür dilerim.

Aleksey görevi bu şekilde belirledi. ;)

Ve cevabı zaten aldık - önceki ortalamalara benzer şekilde ...

 
Sssssssss :)))
 
Pekala, kesirli noktalı bir anahtar EMA ekledim. İsteyen devam edebilir. Geriye iki yöntem kaldı.))) Ardından yerleşik iMA'yı fiyat türü, vardiya vb. ile tamamen değiştirebilirsiniz.
 #property indicator_chart_window // в окне инструмента
#property indicator_buffers 1
#property indicator_color1 Blue  

// входные параметры
extern double MAperiod= 3 ; // 
extern int Method= 0 ; 
 int History= 0 ; // 0- все бары

double    MA[]; // массив буфера
double k; // коэфф. EMA
double rt; // дробная часть периода
int per; // целая часть периода

void init() { // инициализация
   per= MathFloor (MAperiod);
   rt=MAperiod-per;
   k= 2.0 /( 1 +MAperiod);
   SetIndexBuffer ( 0 ,MA); // индикатор
   SetIndexLabel( 0 , "MA(" +DoubleToStr(MAperiod, 2 )+ ")" );
  }

void start() {
   int limit= Bars -IndicatorCounted()- 1 ; 
   if (History!= 0 && limit>History) limit=History- 1 ; // кол-во пересчетов по истории

   for ( int i=limit; i>= 0 ; i--) { // цикл пересчета по ВСЕМ барам
       switch (Method) {
         case 0 : // SMA
             int j=i+per;
             double ma=rt*Close[j];
            j--;
             for (; j>=i; j--) ma+=Close[j];
            ma/=MAperiod;
            MA[i]=ma;
             break ;
         case 1 : // EMA
            MA[i]=k*Close[i]+( 1 -k)*MA[i+ 1 ];   
        }
     }   
  }
Dosyalar:
rma.mq4  2 kb
 
avatara >> :

Aleksey görevi bu şekilde belirledi. ;)

EMA ile ilgili soru kışkırtıcıydı ve onu listenin sonuna kendi başıma koydum :)

 
Ben gencim. ben yeşilim Kesinlikle yargılamayın. Ben sadece matematiği seviyorum.
Ve sadece temel.
 
Mathemat >> :

EMA ile ilgili soru kışkırtıcıydı ve onu listenin sonuna kendi başıma koydum :)

Ne de olsa beni kışkırtmadın.)))
Evet, göstergemi yüksek çubukta kesirli bir ağırlıkla denediniz mi? Bence mantıklı. Özellikle bir dizi olarak temsil ediliyorsa ve periyodun en eski üyeye nasıl kesirli olarak süründüğü.)))

 
Evet, mantıklı. Grell'in çözümünden pek bir farkı yok.
 
Belki aptallık diyeceğim .... ama bence SMA kesri bile. olması gereken bu değil...
 
Başka bir şey öner, sakız .