Обсуждение статьи "Кроссплатформенный торговый советник: Пользовательские стопы, Безубыток и Трейлинг"
Привет, Энрико. Твоя великолепная работа продолжается. Не уставайте, продолжайте свою работу.
Здравствуйте,
Оказывается, нельзя установить конкретный объем (процент) для трейлинг-стопа?
Как использовать 2 или более TS?
Это мой код:
//--- трейлинг-стоп CTrails *trails=new CTrails(); //--- установление безубыточности CTrail *trail_be=new CTrail(); trail_be.Set(BELevel,BEOpenPriceDist,0); trails.Add(trail_be); //--- установка трейлинг-стопа CTrail *trail=new CTrail(); trail.Set(trail_value,trail_start,trail_step); trails.Add(trail); //--- main.Add(trails);
Безубыток не работает в этом случае. Если я удалю трейлинг-стоп (объект trail), безубыток будет работать нормально.
Как мне использовать 2 или более TS?
Это мой код:
Безубыток в этом случае не работает. Если я удаляю трейлинг-стоп (объект trail), безубыток работает нормально.
Да, это невозможно. CTrail и CTrails предназначены только для модификации уровня стопа. Для объема вам нужно установить его на CStop. Это будет зависеть от активации и расстояния, которое вы установили для обоих (безубытка и трейла). Но, скорее всего, трейлинг сработал раньше безубытка. Безубыток больше не будет применяться, если уровень стопа уже выше установленной вами цены безубытка.
//--- трейлинг-стоп CTrails *trails=new CTrails(); //--- установление безубыточности CTrail *trail_be=new CTrail(); //trail_be.Set(BELevel,BEOpenPriceDist,0); trail_be.Set(230,250,0); trails.Add(trail_be); //--- установка трейлинг-стопа CTrail *trail=new CTrail(); //trail.Set(trail_value,trail_start,trail_step); trail.Set(200,500,10); trails.Add(trail); //--- main.Add(trails);
//--- трейлинг-стоп CTrails *trails=new CTrails(); //--- установление безубыточности CTrail *trail_be=new CTrail(); //trail_be.Set(BELevel,BEOpenPriceDist,0); trail_be.Set(230,250,0); trails.Add(trail_be); //--- установка трейлинг-стопа CTrail *trail=new CTrail(); //trail.Set(trail_value,trail_start,trail_step); trail.Set(400,500,10); trails.Add(trail); //--- main.Add(trails);
Не работает.
Тоже не работает.
Попробуйте снизить цель активации по безубытку/трейлингу. Если вы установили безубыток или трейлинг, это не значит, что рынок обязан его достичь.
Попробуйте снизить цель активации по безубытку/трейлингу. Если вы установили безубыток или трейлинг, это не значит, что рынок обязан его достичь.
Я проверяю на том же периоде рыночной истории в бэктесте. Если я включаю и TS (обычный трейлинг-стоп), и BE, то работает только TS, а BE не работает (я не вижу стоп-линию). Если я отключаю TS, BE работает нормально. Я тестирую в бэктесте и проверяю стоп-линии.
Я проверяю на том же периоде истории рынка в бэктесте. Если я включаю и TS (обычный трейлинг-стоп), и BE, то работает только TS, а BE не работает (я не вижу стоп-линию). Если я отключаю TS, BE работает нормально. Я тестирую в бэктесте и проверяю стоп-линии.
Тоже не работает.
Ваш первый код активирует безубыток, а не трейлингстоп. Если и будет дальнейшая модификация SL, то это будет takeprofit. Но если ваш TP равен 500 пунктам, то трейлинг вообще не активируется при 500 пунктах, так как в этот момент сделка уже покинула рынок.
Ваш второй код использует трейлингстоп, но не безубыток. Потому что еще до того, как будет применен безубыток, SL уже переместился выше цены безубытка.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Кроссплатформенный торговый советник: Пользовательские стопы, Безубыток и Трейлинг:
В статье обсуждается установка пользовательских стоп-уровней в кроссплатформенном советнике. Также описан тесно связанный с ними метод, который помогает задать изменение стоп-уровней с течением времени.
На рисунке ниже показана блок-схема расчета точки безубытка способом, описанным выше. Вычисляются три значения — активация, дезактивация и новый стоп-уровень. Если уровень текущей цены выше или равен минимальной цене, требуемой для начального этапа (установки стоп-лосса к уровню безубытка), тогда стоп-уровень, рассчитанный ранее, будет использоваться как предварительный новый стоп-уровень. В противном случае результатом будет 0. Следующим шагом нужно проверить, находится ли новый стоп-уровень пределах текущего стоп-уровня брокера. Проверка всегда возвращает true при удовлетворении предыдущего условия. Таким образом, в качестве конечного итога будет возвращен рсссчитанный стоп-уровень.
Автор: Enrico Lambino