Скачать MetaTrader 5

Ошибка трейлинг-стопа

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Написал программу? Опубликуй ее в Code Base!
Forex Trader
114257
Forex Trader 2007.02.02 20:42 
Заметил в кодах трейлинг-стопов существенную ошибку. Самое странное, что эта ошибка кочует от пользователя к пользователю, из кода в код, и её почему-то не исправляют.
begin
if (Bid-OrderOpenPrice>TrailingStop*Point) then ....
Ну ка протестируем этот кусок кода.
Бид минус цена открытия ордера... больше размера трейлингстопа
что при такой постановке вопроса произойдёт (отвлечёмся пока от термина размер пункта)? Пусть TrailingStop=15, трейлингуемый рыночный ордер типа Buy. Цена его открытия находится на уровне ноль (то есть, примем цену его открытия за нулевой уровень).

Итак, шаг №1 - цена скакнула на 20 пунктов вверх от цены открытия
Ясно что бид минус цена открытия будет = 20 и это больше чем размер трейлинга в пунктах. Куда будет подтянут стоп-лосс?
Bid-TrailingStop*Point
То есть, текущая цена минус размер трала.
Итого, стоп-лосс установится на уровень = +20-15=+5 , то есть, на 5 пунктов выше цены открытия ордера.
Пока вроде всё верно, если бы не злое движение цены в обратном направлении...

Шаг 2 - от отметки в +20 пунктов цена на следующем тике упала на три пункта вниз, то есть, Бид=+17. Что произойдёт в этом случае?
Bid - OrderOpenPrice>TrailingStop...
+17 - 0 > 15
Это условие выполняется - оно истинно, поэтому ордер будет модифицирован и будет установлен стоп-лосс на другом уровне. Вычисляем:
новый уровень стоп-лосса = Bid-TrailingStop...
= + 17 - 15 = +2
Итого стоп-лосс был установлен на уровне +5, а переместился на уровень +2 и это для Buy-ордера!!!
Стоп-лосс встал ниже чем был, а должен был остаться там, куда последний раз был установлен.

Как решить это недоразумение? Я для себя решил его так:

если (Bid-(TrailingStop*Point)>OrderStopLoss) то NewStopLoss=Bid-TrailingStop*Point;
При такой постановке вопроса прога поймёт, что если цена упала, то новый стоп-лосс встанет ниже имеющегося и прога не сделает такую ошибку, то есть, не модифицирует ордер, а вот если уровень нового стоп-лосса больше имеющегося, то стоп-лосс будет подтянут.
Forex Trader
114257
Forex Trader 2007.02.02 21:51  
Не вдаваясь в глубину вопроса, замечу, что выражение:
if (OrderStopLoss=0) and (Bid-OrderOpenPrice>TrailingStop*Point)
сработает только один раз, когда стопа еще нет и цена уйдет на величину трейлинга, и помрет :(
Forex Trader
114257
Forex Trader 2007.02.02 22:01  
точно так :)
я на это не обратил внимания, так как в моём советнике такого странного условия нет :)
Forex Trader
114257
Forex Trader 2007.02.05 16:02  
Я-молодой трэйдер, хотя по жизни-старый перец.(не стреляйте в пианиста, он играет как умеет)
Я читал хэлп не догнал.
Меня интересует вот что :
Я нажал кнопку BUY, потом выставил стоп лосс на 25 пипсов,
потом хочу поставить трэйлинг стоп в 10 пипсов от бида.(кстати как это ? Там написано минимум 15...)
Что будет дальше ? Цена идет вверх, что с трэлингом ? Что со стоп лоссом ?
Чёт не хоцца экспериментировать на реале... Может кто-то популярно объяснить простыми словами. Советы принимаются с благодарностью.
Торгую руками(и мал-мал головой, но с ней что-то не то...) :-)))
Forex Trader
114257
Forex Trader 2007.02.05 23:09  
Я-молодой трэйдер, хотя по жизни-старый перец.(не стреляйте в пианиста, он играет как умеет)
Я читал хэлп не догнал.
Меня интересует вот что :
Я нажал кнопку BUY, потом выставил стоп лосс на 25 пипсов,
.....


Тут многие умы расшибали себе лбы, пытаясь предсказать поведение цены на форексе.
По поводу трейлинга: Тот трейлинг, что в терминале не позволяет устанавливать размер трала менее 15 пунктов. Пусть ты поставил 15. Терминал дождётся пока у тя на счету образуется 15 пунктов прибыли и только после этого начнёт двигать стоп-лосс вслед за ценой.
Это бывает весьма не удобно пользоваться такими настройками. Пиши мне на drknn[собака]mail.ru - я тебе дам трейлинг-стоп, более гибкий в настройках и более функциональный в возможностях, чем тот, что встроен в терминал (В нём ты как раз и сможешь поставить трал в 10 пунктов и даже в 11 :) ).

Далее. Говоришь, что не хочется экспериментировать на реале - и оно понятно. Но есть ещё такая штука как демосчёт - там экспериментировать можно смело - он для того и существует.
Forex Trader
114257
Forex Trader 2007.02.06 01:14  
Пиши мне на drknn[собака]mail.ru - я тебе дам трейлинг-стоп, более гибкий в настройках и более функциональный в возможностях, чем тот, что встроен в терминал (В нём ты как раз и сможешь поставить трал в 10 пунктов и даже в 11 :) ).

Sobstvennaya razrabotka da? (zvu4it o4eny tainstvenno prosto) ;) ;x

A Vam, Sergey13 ya bi posovetoval glianuty zdesy, esli nugen vneshtatniy Trailing Stop: https://www.mql5.com/en/code/mt4 . Tut ge mogno i poiskom vospolzovatsia. A po mne tak vot vesyma dostoyniy TS: http://www.kimiv.ru/dev_mq4.htm (skrollim vniz stranici).



S uvageniem,
Diam0nd.
Forex Trader
114257
Forex Trader 2007.02.06 04:38  
diam0nd - Ну естественно весь код ваял своими руками. Наверно сегодня сделаю универсальный терйлинг-стоп. Может даже код тут выложу.
Forex Trader
114257
Forex Trader 2007.02.06 04:49  
diam0nd - Ну естественно весь код ваял своими руками. Наверно сегодня сделаю универсальный терйлинг-стопю Млжет даже код тут выложу

Aha, OK. No esty 4to-nity osobennoe to v Vashem TS? Ili prosto standartniy TS no Vami napisanniy?
Forex Trader
114257
Forex Trader 2007.02.06 07:44  
Aha, OK. No esty 4to-nity osobennoe to v Vashem TS? Ili prosto standartniy TS no Vami napisanniy?


Короче, выложу универсальный - он будет удобен - он будет уметь тянуть отложенный ордер вслед за ценой или вслед за рыночным ордером. Половина его уже готова.
Такой подход удобен, когда не знаешь точку разворота сильной тенденции. В результате рыночный ордер сработает по стоп-лоссу в зоне положительного профита - его туда трейлинг подтянул, а автоматически подтянутый вслед за им отложенный разворотный ордер сработает через несколько пунктов после рыночного, или сработает в точке срабатывания стоп-лосса рыночного, или чуть раньше, в зависимости от того, как данный трал настроит сам пользователь. Когда рынок интенсивно колеблется, таскать отложку вслед за рыночным ордером весьма эффективно. Тем более, что вследствии интенсивности рынка в такие моменты, сервер может просто не успеть обработать прямой приказ на открытие противоположной позы и мы в результате будем сплошь получать сообщения, что цена изменилась. В таких случаях иной раз не помогает даже проскальзывание - не успевает за ценой. Ну а поскольку приказ открыть сделку по отложенному ордеру, как и приказ закрыться по стоп-лоссу или тейк-профиту, лежит на сервере, а не в терминале, то ДЦ обязан его исполнить по той цене, по которой он его принял. Тут ему деваться некуда и ни какие интенсивности не помеха. Вот в принципе, из таких соображений я и хочу создать советника, а не скрипт, чтоб можно было по ходу менять настройки, не открывая код программы.
Forex Trader
114257
Forex Trader 2007.02.06 08:17  
Опа, есть идея. Сработал рыночный ордер по тейк-профиту - не открывать ни какую позу, а продолжать тянуть оставшийся раззворотный отложенный ордер вслед за ценой. В результате должно произойти следующее - ордер доедет почти до верхушки тренда, тренд развернётся и тут сработает отложка. Тренд поехал назад и наша сработавшая отложка поехала в плюсовой профит. Как идея?
Думаю надо тестить.
Forex Trader
114257
Forex Trader 2007.02.06 08:43  
Как идея?

Просто гениально! ;o)
Потестите, потестите её... Это все тестируют.
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий