объясни задачу - так не совсем понятно чего требуется сделать
Надо чтоб каждый новый максимум был больше предыдущего отрисованного?
Или надо локальные максимумы (чтоб с двух сторон значения были меньше)?
Или как-то ещё?
Надо чтоб каждый новый максимум был больше предыдущего отрисованного?
Или надо локальные максимумы (чтоб с двух сторон значения были меньше)?
Или как-то ещё?
объясни задачу - так не совсем понятно чего требуется сделать
Надо чтоб каждый новый максимум был больше предыдущего отрисованного?
Или надо локальные максимумы (чтоб с двух сторон значения были меньше)?
Или как-то ещё?
Надо чтоб каждый новый максимум был больше предыдущего отрисованного?
Или надо локальные максимумы (чтоб с двух сторон значения были меньше)?
Или как-то ещё?
вообщем задача простая
просто индикатор отмечает вертикальнами линиями 40 дневные максимумы на протяжении всего графика
с помощью функции Highest(NULL,0,MODE_HIGH,40,i) причем отмечаются только восходящии максимумы нисходящии не должны отмечаться
если можно закинь код в мт4 и глянь пожалуйста
там в коде коментарии каким образом это делается.
косяк в том что несмотря на фильтр почемуто рисуются и нисходящие максимумы
у меня мозги уже близки к точке кипения я не могу понять где я накосячил.
что ты называешь "нисходящими максимумами"?
что ты называешь "нисходящими максимумами"?
нисходящие максимальные High которые возвращаются функцией Highest(...)
они находятся в нисходящих трендах
забрось пожалуйста код в мт4 и ты их увидишь
прикрепил, посмотрел. Ничего не понял =)
наверное, ты хотел вот так ;)
наверное, ты хотел вот так ;)
#property indicator_minimum 0 // минимум индикатора
#property indicator_maximum 1 // максимум идикатора
#property indicator_separate_window // Индикатор рисуется в отдельном окне
#property indicator_buffers 1 // Количество индикаторных массивов или линий которые будут отрисованны
#property indicator_color1 Green // Цвет линии или гистограммы индикатора
double _MM[]; // Обьявление массива для отрисовки
int init()
{//1
SetIndexStyle(0,DRAW_HISTOGRAM,0,2); //Функция определяющая параметры отрисовки массива
SetIndexDrawBegin(0,2); //Функция запрещающая вывод в окно двух крайних левых расчётов
SetIndexBuffer(0,_MM); //Функция определяющая массив который будет отрисован в отдельном окне
return(0);
}//-1
int start()
{
for( int i=Bars-41; i>=0; i--) //Цикл в котором считается индикатор
{
double val=High[Highest(NULL,0,MODE_HIGH,40,i)];
if(High[i]>=val) { _MM[i]=1; } else { _MM[i]=0; }
}
return(0);
}
Большое спасибо за подсказку.
Большое спасибо за подсказку.
подсказку? =)странный народ нынче пошёл....
Большое спасибо за подсказку.
подсказку? =)странный народ нынче пошёл....
Понимаешь пошагового отладчика нет и неизвестно когда будет ввиду того что терминал халявный
а все свойства созданного языка MQL4 сам понимаешь на бумаге не опишешь
при отсутствии опыта программиста и опыта отладки без отладчика приходится спрашивать
по этому ничего странного
или ты это в каком то другом смысле ?
или ты это в каком то другом смысле ?
в другом =)я не "подсказал", а сделал за тебя индюк. Время, между прочим, потратил ;)
А ты "спасибо за подсказку".... =)))
или ты это в каком то другом смысле ?
в другом =)я не "подсказал", а сделал за тебя индюк. Время, между прочим, потратил ;)
А ты "спасибо за подсказку".... =)))
а что ты хочешь ?
если учесть что это не индюк а только его часть
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
синтаксис в норме а вот с логикой какаято ерунда
Заранее благодарен
//+------------------------------------------------------------------+ //| МАКСИМУМЫ.mq4 | //| | //| | //+------------------------------------------------------------------+ #property indicator_minimum 0 // минимум индикатора #property indicator_maximum 1 // максимум идикатора #property indicator_separate_window // Индикатор рисуется в отдельном окне #property indicator_buffers 1 // Количество индикаторных массивов или линий которые будут отрисованны #property indicator_color1 Green // Цвет линии или гистограммы индикатора double _MM[]; // Обьявление массива для отрисовки //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() {//1 SetIndexStyle(0,DRAW_HISTOGRAM,0,2); //Функция определяющая параметры отрисовки массива SetIndexDrawBegin(0,2); //Функция запрещающая вывод в окно двух крайних левых расчётов SetIndexBuffer(0,_MM); //Функция определяющая массив который будет отрисован в отдельном окне return(0); }//-1 //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //-------------------------------------------------- int i,val,maxH,ii; //Обьявление переменных для счётчика и прочее ! for(i=Bars-40; i>=0; i--) //Цикл в котором считается индикатор { val=Highest(NULL,0,MODE_HIGH,40,i); maxH=High[i+40]; _MM[i]=0; //предварительное забивание массива нолями for (ii=i+40; ii>=i; ii-- ) //перемещаемый цикл в котором считается самое макс значение за 40 дней //которое будет сравниваться с самымым максимальным значением найденным { //функцией Highest для того чтобы исключить показ нисходящих максимумов if( High[ii]>maxH ) maxH=High[ii]; } if(High[i]>maxH) // само сравнение фильтр нисходящщих максимумов _MM[val]=1; // сами метки индикатора else _MM[val]=0; } //------------------------------------------------- return(0); } //+------------------------------------------------ // и в итоге ни фига нисходящие максимумы всё равно отмечны индикатором !