int ArrayMinimum( | double array[], int count=WHOLE_ARRAY, int start=0) |
Параметры:
array[] | - | Числовой массив, в котором производится поиск. |
count | - | Количество элементов для поиска. |
start | - | Начальный индекс для поиска. |
Пример:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
double minValueidx=ArrayMinimum(num_array);
Print("Min value = ", num_array[minValueIdx]);
double MA_array[100]; for ( int i = 99; i >= 0; i -- ) { MA_array[i] = iMA( ..., i ); }
komposter:
понятно, будем пробовать
double MA_array[100]; for ( int i = 99; i >= 0; i -- ) { MA_array[i] = iMA( ..., i ); }
Пожалуйста =)
double MA_temp[]; double MA_min[]; double MA_max[]; //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit; limit=Bars-counted_bars; double MA_min_pos, MA_max_pos; //---------- double MA_temp[30]; //---- for(int i=limit; i>=0; i--) { for(int t=i+29; t>=0; t--) { MA_temp[t]=iMA(0,0,MA_Period,MA_Shift,MA_Method,MA_Price,t); } MA_min_pos=ArrayMinimum(MA_temp,29,i); MA_max_pos=ArrayMaximum(MA_temp,29,i); MA_min[i]=iMA(0,0,MA_Period,MA_Shift,MA_Method,MA_Price,MA_min_pos); MA_max[i]=iMA(0,0,MA_Period,MA_Shift,MA_Method,MA_Price,MA_max_pos); } //---- return(0); }
Тут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
wlad писал (а):
Тут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
Создай невидимый буфер, его заполни значениями МА, затем к этому
буферу применяй ArrayMaximum
Тут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
Integer:
Разве этого не хватает - buy, sell видимы а остольные невидимы, или
так не правильно ?wlad:
Тут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
Создай невидимый буфер, его заполни значениями МА, затем к этому
буферу применяй ArrayMaximum Тут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red double buy[]; double sell[]; double MA_temp[]; double MA_min[]; double MA_max[]; double MA_aktuel[]; double MA_min_pos[]; double MA_max_pos[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(8); SetIndexBuffer(0, buy); SetIndexBuffer(1, sell); //---- SetIndexStyle(0, DRAW_ARROW,EMPTY); SetIndexStyle(1, DRAW_ARROW,EMPTY); //--- SetIndexArrow(0, 233); SetIndexArrow(1, 234); //---- return(0); }
wlad:
Тут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
Во-первых, limit=Bars-30-MA_Period-counted_barsТут чтото накуралесил, незнаю правильно или нет
... правда все соки выжимает из процессора :)
А во-вторых, MA_min[i]=MA_temp[MA_min_pos] а MA_max = MA_temp[MA_max_pos]
А в-третьих действительно надо буфер для МА, а потом из этого
буфера уже искать минимумы и максимумы.
Тогда не надо будет каждый тик 30 значений МА пересчитывать.
Тогда не надо будет каждый тик 30 значений МА пересчитывать.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Можно ли провести расчет не по символу а например по массиву значений индикатора ?