КАК НАПИСАТЬ СОВЕТНИКА ФОРЕКС ПО ИНДИКАТОРУ

Лучшие Форекс брокеры 2021:

MQL4: Пишем советник по индикатору открытых позиций трейдеров

Не так давно на сайте появился индикатор открытых позиций трейдеров. Мне он понравился тем, что можно одновременно получать данные из нескольких источников. Кроме того, в рамках написания этой статьи я немного протестировал визуально этот индикатор, и результат показался мне многообещающим. И сегодня мы поработаем с этим индикатором, чтобы использовать его данные в своем советнике.

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

Мы будем использовать библиотеку wininet.dll, которая как раз позволяет получать данные из сети. Также мы будем плотно работать со строками, используя такие функции, как StringFind, StringSubstr, StringConcatenate, StrToDouble и прочие.

Советник получился довольно объемным, поэтому конкретный код приводить в рамках статьи будет нецелесообразно. Все это вместе с подробными пояснениями можно увидеть в видеоуроке.

Заключение

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

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

Рейтинг Форекс брокеров:

Exp — The xCustomEA Советник по индикатору PipFinite Trend PRO

Пример программирования стратегии по индикатору PipFinite Trend PRO и торговля с помощью нашей универсальной торговой системы Exp — The xCustomEA.

В этой статье мы подробно разберем пользовательский индикатор PipFinite Trend PRO , скачанный с маркета mql5.

Разберем способы работы с индикатором и варианты его вызова в нашем Советнике Exp — The xCustomEA .

Как создать советника Форекс своими руками?

Начало

Разрабатывая советник Exp — The xCustomEA, мы знали, что большинство наших пользователей программировать не умеют!

Но нужно ли иметь знания по программированию, чтобы торговать по индикатору?

Лучшие Форекс площадки:

Мы сделали все, чтобы использование нашего советника была легким и доступным.

Программирование советника по индикатору за 20 минут? Легко!

Особенно, Если весь программный код уже давно выполнен на безупречно.

В нашей инструкции по Exp — The xCustomEA мы максимально понятно написали шаги по программированию стратегий!

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

Дело в том, что в маркете mql5 очень много индикаторов для МТ5 и МТ4.

Но мы выбрали один из самых популярных индикаторов маркета, который имеет 1000 отзывов и распространяется для терминала МТ4 и МТ5.

Также автор индикатора на стал скрывать сигнальные буферы и даже написал номера этих буферов! Что очень важно при разработке советника по индикатору.

PipFinite Trend PRO

Для начала работы с индикатором, нам необходимо установить его в наши терминалы!

Как установить индикатор с маркета?

Нажимаем кнопку Скачать ТРИАЛ или Free DEMO

Подтверждаем загрузку индикатора в наш терминал MetaTrader

После загрузки индикатора с маркета он появится в папке Вашего терминала Indicators\Market

Для того, чтобы протестировать индикатор, Вам необходимо нажать правой кнопкой по индикатору — Test

Должен открыться тестер стратегий, где будет выбранный наш индикатор

Определение сигнальных буферов

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

Нам необходимы номера буферов.

Изначально я пытался сам выяснить номера буферов, но это заняло немало времени потому, что номера буферов не стандартны!

Почитав инструкцию к индикатору я обнаружил, что автор сделал правильно, он написал номера буферов для работы из советника. За это огромный Респект.!

Для того, чтобы узнать номера буферов для сигналов, нам необходимо запустить индикатор в режиме Визуализации и открыть Окно данных или Data Window

C этими номерами мы будем в дальнейшем работать!

Хочу заметить, что все буферы начинаются с 0!

В данном случае Буфер для сигналов BUY под номером 8.

Буфер для сигналов SELL под номером 9.

Этот индикатор очень выгодный для нашего примера потому, что мы можем использовать два типа программирования советника по индикатору:

  1. Программирование сигналов в нашем индикаторе Ind — The xCustomEA для сигналов ( xCustomEA )
  2. Установка PipFinite Trend PRO в качестве основного индикатора без отдельного программирования ( xArrow )

xArrow Работа по индикатору без программирования

Начнем с простейшего прямого указание пользовательского индикатора PipFinite Trend PRO в качестве xArrow

Так, как мы знаем номера буферов для сигналов, а также знаем, что советник устанавливает стрелки по сигналу, то следующий процесс настройки нашего советника займет 10 секунд:

