АвторСообщение



Сообщение: 27
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 15.12.14 18:05. Заголовок: Программное определение закрытия ордера по стопу


Интересно, можно ли программно определить, если ордер закрылся по стоп-лосс? А нужно это вот для чего. У меня советник уже пару раз открывал позицию в том же направлении (т.е. buy-buy или sell-sell) сразу после срабатывания стопа, и получался двойной убыток. Хотелось бы запретить открытие ордера в том же направлении в течение некоторого времени после срабатывания стопа. Но для этого надо определить факт такого срабатывания. Функция OrderStopLoss() как я понимаю просто определяет цену закрытия открытого ордера в случае достижения уровня стоп-лосс и пользы от этого мало. Или я ошибаюсь? Интуиция подсказывает, что надо сделать что-то типа следующего ниже блока (на примере ордера buy), но не уверен:

int i=OrdersHistoryTotal()-1;
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
if(OrderStopLoss()!=OrderClosePrice() && OrderType()=0) // если цена закрытия не равна стопу и был ордер buy
int ticket=OrderSend(Symbol(), 0, …… ); // то разрешаем открыть ордер buy
else ..... // запрет на открытие ордера buy


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 18 , стр: 1 2 All [только новые]







Сообщение: 1118
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 15.01.15 20:08. Заголовок: Stoletov пишет: К ..


skilful_coder пишет:

 цитата:
К вам еще вопросик, посмотрите на рисунку: http://shot.qip.ru/00Esu2-5SNS8HMSU/
Код для МТ5. Пожалуйста помогите?!



Не могу по двум причинам:
    1. Вопрос задан в теме не того назначения. Задайте его в новой теме ветки форума "Консультации по программированию".
    2. Вы не указали, в чем заключается проблема. Должны быть какие-то попытки с Вашей стороны по решению проблемы - какие-то фрагменты кода. Если Вы не владеете программированием, то "Консультации по программированию" явно не для Вас. Попытайтесь представить стратегию в ветке "Идеи для статей". Если стратегия окажется интересной, то будет написана статья по ней.


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 40
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 18.01.15 10:18. Заголовок: Как я понимаю теперь..


Scriptong пишет:

 цитата:
Если же имеется в виду, что необходимо определить причину закрытия ордера, то это решается таким кодом:


Как я понимаю теперь функцию GetOrderCloseReason нужно вызвать из основной программы и проанализировать причину закрытия, например так:
if(GetOrderCloseReason(ticket)==1) // закрытие произошло по стопу.
Возьму эту функцию себе на вооружение на будущее. Сейчас моя задача проще – определить, что ордер закрылся по стопу, что и делаю с вашей подачи с помощью неравенства типа OrderStopLoss()-OrderClosePrice()>=-Point/10. А до этого просто перебираю последние закрытые ордера из истории и проверяю, что они принадлежат текущей валютной паре. В принципе можно запретить повторное открытие ордера в том же направлении ( buy-buy или sell-sell) в течение заданного времени не только в случае закрытия по стопу, но и при любом закрытии. Тогда неравенство >=-Point/10 можно вообще убрать . Ведь по сути в любом случае нелогично снова открывать ордер в том же направлении через короткое время. На практике у меня бывало, когда после закрытия по стопу тут же открывался ордер в том же направлении, что почти всегда приводило к убыткам. Поэтому я и заострил внимание именно на закрытиях по стопу. Теперь встает еще задача определения оптимального временного интервала, в течение которого надо запретить повторное открытие в том же направлении. Может он равен и не 1 часу. Интуитивно ясно, что этот интервал не должен быть слишком большим, иначе могут быть упущены хорошие возможности – сделка не откроется. Может быть и так, что такого оптимального интервала просто не существует, поскольку при тестировании на разных парах или на разных периодах со сдвигом (например январь-апрель, февраль-май и т.д) могут получаться разные оптимальные значения этого интервала. О том, что бывает бессмысленно подбирать оптимальные параметры, написано в книгах , например в книге Швагера «Технический анализ». Он показывает, что только если задать параметр уж совсем несуразный , то результаты заметно ухудшаются. Так что можно не париться и задавать параметры из некоторого разумного интервала. Из своего опыта могу сказать, что у некоторых параметров существуют явно выраженные наилучшие значения, а у некоторых нет, но это уже тема отдельного разговора.


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 1127
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 18.01.15 22:35. Заголовок: Stoletov пишет: Мож..


Stoletov пишет:

 цитата:
Может быть и так, что такого оптимального интервала просто не существует


Думаю, это ближе к истине.
Обычно исхожу из следующих соображений. Те стратегии, которые мы тестируем в МТ4 (МТ5), привязаны к свечам. То есть на одной свече, чаще всего, не бывает более одного сигнала открытия (да, есть пробойные системы, которые могут давать и больше сигналов, но их в общем количестве не так уж и много). Таким образом, если на текущей свече уже была открыта сделка, то, независимо от причины ее закрытия, новая сделка не должна быть открыта.
Другими словами следует говорить не о привязке к ордеру, а о привязке к торговому сигналу: обработан он или нет? Само собой, наличие ордера после сигнала является подтверждением обработки этого самого сигнала. Часто в экспертах на этапе инициализации проводится чтение истории счета с целью определения времени обработки последнего сигнала стратегии после перезагрузки программы. Это дает связанную картину работы эксперта между его включениями/выключениями.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 18 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет