Перейти к содержанию

Доработка индикаторов: общая тема


Рекомендуемые сообщения

Доработка индикаторов: общая тема Опубликовано
56 минут назад, 0ll сказал:

но можно с помощью графических фигур - отрезков

Спасибо. Такой вариант не устраивает.

Вопрос закрыт

Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 1,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

прикрутилround_LevelsWhite_alert_1.mq4

Перейти

StepMA_Stoch alert.mq4

Перейти

1. Push-уведомления добавлены. Включается/выключаются в настройках NotificationAlerts 2. Текущий TF добавлен как в алерты, так и в PUSH-уведомления. 3. Ошибки исправлены.   Проверя

Перейти
Доработка индикаторов: общая тема Опубликовано
В 21.01.2020 в 16:43, Blakjek сказал:

Большое спасибо. Просто моя стратегия основана именно на пробое уровня, но нет возможности отслеживать каждую свечу. А вы можете сделать индикатор в котором можно выставить уровень вручную и алерт при пробое этого уровня по цене закрытия свечи?

Я многое могу, был бы стимул многое делать )
Попробуй такой вариант. Индикатор посылает всевозможные уведомления, когда цена либо пересечет заданную линию, либо свеча закроется выше/ниже линии (опционно). 
Может кому еще будет полезен, либо кто то придумает, как его доработать до идеала.

Price Notification Indicator v1.0.ex4

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Здравствуйте, помогите мне дописать этот Индикатор не как не могу решить проблему. Идея такая когда появляется сигнал (if(barUp >= EMAYelow)) на определенном баре то на этом бар должен нарисоваться прямоугольник за (н) количества баров. Что только не пробивал, не пойму, где Ошибка.
Стрелки работают, а прямоугольники нет. Спасибо.

 

 

 

candle-size-alert-mt4-indicator.mq4 PZ Volatmeter.ex4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
7 часов назад, awals сказал:

Что только не пробивал, не пойму, где Ошибка.
Стрелки работают, а прямоугольники нет. Спасибо.

У меня не работает индикатор PZ, выдает ошибку. 
Если создавать прямоугольники, то каждому нужно давать оригинальное имя, в нашем случае можно к имено прибавлять текущее i

Вообще код сразу выдают ошибку размера массива. Если массив создается динамический, то его размер нужно менять через ArrayResize, либо же создавать обычный hi[10000], если известно, сколько именно нужно туда вставлять переменных.

Теперь какая то вакханалия на графике рисуется.

candle-size-alert-mt4-indicator.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Подскажите как реализовать

Lots=NormalizeDouble(AccountBalance()/CheckLots,2);

округление в меньшую сторону, т.е. если AccountBalance()/CheckLots = 0,019

округляло до 0,01

Нашел решение

Lots=NormalizeDouble(AccountBalance()/CheckLots-0.005,2);

 

Изменено пользователем MakarFX
Вопрос решен.
  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
6 часов назад, MakarFX сказал:

Нашел решение

Поздравляю! Это решение у программистов называется "костыль". Если идти через MathFloor, то получится долго и запутанно, костыль - сразу и просто! ( я не шучу )

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Здравствуйте помогите найти мне в чём причина, никак не могу удалить Прямоугольник созданным Индикаторам, если я сам нанесу Прямоугольник на График он удаляется, а вот созданный индикатором (Indi.ex4) нет.
Для того чтобы удалить надо навести мышку на Прямоугольник и нажать Клавиша (Shift).

 

 

Indi.ex4 ShiftDel.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
10 часов назад, 0ll сказал:

Поздравляю!

Спасибо. Я не программист, поэтому только "костылями" пользуюсь)

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Пожалуйста помогите, вроде простой вопрос  

ObjectSetText("Lev",StringConcatenate("Lev: ",DoubleToStr(MarketInfo(Symbol(),MODE_STOPLEVEL),0)),SizeInfo,"Times New Roman",InfoColor);

Как задать толщину шрифта FW_BOLD, точнее как связать с

TextSetFont( "Time New Roman",9,FW_BOLD,0);

Очень прошу показать в коде, а то боюсь на словах не пойму.

P.S. Справочник MQL4 не помог.(

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
23 часа назад, MakarFX сказал:

округление в меньшую сторону, т.е. если AccountBalance()/CheckLots = 0,019

    Lots=NormalizeDouble(AccountBalance()/CheckLots,2);

    if (MarketInfo(Symbol(), MODE_LOTSTEP) != 0) Lots = MathFloor(Lots/MarketInfo(Symbol(), MODE_LOTSTEP))* MarketInfo(Symbol(), MODE_LOTSTEP); //округление полученного лота вниз
   	Lots = MathMin(MathMax(Lots, MarketInfo(Symbol(), MODE_MINLOT)), MarketInfo(Symbol(), MODE_MAXLOT)); //сравнение полученнго лота с минимальным/максимальным. 

 

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
26 минут назад, Rever27 сказал:

 

Спасибо. Я уже решил этот вопрос

 

1.png

Изменено пользователем MakarFX
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
14 минут назад, MakarFX сказал:

Спасибо. Я уже решил этот вопрос

там еще в конце важное сравнение идет с минимальный и максимальным лотом текущего счета, бывает, что округляет до 0, поэтому проверка будет не лишней.
 

 

6 часов назад, MakarFX сказал:

Как задать толщину шрифта FW_BOLD, точнее как связать с

походу никак, тут тоже не нашли ответа: https://www.mql5.com/ru/forum/212818
Можно изучить Canvas, через него можно мутить супер сложные фигуры и с текстом тоже посложнее есть работа, но я запарился его изучать, забил )

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
6 минут назад, Rever27 сказал:

походу никак, тут тоже не нашли ответа

Для себя вопрос решил https://www.mql5.com/ru/forum/160683/page1051#comment_14736160

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
11 минут назад, Rever27 сказал:

там еще в конце важное сравнение идет

Смотри скрин выше.

Первое число без округления, а второе с округлением.

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
23 часа назад, awals сказал:

Здравствуйте помогите найти мне в чём причина, никак не могу удалить Прямоугольник созданным Индикаторам, если я сам нанесу Прямоугольник на График он удаляется, а вот созданный индикатором (Indi.ex4) нет.
Для того чтобы удалить надо навести мышку на Прямоугольник и нажать Клавиша (Shift).

 

 

Indi.ex4 17 \u043a\u0411 · 1 загрузка ShiftDel.mq4 16 \u043a\u0411 · 1 загрузка

Привет всем , разобрался условия был не дописал в проверке на Прямоугольник.

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Подскажите пожалуйста, где можно Деокмпилировать (.ex4), может кто-нибудь знает где или у кого есть Деокмпилятор?

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Всем доброго времени суток.

Скажите, как прикрутить свой звук к "Alert()"?

Меня интересует в коде как прописать, т.к.в индикаторе прописан Алерт по нескольким событиям, то хочу разделить для каждого события свой звук.

Изменено пользователем MakarFX
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

@MakarFX у "Alert()" звук закреплен жестко, его не изменить.

 

@awals если .ex4 написан в программе до 600 билда то можно поискать декомпилятор в сети. И даже людей у кого он есть на этом форуме.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Подскажите пожалуйста, как написать проверку  на то что объект существует,  у меня выдаёт ошибку код 4200 что объект уже существует. 

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
6 часов назад, awals сказал:

Подскажите пожалуйста, как написать проверку  на то что объект существует,  у меня выдаёт ошибку код 4200 что объект уже существует. 

Полагаю проблема не в том, что объект уже существует, а в том, что Имя которое вы задаете объекту, уже существует. Поэтому если посмотрим на линии которые создаются программой они будут нумероваться :

Vertical Line 46413

Vertical Line 46570

Horizontal Line 46449

Horizontal Line 46602

Trendline 46467

Trendline 46551

Fibo 46478

Fibo 46590

Тоже правило и для человека. Когда создаем объекты, мы их должны нумеровать 1,2,3,4 и т.д. Все это для того, чтобы можно было к ним обращаться.

Проверка на существование.

  • Берем все объекты ObjectsTotal()

  • И проверяем на совпадение. Имя, которое хотим дать в имеющихся ObjectName()
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
21 минуту назад, MikR0ReR сказал:

Полагаю проблема не в том, что объект уже существует, а в том, что Имя которое вы задаете объекту, уже существует. Поэтому если посмотрим на линии которые создаются программой они будут нумероваться :

Vertical Line 46413

Vertical Line 46570

Horizontal Line 46449

Horizontal Line 46602

Trendline 46467

Trendline 46551

Fibo 46478

Fibo 46590

Тоже правило и для человека. Когда создаем объекты, мы их должны нумеровать 1,2,3,4 и т.д. Все это для того, чтобы можно было к ним обращаться.

Проверка на существование.

  • Берем все объекты ObjectsTotal()

  • И проверяем на совпадение. Имя, которое хотим дать в 

Спасибо 

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

Доработка индикатора Круглых уровней (Key Levels) - их нумерация 
Порядковая нумерация круглых уровней

 

Нумеруются только уровни в 1000 пунктов (новых)

В настройках индикатора, входные параметры:

Show_00_ Levels (true/false)
Show_50_ Levels (true/false)
Show_20_30_40_60_70_80_90_Levels (true/false)
Level_00_Color     (Цветовая палитра (1000пп) уровней)
Level_50_Color     (Цветовая палитра (1000пп) уровней)
Level_20_30_40_60_70_80_90_Color          (Цветовая палитра (1000пп) уровней)
Level_№_distance_x     (расстояние от правой границы)
Возможность устанавливать сколько (1000пп) уровней показывать (по умолчанию 30 (30 х 1000пп)) 

Отсчет круглых уровней ведется от уровня где находится текущая цена
Круглый уровень, в котором находится текущая цена - не берется в расчет, по-умолчанию будет "ноль"
Нумерация порядковых уровней начинается от 1001 (1)и далее.
Масштаб порядкового номера =90% от уровня (900пп), размещен по центру уровня.

 

Если что-то упустил, дайте знать, при желании взяться за доработку.
Заранее благодарю
 

Изменено пользователем Дервиш
Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано
7 часов назад, MikR0ReR сказал:

Полагаю проблема не в том, что объект уже существует, а в том, что Имя которое вы задаете объекту, уже существует. Поэтому если посмотрим на линии которые создаются программой они будут нумероваться :

Vertical Line 46413

Vertical Line 46570

Horizontal Line 46449

Horizontal Line 46602

Trendline 46467

Trendline 46551

Fibo 46478

Fibo 46590

Тоже правило и для человека. Когда создаем объекты, мы их должны нумеровать 1,2,3,4 и т.д. Все это для того, чтобы можно было к ним обращаться.

Проверка на существование.

  • Берем все объекты ObjectsTotal()

  • И проверяем на совпадение. Имя, которое хотим дать в имеющихся ObjectName()

А как должен выглядеть это в Коде?  A то что-то пробую никак не могу понять.

 if(open > close && barUp >= EMAYelow && open[i-1] > close[i-1])
           {
            ObjectCreate(0, "Rect" + (string)i, OBJ_RECTANGLE, 0, mytime + 60 * 60, hi, mytime - 60 * 60, low);
            ObjectSetInteger(0, "Rect" + (string)i, OBJPROP_COLOR, clrRed);
            ObjectSetInteger(0, "Rect" + (string)i, OBJPROP_BACK, true);
           }
 else(open < close && barUp >= EMAYelow && open[i-1] < close[i-1])
           {
            ObjectCreate(0, "Rect" + (string)i, OBJ_RECTANGLE, 0, mytime + 60 * 60, hi, mytime - 60 * 60, low);
            ObjectSetInteger(0, "Rect" + (string)i, OBJPROP_COLOR, clrGreen);
            ObjectSetInteger(0, "Rect" + (string)i, OBJPROP_BACK, true);
           }

 

Ссылка на сообщение
Поделиться на другие сайты

Доработка индикаторов: общая тема Опубликовано

@awals Идите на страницы и пройдите курс, слишком много вопросов которые там объясняются.

«Программирование на MQL4» — Курс молодого бойца

Обучение языку MQL4 под MetaTrader 4

Я смотрю у вас есть "i" в "Rect" + (string)i. Если при создании объекта выдает ошибку, что такой объект существует, значит такое имя уже есть. Это также значит что "i" не оригинальное. Я предлагаю как вариант сделать счетчик. Так как ни этот случай где нужно проводит проверку по именам.

int count_obj;    это пишем где входные настройки определяем.

 

{
ObjectCreate(0, "Rect" + count_obj, OBJ_RECTANGLE, 0, mytime + 60 * 60, hi, mytime - 60 * 60, low);
ObjectSetInteger(0, "Rect" + count_obj, OBJPROP_COLOR, clrRed);
ObjectSetInteger(0, "Rect" + count_obj, OBJPROP_BACK, true);

count_obj+=1;
}

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...