Открытие позиций Сигналы

для мт4 мы указываем название Market\\PipFinite Trend PRO

для мт5 мы указываем название Market\\PipFinite Trend PRO MT5

Параметр SignalTypeIndicator = xArrow

Далее нам необходимо указать номера буферов для открытия позиций!

Автор индикатора любезно предоставил эти номера и мы легко их видим в обзоре рынка:

  1. SignalBuferforBUY=8
  2. SignalBuferforSELL=9

Все остальные настройки по умолчанию!

  1. SignalNameIndicator=Market\\PipFinite Trend PRO MT5
  2. SignalTypeIndicator=2
  3. TF_IndSigToTrade1=0
  4. OWNSIGNAL_shift=1
  5. SIGNALStrategyInputs=
  6. SignalBuferforBUY=8
  7. SignalBuferforSELL=9

Проверяем работу советника и определяем, что советник точно торгует по нашему индикатору!

Результаты работы советника по индикатору PipFinite Trend PRO будут представлены ниже!

Закрытие позиций Сигналы

для мт4 мы указываем название Market\\PipFinite Trend PRO

для мт5 мы указываем название Market\\PipFinite Trend PRO MT5

  1. CloseNameIndicator=Market\\PipFinite Trend PRO MT5
  2. CloseTypeIndicator=xArrow
  3. CloseTimeFrame=0
  4. Close_shift=1
  5. CloseStrategyInputs=
  6. CloseBuferforBUY=9
  7. CloseBuferforSELL=8

Далее нам необходимо указать номера буферов для закрытия позиций!

Автор индикатора любезно предоставил эти номера и мы легко их видим в обзоре рынка:

  1. CloseBuferforBUY =9
  2. CloseBuferforSELL =8

Как видите — для закрытия позиций по сигналам индикатора, достаточно перевернуть номера буферов (По умолчанию, наш советник открывает по сигналам и закрывает позиции по противоположному сигналу, но если у Вас есть спец буферы для закрытия по определенным правилам, можете использовать их)

Все остальные настройки по умолчанию!

Фильтрация сигналов по тренду

для мт4 мы указываем название Market\\PipFinite Trend PRO

для мт5 мы указываем название Market\\PipFinite Trend PRO MT5

  1. FilterNameIndicator=Market\\PipFinite Trend PRO MT5
  2. FilterTypeIndicator=2
  3. FILTER_TF_IndSigToTrade1=0
  4. FILTERSIGNAL1_shift=1
  5. FILTERStrategyInputs=
  6. FilterBuferforBUY=10
  7. FilterBuferforSELL=11

Далее нам необходимо указать номера буферов для фильтрации позиций!

Автор индикатора любезно предоставил эти номера и мы легко их видим в обзоре рынка:

  1. FilterBuferforBUY=10
  2. FilterBuferforSELL=11

Эти значения похожи на значения при открытии позиций. Их можно использовать с другими индикаторами.

Например: на открытие указывать один индикатор, а на фильтрацию сигналов указывать этот индикатор с фильтрами.

Автор указывает эти фильтры как линии UpTrend и DnTrend

Все остальные настройки по умолчанию!

Стоплосс и Тейкпрофит от индикатора

для мт4 мы указываем название Market\\PipFinite Trend PRO

для мт5 мы указываем название Market\\PipFinite Trend PRO MT5

  1. SLTPNameIndicator=Market\\PipFinite Trend PRO MT5
  2. SLTPTypeIndicator=1
  3. SLTPTimeFrame=0
  4. SLTP_shift=1
  5. SLTPStrategyInputs=
  6. SLTPBuferforBUY_StopLoss=-1
  7. SLTPBuferforSELL_StopLoss=-1
  8. SLTPBuferforBUY_TakeProfit=13
  9. SLTPBuferforSELL_TakeProfit=13

Далее нам необходимо указать номера буферов для получения значений тейкпрофита!

Автор индикатора любезно предоставил эти номера и мы легко их видим в обзоре рынка:

  1. SLTPBuferforBUY_TakeProfit=13
  2. SLTPBuferforSELL_TakeProfit=13

Здесь мы указываем одинаковый буфер. Автор указывает нам Тейкпрофит по цене, и в момент нового сигнала заполняется буфер номер 13.

