izotope Опубликовано 2 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 2 ноября, 2018 Здравствуйте!На МТ5 есть такой индикатор, можно ли его доработать таким образом, чтобы свечи из старшего ТФ выглядели как на МТ4?Т.е. вместо серых прямоугольников были линии как подобает японской свечке)) Screenshot_1.pngbackgroundcandle_htf.mq5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
xeon5923 Опубликовано 7 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 7 ноября, 2018 Здравствуйте друзья!Пытаюсь написать индикатор, но пока не получается. Трендовая линия рисует на графике прямую линию по открытию бара и по времени заданным мною. Например открылась в [1] минуту а закрылась в [39] минут, если цена "1" открытия больше цены "2" то рисуется красная линия, а если наоборот меньше то лайм. Нужен ли для каждой линии буфер, не более ~15? или можно ограничить по барам 1440 на минутке.Может быть из-за стиля и толщины линии ничего нетуПродолжим линию (свойство луч): ObjectSet(name,OBJPROP_RAY,false); #property strict#property indicator_chart_window#property indicator_buffers 2 double Buffer1[];double Buffer2[];extern int Time1 = 1; // Время открытия первой точкиextern int Time2 = 39; // Время открытия второй точкиextern color indicator_color1 = Red; // цвет линий красныйextern color indicator_color2 = Lime; // цвет линий лайм double price1 = PRICE_OPEN; //первая точка по цене открытия бара double price2 = PRICE_OPEN; //вторая точка по цене открытия бараbool ObjectCreate( string name="L1",ENUM_OBJECT= OBJ_TREND, int sub_window =0, datetime Time1=1, double price1=0, datetime Time2=39, double price2=0);int OnInit() { SetIndexBuffer(0,Buffer1); return(INIT_SUCCEEDED); }int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { for (int i=0; iif ( (TimeCurrent()==Time1)&& price1 { // был и такой вариант. if (price1 &&(TimeMinute (TimeCurrent(Time1)) ObjectSet("L1",OBJPROP_COLOR,Lime); } else {( (TimeCurrent()==Time1)&& price1 > (TimeCurrent()==Time2)&& price2); // хотя тут ругается что не имеет эффекта { ObjectSet("L1",OBJPROP_COLOR,Red); }}return(rates_total); } Изменено 7 ноября, 2018 пользователем xeon5923 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 7 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 7 ноября, 2018 (TimeCurrent()==Time1)&& price1 > (TimeCurrent()==Time2)&& price2); // хотя тут ругается что не имеет эффекта тут я согласен с компилятором :) цену надо сравнивать с ценой, время с временем , а просто &&price2 - писать нельзя ибо за && должна быть булева величина.Даже не знаю что посоветовать, ибо не понял нечего. Попробуйте найти похожий индюк и его модифицировать. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Dob3RmaNn Опубликовано 7 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 7 ноября, 2018 Товарищи, подкорректируйте индикатор.При инициализации на графике рисуются 3 вертикальных линии. Одна из них красная (горизонт данных), которая ограничивает историю для анализа. Необходимо удалить это ограничение. (Непонятно для чего ограничение, когда история для анализа итак задается двумя другими вертикальными линиями.)Ссылка на индикатор VP-Range-v6. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rever27 Опубликовано 8 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 8 ноября, 2018 При инициализации на графике рисуются 3 вертикальных линии. Лично у меня там 2 линии - синяя и красная, это диапазон данных. Красная линия двигается куда нужно вручную. https://www.mql5.com/ru/code/15445 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Dob3RmaNn Опубликовано 8 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 8 ноября, 2018 При инициализации на графике рисуются 3 вертикальных линии. Лично у меня там 2 линии - синяя и красная, это диапазон данных. Красная линия двигается куда нужно вручную. https://www.mql5.com/ru/code/15445 Качал именно с mql5, так же пробовал более раннюю версию (не v6).При попытке переместить красную линию DrawVLine (Red, STYLE_DOT) (на рис.ср.линия) на след.тике она возвращается на "своё" место. Спойлер Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rever27 Опубликовано 8 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 8 ноября, 2018 Это ограничение периода DataSource. Чем выше ставишь, тем больше ограничение задано.Установил равным текущему ТФ, скрыл настройку. Теперь для анализа берется столько баров, сколько загружено на график. VP-Range-v6.1.mq4 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
xeon5923 Опубликовано 8 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 8 ноября, 2018 тут я согласен с компилятором цену надо сравнивать с ценой, время с временем , а просто &&price2 - писать нельзя ибо за && должна быть булева величина.Даже не знаю что посоветовать, ибо не понял нечего. Попробуйте найти похожий индюк и его модифицироват Спасибо за ответ) и помощь. Так и получилось что не с нуля, а брал пять индикаторов разных похожих по свойствам и изучал, менял в них данные +F1. Хотя уже понимаю что не обязательно OBJ_TREND, а любой визуально удобный индикатор с двумя цветами и заданным временем. Это взято из просторов, возможно это вы имеете в виду. Пока работаю над тем чтобы получилось хоть что-то) http://tradelikeapro.ru/mql4-vremya-na-poisk-oshibok/ тоже полезно//Проверим что трендовая линия нарисована правильно (по движению цены): datetime t1=ObjectGet(name,OBJPROP_TIME1); datetime t2=ObjectGet(name,OBJPROP_TIME2); if(t1>t2)//Определим тренд (вверх или вниз): bool trend=false; double p1=ObjectGet(name,OBJPROP_PRICE1); double p2=ObjectGet(name,OBJPROP_PRICE2); if(p1 За готовый индикатор готов пополнить телефон(с) Romantik)) Изменено 8 ноября, 2018 пользователем xeon5923 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 8 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 8 ноября, 2018 xeon5923 Попробуйте объяснить что Вам нужно, нарисуйте в паинте как должно выглядеть. Я только понял, что по барам нужно линию рисовать, только откуда и куда неясно. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
xeon5923 Опубликовано 9 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 9 ноября, 2018 xeon5923 Попробуйте объяснить что Вам нужно, нарисуйте в паинте как должно выглядеть. Я только понял, что по барам нужно линию рисовать, только откуда и куда неясно. Думаю по хорошему начать надо с одной линии по заданному времени, потом цвет или ограничения по количеству добавить.http://fxpics.ru/image/rJ8MWПример.jpg Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 9 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 9 ноября, 2018 xeon5923 становится понятней, т.е. надо провести линию от цены открытия бара со временем хх:01 до цены закрытия бара со временем хх:35, где хх - это каждый час. Раскрасить в зависимости от наклона и ограничить рисование в прошлом не далее суток. Так? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
xeon5923 Опубликовано 9 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 9 ноября, 2018 Допускаю что может работать при функции SetIndexBuffer() (но тут не более 8 линий) или при void OnTimer() пока тоже изучаю. Даже при назначении времени от хх:01 и возможности задавать поминутно +34 мин. по барам весь день( или +15) Вариантов получается много, а вот какой оптимальнее. Вашу задачу можно выполнить через 2 буфера (пример рисования отрезков через цикл), или с помощью графических объектов, чтоб не захламить график линиями - можно удалять линии нарисованные более суток назад. Изменено 10 ноября, 2018 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
roman01 Опубликовано 13 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 13 ноября, 2018 Уважаемые форумчане, понадобилось мне рассчитать (не в MT) индикатор CCI и: то ли глаз замылился, или я чего-то не так делаю, в общем не получается у меня...Сделал я в LibreOffice Calc тестовый стенд с данными по EURUSD с 01.05.2018 по текущее время и провел расчет CCI по инструкции metatrader5.com/ru/terminal/help/indicators/oscillators/cci, результат - какая то ерунда.Посмотрите, кто может: где я накосячилСпасибо за помощь! Расчет_CCI.zip Изменено 13 ноября, 2018 пользователем roman01 Ссылка на сообщение Поделиться на другие сайты More sharing options...
geugene Опубликовано 20 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 20 ноября, 2018 Привет!Есть редкий индикатор. Чем-то он похож на каналы ТМА. Проблема в том, что его код явно не оптимизирован, т.к. терминал подгружается.Может его кто оптимизировать? Пытался задать ограниченное число баров, чтобы не рисовал по всей истории. Не работает. Hurst_Bands_BIG.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 20 ноября, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 20 ноября, 2018 Может его кто оптимизировать?Нужен-ли расчёт индикатора на 0-баре, т.е. на каждом тике? если нет, то по закрытию бара должен работать шустрее - там просто вложенные циклы. ну и адаптировать код под последние версии mql не мешало-бы. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alex Fato Опубликовано 3 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 3 декабря, 2018 Здравствуйте, не могу найти решение...Как получить предпоследнее значение индикатора?к примеру фрактала. Вот так получил последний..double FR_UP = 0;double FR_DW =0;double Element[10];int q = 0;FR_UP = iFractals(NULL, 0, MODE_UPPER, i);FR_DW = iFractals(NULL, 0, MODE_LOWER, i);if(FR_UP != 0) { Element[q]=FR_UP; q++; } Twh9TJGuvRI.jpg Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 3 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 3 декабря, 2018 Здравствуйте, не могу найти решение...Как получить предпоследнее значение индикатора?Попробуйте не искать, а не затирать старое (предыдущее) Ссылка на сообщение Поделиться на другие сайты More sharing options...
batmanuyga Опубликовано 3 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 3 декабря, 2018 Нужна помощь . Не получается прикрепить 2 индикатора к советнику. Через журнал в тестере вывел через PRINT значения индюка по каждой свече. Выводятся значения за несколько тиков , секунд , дальше провал в несколько часов, потом опять несколько значений выводятся. За это время индикаторы несколько раз направление меняют. Вот смену направления никак и не выявить.Разработчики индюков наверно какую нибудь подлянку в код вставили.Заранее благодарен за помощь. HA.mq4SOM.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 3 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 3 декабря, 2018 Не получается прикрепить 2 индикатора к советникуПокажите код советника (ту часть, связанную с вызовом индикаторов). Ссылка на сообщение Поделиться на другие сайты More sharing options...
batmanuyga Опубликовано 3 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 3 декабря, 2018 Покажите код советника (ту часть, связанную с вызовом индикаторов). Buy=iCustom(NULL,0,"SOM",period,method,price,0,0); Sell=iCustom(NULL,0,"SOM",period,method,price,1,0); Print("Buy" , + Buy); Print("Sell" , + Sell); StopBuy(); StopSell();В журнале тестера непонятно как выводятся значения индикатора-через несколько свечей. Смену направления индюка не показывает. Постоянно одно значение EMPTY_VALUE (2147483647.0) , другое - цена по паре. Тестирую на М5 , период индикатора - 15.С индикатором НА разобрался сам. Изменено 4 декабря, 2018 пользователем batmanuyga Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 4 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 4 декабря, 2018 batmanuyga посмотрел код SOM - очень стрёмно написан. На каждом баре пересчитывается заново. Попробуйте его считывать не на 0-м, а на 1 баре. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
batmanuyga Опубликовано 4 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 4 декабря, 2018 batmanuyga посмотрел код SOM - очень стрёмно написан. На каждом баре пересчитывается заново. Попробуйте его считывать не на 0-м, а на 1 баре. Это первым делом и сделал, когда не получалось. Такая же хрень выходит со значениями индикатора... Там еще и третий(2) буфер есть. Его тоже в журнал выводил. Он всегда цену по паре показывает. Когда его выводишь , почему то (0) и (1) буфер меняют местами свои значения.Точно разработчики намудрили, запутали, чтоб никто не смог пользоваться... Этот индикатор из советника MARTIN LOCKER KING. А он платный.А ты не мог бы что то там в коде изменить ? Очень уж нужен этот индикатор, реально хороший. И многим ребятам , наверно, пригодился бы в их советниках... Я то в следствии тупости и труднодоходимости сам не врублюсь. В советниках чуть шарю в кодах. А вот индикаторы - китайские иероглифы. Изменено 4 декабря, 2018 пользователем batmanuyga Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alex Fato Опубликовано 4 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 4 декабря, 2018 Здравствуйте, не могу найти решение...Как получить предпоследнее значение индикатора?Попробуйте не искать, а не затирать старое (предыдущее) Идея отличная..(но если ничего не делать, то ничего и не будет)хочу сделать стрелочный индикатор на основе АВС паттерна, за теорией доу.На сколько я понял нужно данные индикатора отправить в массив, потом массив очистить от 0 значений, и далее перебрать массив с помощью цикла for.Кто то может помочь с этим вопросом(с кодом). Моих знаний к сожалению не достаточно.Скин ниже:EURUSDM150412.png Изменено 4 декабря, 2018 пользователем Alex Fato Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 5 декабря, 2018 На сколько я понял нужно данные индикатора отправить в массив, потом массив очистить от 0 значений, и далее перебрать массив с помощью цикла for.Нет. Вы анализируете например 3 последних значения индюка, эти данные поступают последовательно и не регулярно. Объявляем массив в 3 ячейки, при приходе нового значения старые переписываем из 1 -> 2, из 0 -> 1 и новое пишем в свободную 0-ую ячейку. Таким образом у нас под рукой всегда 3 последних значения и никаких циклов. Изменено 5 декабря, 2018 пользователем 0ll 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dub150 Опубликовано 11 декабря, 2018 Поделиться Доработка индикаторов: общая тема Опубликовано 11 декабря, 2018 Уважаемые эксперты, без Вашей помощи не получается вставить индикатор в советник. Советник не видит индикатор - что-то я неправильно делаю.Во вложении индикатор CCI_nrp_advanced(mtf+alerts+arrows).mq4Вот так он выглядит на графике - см. картинкуhttp://fxpics.ru/image/r1HVcПо некоторому скромному опыту ручной торговли - довольно правдивый индюк если использовать смену цвета индикатора при пересечении диапазона +- 10, ну и конечно фильтровать сигналы по тренду. Хотел проверить его работу в советнике но не смог подключить...Заранее спасибо за помочь! Всем удачи! CCI_-_nrp__advancedmtf_+_alerts_+_arrows.mq4 Изменено 11 декабря, 2018 пользователем dub150 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти