Обсуждение статьи "Как сделать любой тип Trailing Stop и подключить к советнику"

 

Опубликована статья Как сделать любой тип Trailing Stop и подключить к советнику:

В статье рассмотрим классы для удобного создания различных трейлингов. Научимся подключать трейлинг-стоп к любому советнику.

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

Рассмотрим вкратце алгоритм работы трейлинг-стоп. Условимся, что для каждого трала можно использовать три условия его работы:

  • старт трейлинга — количество пунктов прибыли позиции, при достижении которых запускается трейлинг-стоп;
  • шаг трала — количество пунктов, которые должна пройти цена в сторону прибыли позиции, для следующего смещения StopLoss позиции;
  • дистанция трала — расстояние от текущей цены, на котором удерживается StopLoss.

Эти три параметра могут быть применимы к любому тралу. Любой из этих параметров может как присутствовать в настройках трала, так и отсутствовать в случае, если он не нужен, либо заменяется каким-либо значением в алгоритме трейлинга. Примером замены параметра "дистанция трала" может служить значение индикатора, на которое устанавливается стоплосс позиции. При этом, если задействовать этот параметр, то стоп будет устанавливаться не на цену, указанную индикатором, а с отступом от указанной цены на значение дистанции в пунктах.


Автор: Artyom Trishkin

 
Очень познавательная статья - читаю. Буду материал из нее использовать в своих роботах
Из прошлой статьи - спс
Предназначены эти функции для быстрого создания скользящих средних, чтобы использовать их данные вместо данных Parabolic SAR при проведении собственных исследований для создания различных видов трейлинга - тоже взял к сведению.
 
Roman Shiredchenko #:
при проведении собственных исследований для создания различных видов трейлинга

По фракталам и Ишимоку - тоже неплохие варианты.

 
Очень нравится! Я буду использовать его во всех своих личных ботах.
 

Артём, Ваш трейлинг по PSAR работает совершенно неправильно. Не объяснить на словах, внимательно рассмотрите каждое закрытие. Закрывается не вовремя, и не закрывается вовремя. Может закрыться лонг при нисходящем PSAR, а должен только при восходящем. Может вообще пропустить несколько переключений PSAR, хотя во время них были условия закрытия.

В коде слишком большое упрощение - просто берётся значение PSAR и используется как SL. Наверное, для мувингов это должно работать.

Посмотрите, как я контролирую условие закрытия:

        if (tick.ask > PSAR_BufClose[0] && PSAR_BufClose[1] < PSAR_BufClose[0]) {
                buy = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[0] && PSAR_BufClose[1] > PSAR_BufClose[0]) {
                sell = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[0] && tick.ask > PSAR_BufClose[1] && PSAR_BufClose[1] < PSAR_BufClose[0]) {
                buy = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[1] && tick.ask > PSAR_BufClose[0] && PSAR_BufClose[1] > PSAR_BufClose[0]) {
                sell = PSAR_CloseWeight;
                return;
        }

Здесь PSAR используется не для установки скользящего SL, а для выдачи сигнала, но суть та же.

 
Привет всем, все очень интересно, но я не могу пройти все шаги, я застрял на части второго конструктора, который должен быть параметрическим. Я не могу продолжить. Я пытался загрузить приложенные файлы, но он находит так много ошибок, что я не могу их исправить. Может ли кто-нибудь помочь мне? Спасибо
 
Но, как обычно, всё, что использует Position...(), полностью непригодно для неттинга при работе более одного робота на символе или при ручной торговле параллельно с роботом.
 
JRandomTrader #:
символе

спс - тоже буду разбираться на ФИНАМе МТ 5 

 
JRandomTrader #:
Но, как обычно, всё, что использует Position...(), полностью непригодно для неттинга при работе более одного робота на символе или при ручной торговле параллельно с роботом.

Для этого надо вести виртуальные позиции в роботе. И стопы ставить отложенными ордерами.

 
Ivan Titov #:

Для этого надо вести виртуальные позиции в роботе. И стопы ставить отложенными ордерами.

Я-то в курсе, у меня и позиции, и стопы виртуальные.

Но вот большинство форексного кода, который тут выкладывается, для такой работы (в частности, на MOEX), непригодно.

 
Хорошо, что мы не из их числа.