Для стоплосса, автор не указал номер буфера. В этой стратегии стоплосс не предусмотрен! Вы можете указать свой стоплосс в настройках нашего советника в разделе Stops

Также автор указал нам два буфера для тейкпрофита.

Ближний под номером 12

Дальний под номером 13

Мы использовали дальний тейкпрофит, Вы можете указать 12 для ближнего Тейкпрофита.

Результат закрытия по тейкпрофиту индикатору:

Все остальные настройки по умолчанию!

Тестирование советника PipFinite Trend PRO

После проверки правильности сигналов, Мы запустим тест советника по индикатору на EURUSD H1 с 2022 01 01 по 2022 09 27

Кстати : Мы совершенно точно видим, что советник работает практически одинаково на двух терминалах МТ4 и МТ5

Выводы

Мы не будем проводить многочисленные тесты этого индикатора, Вы можете использовать наш пример по работе с этим индикатором и оптимизировать параметры нашего советника с разными вариантами использований функций.

Помните, что для того, чтобы индикатор и советник работал на Вашем демо счете или реальном счете, Вам необходимо купить Exp The xCustomEA и индикатор PipFinite Trend PRO для того терминала, с которым Вы будете работать!

Покупая наш Exp The xCustomEA Вы можете программировать любые стратегии с использованием любых индикаторов!

Программирование советников по индикаторам — за 5 минут — шаблон в теме!

Программирование советников, для проверки своей стратегии по каким либо индикаторам — достаточно простое дело.
И особых познаний в области программирования не нужны.
Я расскажу Вам, как сделать советника за 5 минут на основе каких либо индикаторов.

MQL4 — Пишем индикатор новостей

Данный шаблон подходит только для стратегий , которые явно показывают работу индикатора.

Для заказа более сложных систем — обращайтесь к программистам(Программист MQL, Программист форекс, Советники на заказ ищите в гугле).
Такой вид программирования будет платный, но он даст Вам надежность, что Ваша система будет работать именно так, как Вы этого хотите. Выделил я не для того чтобы Вы мне присылали на почту свои идеи, а для того чтобы Вы понимали суть написанного

Итак, для написания советника по Вашим индикаторам необходимо скачать шаблон

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

Как видите в настройках существует блок, в который нужно перенести все внешние параметры индикатора.

Далее, для запуска Вашей стратегии, необходимо прописать сигналы от Вашего индикатора в блок:

В данном примере показан лишь пример работы советника по индикатору МА.

Вы можете посмотреть реализацию алгоритма на примере Советника по Стратегии (Форекс ПУРИА)

Вложения

Avangard

Интересующийся
  • 27.05.2022
  • #2

expforex

Программиров
  • 27.05.2022
  • #3

ron0007

Активный участник
  • 05.06.2022
  • #4

expforex

Программиров
  • 05.06.2022
  • #5

Andy200577

Новичок форума
  • 04.10.2022
  • #6

Vip_di

Активный участник
  • 12.10.2022
  • #7

Я пожалуй присоединюсь к просьбе Andy200577.

Дорогой expforex пожалуйста если Вас не затруднит покажите как вписать в код советника сторонний индикатор

▶ Урок программирования Подключение индикаторов в советники mql4

Andy200577

Новичок форума
  • 28.10.2022
  • #8

mg015

Интересующийся
  • 10.12.2022
  • #9

terminat

Заблокирован
  • 21.12.2022
  • #10

expforex

Программиров
  • 04.01.2022
  • #11

RaBort

Новичок форума
  • 18.01.2022
  • #12

expforex

Программиров
  • 05.03.2022
  • #13

Если у кого-то когда-то появится желание приобрести платную версию (Наличие некоторых особенных функций — улучшение алгоритма. ПРОСТО БЛАГОДАРНОСТЬ)
и так далее : _http://www.mqlsoft.net/shop/163/desc/exp-templates-9-otkrytyj-kod

MQL4 — пишем советник Против Толпы

expforex

Программиров
  • 05.03.2022
  • #14

Функциональные особенности экспертов от expforex.com

99% экспертов, индикаторов и программ, имеет ряд отличительных функциональных особенностей, по сравнению с разработками других программистов
Для того, чтобы Вы имели представление о данных особенностях на следующих примерах мы попытаемся рассказать Вам о наших отличительных функциональных возможностях.

В каждом эксперте, разработанном на заказ, Вы можете увидеть ряд функций

