А чего для экпоненциальной? Она и так изначально с "дробным" периодом, которого у нее, собственно, и нет - там только коэфф. обратной связи. Это в МТ так сделали, что EMA не дробная. А так она всегда имела дробный параметр. Пересчитывайте из дробного периода этот коэфф-т и все дела. k=2.0/(1+period); Ну, а остальные из стандартных - элементарно уже делаются.
Bitte verzeihen Sie mir großzügig, dass ich ungebildet bin.
Alexej hat die Aufgabe einfach so gestellt. ;)
Und wir haben die Antwort bereits gefunden - ähnlich wie bei den vorherigen Durchschnittswerten...
Nun, hier ist ein zusätzlicher Schalter EMA mit einer gebrochenen Periode. Wer es will, kann weitermachen. Zwei Methoden übrig.))) Und dann können Sie den eingebauten iMA mit Preisart, Schicht usw. vollständig ersetzen.
#property indicator_chart_window // в окне инструмента#property indicator_buffers 1#property indicator_color1 Blue // входные параметрыexterndouble MAperiod=3; // externint Method=0;
int History=0; // 0- все барыdouble MA[]; // массив буфераdouble k; // коэфф. EMAdouble 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) {
case0: // SMAint j=i+per;
double ma=rt*Close[j];
j--;
for(; j>=i; j--) ma+=Close[j];
ma/=MAperiod;
MA[i]=ma;
break;
case1: // EMA
MA[i]=k*Close[i]+(1-k)*MA[i+1];
}
}
}
Вопрос с ЕМА был провокационным, и я его спецом поставил в конец списка :)
Immerhin haben Sie nicht mich provoziert.)) Ja, ich habe meinen Indikator mit dem fraktionierten Gewicht am Reck ausprobiert. Das erscheint mir logisch. Vor allem, wenn man es als eine Serie betrachtet, und wie die Periodenbruchteile auf das älteste Mitglied krabbeln).
А чего для экпоненциальной? Она и так изначально с "дробным" периодом, которого у нее, собственно, и нет - там только коэфф. обратной связи. Это в МТ так сделали, что EMA не дробная. А так она всегда имела дробный параметр. Пересчитывайте из дробного периода этот коэфф-т и все дела. k=2.0/(1+period);
Ну, а остальные из стандартных - элементарно уже делаются.
Bitte verzeihen Sie mir großzügig, dass ich ungebildet bin.
Alexej hat die Aufgabe einfach so gestellt. ;)
Und wir haben die Antwort bereits gefunden - ähnlich wie bei den vorherigen Durchschnittswerten...
Просто Алексей так задачу поставил. ;)
Die EMA-Frage war provokativ und ich habe sie absichtlich an das Ende der Liste gesetzt :)
Und nur elementar.
Вопрос с ЕМА был провокационным, и я его спецом поставил в конец списка :)
Immerhin haben Sie nicht mich provoziert.))
Ja, ich habe meinen Indikator mit dem fraktionierten Gewicht am Reck ausprobiert. Das erscheint mir logisch. Vor allem, wenn man es als eine Serie betrachtet, und wie die Periodenbruchteile auf das älteste Mitglied krabbeln).