А чего для экпоненциальной? Она и так изначально с "дробным" периодом, которого у нее, собственно, и нет - там только коэфф. обратной связи. Это в МТ так сделали, что EMA не дробная. А так она всегда имела дробный параметр. Пересчитывайте из дробного периода этот коэфф-т и все дела. k=2.0/(1+period); Ну, а остальные из стандартных - элементарно уже делаются.
Por favor, perdóneme generosamente por ser analfabeto.
Es sólo la forma en que Alexei estableció la tarea. ;)
Y ya hemos recogido la respuesta - como, similar a los promedios anteriores...
Bueno, aquí hay un interruptor añadido EMA con un período fraccionario. Quien lo quiera, puede continuar. Quedan dos métodos))) Y luego puede hacer una sustitución completa del iMA incorporado con el tipo de precio, el turno, etc.
#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];
}
}
}
Вопрос с ЕМА был провокационным, и я его спецом поставил в конец списка :)
Bueno, después de todo no fui yo quien provocó)). Sí, probé mi indicador con el peso fraccionario en la barra alta... Me parece lógico. Especialmente si se piensa en ello como una serie, y cómo el período fraccionario se arrastra en el miembro más antiguo).
А чего для экпоненциальной? Она и так изначально с "дробным" периодом, которого у нее, собственно, и нет - там только коэфф. обратной связи. Это в МТ так сделали, что EMA не дробная. А так она всегда имела дробный параметр. Пересчитывайте из дробного периода этот коэфф-т и все дела. k=2.0/(1+period);
Ну, а остальные из стандартных - элементарно уже делаются.
Por favor, perdóneme generosamente por ser analfabeto.
Es sólo la forma en que Alexei estableció la tarea. ;)
Y ya hemos recogido la respuesta - como, similar a los promedios anteriores...
Просто Алексей так задачу поставил. ;)
La pregunta de la EMA era provocativa y la puse deliberadamente al final de la lista :)
Y sólo elemental.
Вопрос с ЕМА был провокационным, и я его спецом поставил в конец списка :)
Bueno, después de todo no fui yo quien provocó)).
Sí, probé mi indicador con el peso fraccionario en la barra alta... Me parece lógico. Especialmente si se piensa en ello como una serie, y cómo el período fraccionario se arrastra en el miembro más antiguo).