По порядку я приведу полное описание данных функций, а также на примере покажу Вам их работу.
1. Параметр получения сигнального бар

shift (0,1,2. ) Номер бара
Данный параметр представляет собой номер бара, с которого Ваши индикаторы будут брать сигнал. При заказе эксперта Вы должны указать такие параметры определения сигнала: Открывать сделку сразу же после сигнала, или же ждать , пока сигнал сформируется на закрытом баре и открывать сделку только открытии следующего бара
Некоторые индикаторы, в силу своих алгоритмов, имеют четкое определение: на каком баре подается сигнал. Если говорить о четкости и правильном исполнении приказа: то сделку необходимо обрабатывать только на закрытом баре т.е. параметр shift=1, Если же необходимо открывать сделку сразу же по наступлению сигнала на текущем баре и индикатор это позволяет необходимо ставить shift=0.
2. Переворот сигналов стратегии

ReverseSignal (true — false) Включен\Выключен
Данный параметр представляет собой переворот сигналов Вашего индикатора\индикаторов
Если Ваш эксперт построен на определенном алгоритме, или на определенных сигналах индикатора, у Вас есть возможность, без перепрограммирования поменять местами сигналы BUY\SELL
Например: ReverseSignal=true
Ваш индикатор подал сигнал на BUY, но эксперт откроет сделку SELL.
Ваш индикатор подал сигнал на SELL, но эксперт откроет сделку BUY.
3. Использование отложенных ордеров при открытии вместо позиции

StopOrderUSE (true — false) и StopOrderDeltaifUSE(От минимально допустимого стопа на сервере ) в пунктах
Данный параметр в связке представляет собой возможность открывать не позиции а отложенные ордера. Если допустим после наступления сигнала Вы хотите его проверить путем установки отложенного ордера
Например: StopOrderUSE =true StopOrderDeltaifUSE=100
Если Ваш индикатор подал сигнал на открытие BUY то советник откроет отложенный ордер BUYSTOP по цене Ask+StopOrderDeltaifUSE пунктов
Если Ваш индикатор подал сигнал на открытие SELL то советник откроет отложенный ордер SELLSTOP по цене Bid-StopOrderDeltaifUSE пунктов
Если параметр будет меньше минимально допустимого на сервере — эксперт выдаст ошибку 130
4. Магический номер

Magic (0. 99999) Номер
Данный параметр представляет собой особый номер эксперта, который стоит на графике, Если Вы используете множество экспертов на разных графиках, для исключения проблем с запутыванием между собой сделок экспертами, Вам необходимо каждому эксперту присвоить свой отдельный номер.
Если же, например, Вы используете 1 эксперта но с разными настройками, Вам необходимо каждому отдельному эксперту с настройками присвоить свой магический номер. Также данный параметр необходимо менять на разных валютных парах, дабы вскоре разобраться с детализированным отчетом, какой эксперт к какой паре был привязан.
5. Стоплосс сделки

StopLoss (0. )в пунктах
Данный параметр представляет собой Стоплосс каждой позиции, Это количество пунктов минуса, при котором сделка будет закрыта сервером
0 — параметр отключен, и Стоплосс сделки будет равен 0.
Данный параметр необходимо выставлять не меньше — минимально допустимого стопа на Вашем сервере.
Если параметр будет меньше минимально допустимого на сервере — эксперт выдаст ошибку 130
6. Тейкпрофит сделки

TakeProfit (0. )в пунктах
Данный параметр представляет собой Тейкпрофит каждой позиции, Это количество пунктов плюса, при котором сделка будет закрыта сервером
0 — параметр отключен, и Тейкпрофит сделки будет равен 0.
Данный параметр необходимо выставлять не меньше — минимально допустимого стопа на Вашем сервере.
Если параметр будет меньше минимально допустимого на сервере — эксперт выдаст ошибку 130
7. Проскальзывание сделки

Slippage(0. )в пунктах
Данный параметр регулирует проскальзывание цены при открытии сделки
На реальном рынке цена движется очень быстро, поэтому при подаче приказа на сервер, сервер может выдать ответ: Цены изменились, реквот и так далее. Для того чтобы не посылать серверу множество приказов, можно задать параметр допустимого проскальзывания при открытии сделки
Например: Slippage=10
При подаче приказа на открытии цена была 1.1234, Но цена изменилась на 1.1238, в этом случае сделка откроется по цене 1.1238 не возвращая при этом реквот!. Но если Slippage=0, в данном примере сделка не откроется, сервер выдаст ошибку Реквот (Новые цены).
8. MARKET исполнение позиций на счете

MarketWatch (true — false)
Данный параметр может быть включен для счетов, состоящих в группе ECN\NDD и\или счетах, на которых используется Market исполнение.
Принцип действия: На счетах состоящих в группе ECN\NDD и\или счетах, на которых используется Market исполнение, запрещено открывать позиции с установленными Стоплосс\Тейкпрофит, но разрешено открывать позицию с Стоплосс\ Тейкпрофит =0, и при этом после успешного открытия модифицировать позицию на Стоплосс и \ или Тейкпрофит
Данная функция, при включенном состоянии, сначала открывает позицию, затем устанавливает на нее Стоплосс\Тейкпрофит
9. Закрытие сделок по обратному сигналу

ClosePosifChange (true — false)
Данный параметр регулирует возможность закрывать противоположную сделку при открытии новой. Если Ваш индикатор использует сигналы : BUY — SELL — BUY — SELL , то при включении данного параметра, эксперт перед открытием новой сделки будет закрывать противоположную
10. Количество позиций сигналов стратегии

ONlyOnePosbySignal (true — false)Включен\Выключен
Данный параметр регулирует возможность открытия одной позиции или множества позиций.
При чем в включенном положении, при каждом сигнале на 1 бар будет открыта 1 позиция.
Например: Сигналы Вашей стратегии дают поочередно сигнал на BUY на каждом новом баре, при этом если функция ONlyOnePosbySignal = true то на каждом баре при поступлении сигнала будет открыта сделка BUY
Если данная функция ONlyOnePosbySignal = false , то эксперт может открыть только одну сделку BUY и одну сделку SELL и ждать, пока они не закроются
11. Фиксированный лот

Lots (0.01 . ) Установка фиксированного лота на все сделки
Данный параметр устанавливает количество лотов при открытии сделки. Лот фиксированный и распространяется на все сделки
При этом, Вы должны уточнить у брокера минимально допустимый лот, для открытия сделки
12. Динамический лот Подробная статья

DynamicLot(true — false) LotBalancePcnt(в процентах от свободной маржи)
Данные параметры регулируют автоматический расчет и установку лота от свободной маржи
Подробно о данном параметре рассказано в статье Автолот(Расчет лота от текущего баланса)
13. Максимальный лот

MaxLot (0.01 . ) Установка максимального лота на сделку
Данный параметр регулирует максимальный лот, который может быть установлен на 1 позицию. Применяется с параметрами Martin и\или DynamicLot
Если значение лота при расчете будет больше чем MaxLot итоговый лот будет равен MaxLot
Например: Если Вы не хотите, чтобы эксперт открывал сделки лотом более 0.09 лотов, Вы можете установить параметр MaxLot = 0.09.
14. Мартингейл

Martin (1. ) в коэффициенте
Данный параметр позволяет Вам использовать принцип Мартингейла для своей стратегии, в котором следующая сделка за убыточной будет открывать из расчета Лот * Martin
При этом если параметр равен 1, то Мартингейл не используется.
Например: Lots = 0.01 Martin =2:
1 сделка BUY(0.01) закрылась в минусе \ или по стоплоссу(в минусе)
2 сделка будет открыта с лотом 0.01 * 2 = 0.02
3 если предыдущая сделка была закрыта по стоплоссу, то следующая сделка будет открыта лотом 0.04
Если предыдущая сделка была закрыта в + либо же по тейкпрофиту, то следующая за ней будет открыта с начальным лотом 0.0
15. Время работы эксперта

OpenHour(в часах) OpenMinute(в (в минутах)) CloseHour(в часах) CloseMinute (в минутах)
Данные параметры регулируют диапазон времени работы советника, при чем данное время распространяется только на открытие новых позиций, Траллингстоп, Безубыток будут работать вне зависимости от диапазона
Например: Вы хотите чтобы эксперт торговал только с 14:00 до 18:35, тогда Параметры будут выглядеть так: OpenHour= 14 OpenMinute=0 CloseHour=18 CloseMinute =35
Сделки будут открывать только в диапазоне с 14:00 до 18:35, все остальное время, советник будет пропускать сигналы Вашей стратегии.
16. Классический TralingStop

TrailingStopUSE(true — false) IfProfTrail(true — false) TrailingStop(в пунктах) TrailingStep(в пунктах)
Данные параметры включают\отключают автоматическое слежение за позицией путем модификации стоплосса в + зону.
TrailingStopUSE — Включает\отключает функцию Траллингстоп
IfProfTrail — при true Советник начинает модификацию только с момента выхода позиции в безубыток. при false — тралингстоп начинает работать сразу после выставления позиции и тянет его вслед за ценой
TrailingStop — расстояние в пунктах от текущей цены до предполагаемого стоплосса. Данный параметр не может быть меньше минимально допустимого на Вашем сервере.
TrailingStep- шаг модификации стоплосса
Например: Стоплосс будет модифицироваться каждые TrailingStep пунктов на расстоянии TrailingStop пунктов от текущей цены
17 TralingStop по PARABOLIC SAR

TrailingStopSAR (true — false) step и maximum(параметры Параболик SAR)
Данные параметры включают возможность модификации стоплосса по установленному Параболику
При этом стоплосс будет модифицироваться при каждом новом значении Параболик SAR.
Соответственно, BUY модифицируется, когда Параболик находится ниже цены, Sell модифицируется когда ПАРАБОЛИК находится выше цены.
18. Функция закрытия по общей прибыли \ убытку

Данные параметры регулируют возможность закрыть сделку\сделки по данному инструменту и магику, достигнув один из параметров
Параметры
TypeofClose=1; -Тип закрытия по прибыли 1 — Доллар, 2 -Пункты ,3 -%Эквити ,4 -%Балан
CloseProfit=false; -Закрывать если +
prifitessss=10; -Количество юнитов(в зависимости от выбора TypeofClose) для закрытия профита
CloseLoss=false; -закрывать если —
lossss=-10; -Количество юнитов(в зависимости от выбора TypeofClose) для закрытия убытка
OFFAllEaAfterClosePROF=false; -Выключать все советники и скрипты после закрытия прибыли.
OFFAllEaAfterCloseLOSS=false; -Выключать все советники и скрипты после закрытия убытка.
Например:
Если Вы хотите закрыть несколько сделок BUY \ SELL при прибыли по счету в 10 $:
TypeofClose=1; CloseProfit=true; prifitessss=10;
Если Вы хотите закрыть несколько сделок BUY \ SELL при убытке по счету в 200 пунктов:
TypeofClose=2; CloseLoss=true; lossss=200;
Если Вы хотите закрыть несколько сделок BUY \ SELL при убытке по счету в 5 % от депозита, а также закрыть несколько сделок BUY \ SELL при прибыли по счету в 10 % от депозита:
TypeofClose=4; CloseLoss=true; lossss=5;CloseProfit=true; prifitessss=10;
При этом Вы можете отключить советники после закрытия включая функцию OFFAllEaAfterClosePROF и\или OFFAllEaAfterCloseLOSS. Тогда советник после общего закрытия отключит все советники
19. Установка стоплосса в безубыток

MovingInWLUSE (true — false) LevelWLoss(в пунктах) LevelProfit (в пунктах)
Данные параметры регулируют возможность включить модифицирование сделки в безубыток, при первой возможности
Например
Вы хотите установить стоплосс в безубыток, когда сделка наберет +10 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=0 ; LevelProfit =10;
Вы хотите установить стоплосс в +5 пунктов, когда сделка наберет +20 пунктов прибыли:
MovingInWLUSE = true; LevelWLoss=5 ; LevelProfit =20;
При этом Разница между LevelProfit — LevelWLoss должны быть всегда больше или равна минимальному стопу на сервере

[Пытаюсь написать советник по индикатору QQEA] Нужна помощь

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

Итак, для примера кода использую код советника Hedge Hog

для совместного использования индикатора и советника исп. ф-цию iCustom()

код советника и индикатора во вложении

скрин ошибок, которые мне выдаёт Едитор

  • Машинное обучение в трейдинге: теория, практика, торговля и не только
  • Тренд и уровни
  • Лига Торговых Систем. Продолжаем работу.

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

Итак, для примера кода использую код советника Hedge Hog

для совместного использования индикатора и советника исп. ф-цию iCustom()

код советника и индикатора во вложении

скрин ошибок, которые мне выдаёт Едитор

