Скользящая средняя из предопределенного массива Close[] ?

 
Как ввести эти данные в " iMAOnArray( double array[]" ?

Можно через копирование массивов. Но это муторно и надо делать сдвиг "новый выпихивает самого старого".

Close[] этоделает сам.

В общем случае надо получить производную МА.

Может у кого есть более простой метод ?

 
AlexRS писал(а) >>
Как ввести эти данные в " iMAOnArray( double array[]" ?

Можно через копирование массивов. Но это муторно и надо делать сдвиг "новый выпихивает самого старого".

Close[] этоделает сам.

В общем случае надо получить производную МА.

Может у кого есть более простой метод ?

А просто iMA() не подходит?

 
Vinin >>:

А просто iMA() не подходит?

Так его после вычисления надо записывать в буфер-стек и делать сдвиг.

Либо процессор будет постояно пересчитывать МА со сдивигом Shift-- .

 

Посмотри внимательно вот этот индикатор https://www.mql5.com/ru/code/7534

 
AlexRS >>:
Как ввести эти данные в " iMAOnArray( double array[]" ?

Можно через копирование массивов. Но это муторно и надо делать сдвиг "новый выпихивает самого старого".

Close[] этоделает сам.

В общем случае надо получить производную МА.

Может у кого есть более простой метод ?

Вот есть какой то пример выдернул с советника, правда понятия не имею какая там логика сидит может поможет.


 double Bears_array[30]; int cx=0; while (cx<31)
 {Bears_array[cx]= iBearsPower(NULL, 0, PeriodPower,Price_,cx); cx++; }
 ArraySetAsSeries(Bears_array,true);
 double MA_Bears =iMAOnArray(Bears_array,0,Period_Bears,1,MA_,0); 
 
 double Bulls_array[30]; int lx=0; while (lx<31)
 {Bulls_array[lx]= iBullsPower(NULL, 0, PeriodPower,Price_,lx); lx++; } 
 ArraySetAsSeries(Bulls_array,true);
 double MA_Bulls =iMAOnArray(Bulls_array,0,Period_Bulls,1,MA_,0); 
 
 double Delta = MA_Bears + MA_Bulls;
 
Vinin >>:

Посмотри внимательно вот этот индикатор https://www.mql5.com/ru/code/7534

Спасибо.

Просто в этом случае надо самому следить за всеми индексами.

А хотелось изящного решения ;)

Вариант Гана красивее, хоть и с тем же доп.буфером-массивом.

 
AlexRS писал(а) >>

А хотелось изящного решения ;)

В индикаторе iMAOnArray() от индикаторного буфера.

 
Integer писал(а) >>

В индикаторе iMAOnArray() от индикаторного буфера.


Извините, если достал.
Еще вопрос: какая стандартная функция показывает "начало" или "окончание" текущего бара ?
По этому признаку буду накапливать историю МА (сдвигать стек).

А то перерыл вроде хелпер, но не увидел ответа.

ЗЫ. Кстати про индикаторный буфер. Пробовал. ПРинимает данные только если явно указать размер буфера.
 
AlexRS >>:


Извините, если достал.
Еще вопрос: какая стандартная функция показывает "начало" или "окончание" текущего бара ?
По этому признаку буду накапливать историю МА (сдвигать стек).

А то перерыл вроде хелпер, но не увидел ответа.

ЗЫ. Кстати про индикаторный буфер. Пробовал. ПРинимает данные только если явно указать размер буфера.

Когда истинно, тогда и сдвигать:

Bars!=BarsPrev или Time[i]!=TimePrev, где ***Prev - стат переменная, пред. значение ***.

Т.е. дальше по тексту нужно их синхронизировать. ***Prev=***