2 Vladon

да, в нём нет ошибок, потому что это код советника Hedge Hog, который я использую в качестве примера

//+——————————————————————+
//| Qualitative Quantitative Estimation Indicator for MetaTrader 4 |
//| Copyright © 2006Roman Ignatov |
//| mailto:roman.ignatov@gmail.com |
//+——————————————————————+
#property copyright "Copyright © 200 Roman Ignatov"
#property link "mailto:roman.ignatov@gmail.com"

#property indicator_buffers 2

#property indicator_color1 Red
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2

#property indicator_color2 Yellow
#property indicator_style2 STYLE_DOT

extern int SF = 5; // original 5
extern int RSI_Period = 14; // original 14
extern double DARFACTOR = 4.236; //original 4.236

int Wilders_Period;
int StartBar;

double TrLevelSlow[];
double AtrRsi[];
double MaAtrRsi[];
double Rsi[];
double RsiMa[];

int init()
<
Wilders_Period = RSI_Period * 2 — 1;
if (Wilders_Period < SF)
StartBar = SF;
else
StartBar = Wilders_Period;

IndicatorBuffers(6);
SetIndexBuffer(0, RsiMa);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexLabel(0, "Value 1");
SetIndexDrawBegin(0, StartBar);
SetIndexStyle(1, DRAW_LINE, STYLE_DOT);
SetIndexBuffer(1, TrLevelSlow);
SetIndexLabel(1, "Value 2");
SetIndexDrawBegin(1, StartBar);
SetIndexBuffer(2, AtrRsi);
SetIndexBuffer(3, MaAtrRsi);
SetIndexBuffer(4, Rsi);
IndicatorShortName(StringConcatenate("QQEA(", SF, ")"));
return(0);
>

int start()
<
int counted, i;
double rsi0, rsi1, dar, tr, dv;

if(Bars <= StartBar)
return (0);

counted = IndicatorCounted();
if(counted < 1)
for(i = Bars — StartBar; i < Bars; i++)
<
TrLevelSlow[i] = 0.0;
AtrRsi[i] = 0.0;
MaAtrRsi[i] = 0.0;
Rsi[i] = 0.0;
RsiMa[i] = 0.0;
>

counted = Bars — counted — 1;

for (i = counted; i >= 0; i—)
Rsi[i] = iRSI(NULL, 0, RSI_Period, PRICE_CLOSE, i);

MQL5 — пишем советник на мартингейле для MT5

for (i = counted; i >= 0; i—)
<
RsiMa[i] = iMAOnArray(Rsi, 0, SF, 0, MODE_EMA, i);
AtrRsi[i] = MathAbs(RsiMa[i + 1] — RsiMa[i]);
>

for (i = counted; i >= 0; i—)
MaAtrRsi[i] = iMAOnArray(AtrRsi, 0, Wilders_Period, 0, MODE_EMA, i);

i = counted + 1;
tr = TrLevelSlow[i];
rsi1 = iMAOnArray(Rsi, 0, SF, 0, MODE_EMA, i);
while (i > 0)
<
i—;
rsi0 = iMAOnArray(Rsi, 0, SF, 0, MODE_EMA, i);
dar = iMAOnArray(MaAtrRsi, 0, Wilders_Period, 0, MODE_EMA, i) * DARFACTOR;

dv = tr;
if (rsi0 < tr)
<
tr = rsi0 + dar;
if (rsi1 < dv)
if (tr > dv)
tr = dv;
>
else if (rsi0 > tr)
<
tr = rsi0 — dar;
if (rsi1 > dv)
if (tr < dv)
tr = dv;
>
TrLevelSlow[i] = tr;
rsi1 = rsi0;
>

Написать советник по стрелочному индикатору

Здравствуйте. Нужно написать советник по индикатору Bams Bumg.

Красная стрелка входим Sell. Зеленая стрелка входим в Buy.

Закрытие по обратному сигналу.

Нужен лот фиксированный и в процентах.

Мартингейл с коэффициентом умножения лота и шагом. То есть спустя сколько-то пунктов открывается еще ордер, если цена двигается не туда.

Торговая система по индикатору WATR

Здравствуйте, уважаемые читатели. В этом номере мы рассмотрим торговую систему, предложенную для бесплатной автоматизации пользователем форума FXGeneral – droba, которая интересна тем, что использует только один технический индикатор – WATR, который представляет собой некое подобие канала.

Правила торговой системы

Давайте вкратце рассмотрим правила представленной торговой системы. Для примера используем открытие сделки на покупку. Продажи открываются с точностью до наоборот.

1. Если бар закрылся выше верхней линии индикатора WATR, то на открытии следующего бара совершаем по рынку три ордера на покупку.
2. СтопЛосс для всех ордеров выставляется на уровень противоположной линии.
3. ТейкПрофит для первого ордера выставляем на уровень «нижняя линия WATR + 1.618 * (расстояние между линиями индикатора по модулю) или минимально разрешенный ДЦ, для второго ордера – WATR + 2.618 * (расстояние между линиями индикатора по модулю), для третьего, соответственно, ТейкПрофит не ставим.
4. На открытии каждого бара модифицируем СтопЛосс по нижней линии WATR, используя Трейлинг-Стоп.
5. Если закрывается первая покупка по ТейкПрофиту, то СтопЛосс для всех позиций на покупку ставим на максимальное значение из нижней линии индикатора и уровня открытия покупок.
6. Если закрывается вторая покупка по ТейкПрофиту, то СтопЛосс модифицируем на уровень максимальный из ТейкПрофита самой первой покупки из этой серии и нижней линии WATR.

Пример работы по торговой системе на покупку (см. рис. 1), входы показаны стрелкой зеленого цвета.

Рис. 1. Сигналы торговой системы на покупку.

Пример работы по торговой системе на продажу (см. рис. 2), входы показаны стрелкой красного цвета:

Рис. 2. Сигналы торговой системы на продажу.

Тестирование

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

Для начала проверим МТС на паре EURUSD, таймфрейм H1 (см. рис. 3). Риск на серию из трех ордеров установлен в 2% от депозита, тест проводим за последние 2,5 года.

Рис. 3. Тестирование эксперта на паре EURUSD.

График баланса вполне удовлетворителен. Несмотря на значительные просадки, советник завершил тестирование с 152% прибыли, что совсем неплохо для настроек по умолчанию. Посмотрим, что на других парах.

MQL4 — пишем Советник для торговли Паттернов

Следующей возьмем GBPUSD (см. рис. 4), настройки используем те же самые.

Рис. 4. Тестирование эксперта на паре GBPUSD.

Что мы видим? Прибыль в 300% за первые полтора года, и плавное уменьшение баланса за последующий год, в результате конечный баланс оказался приблизительно равен начальному.

Проведем тест на паре AUDUSD (см. рис. 5), может быть carry trade пары подойдут для подобной стратегии больше.

Рис. 5. Тестирование эксперта на паре AUDUSD.

Ну, скажем так, и ни туда и ни сюда. Тест завершился с прибылью в размере +109%, однако график баланса имеет очень сильные впадины и максимальная просадка составила 51%. Попробуем пару с новозеландским долларом, может быть другой сырьевик будет более успешен (см. рис. 6).

Рис. 6. Тестирование эксперта на паре NZDUSD.

График баланса выглядит примерно также как и в тестировании с AUDUSD. Однако прибыль за 2,5 года составила всего +78%, а максимальная просадка упала совсем немного — 46%.

Оптимизация торгового советника

Единственный параметр, который используется в советнике, – риск на серию сделок. Соответственно с его помощью попытаемся немного сгладить кривую баланса на тестируемой паре. Так как наиболее привлекательным оказался результат на паре EURUSD, то на ней же и будем проводить оптимизацию за последние два года.

Самым оптимальным по соотношению прибыль/просадка оказался риск в размере 0.5%. На приведенном на рисунке 7 графике показан форвард тест за последние 9 месяцев. На наш взгляд, эксперт вполне заслуживает внимания.

Рис. 7. Оптимизированные результаты советника.

Вывод

Система зарекомендовала себя с хорошей стороны. Это яркий пример пробойной трендовой системы, где несколько сделок приносят наибольшую прибыль. Несмотря на то, что торговая система уже автоматизирована, есть некоторые моменты, которые, возможно, позволят еще увеличить прибыльность и уменьшить просадки. В частности соотношение риск/прибыль для открываемых позиций, использование добавлений по тренду, оптимизация коэффициентов для расчета уровней ТейкПрофитов и количества лотов для каждой сделки в серии.

Честные Форекс-брокеры:

About : Money