| / | Форум |
33780 |
Rosh
13.08.2007 09:46
Опубликованиа статья Универсальный шаблон экспертов
Большинство сталкивалось с проблемой написания своих экспертов,
но с чего начать? Как задать в коде советника тейк-профит, стоп-лосс
или трейлинг-стоп? Как проверить стратегию на работоспособность?
В этой статье рассматриваются основные функции для создания
экспертов. Может кому-нибудь поможет код трейлинг-стопа? Автор: Вадим Андреевич |
|
Интервью с Максимом Кондратюком (maxfade) Советник пытается поймать «тренд» в 100 пунктов. Поэтому «не видит» глобального тренда. И еще – он очень не любит, когда пара медленно растет без сильных откатов. |
|
cloud666
13.08.2007 11:39
Ну!? Помог кому-нибудь???
|
|
PSmith
13.08.2007 11:46
Да там просто ошибка на ошибке. И проверок никаких. Особенно убило вот это int CloseOnlyOrder() { SelectOnlyOrder(); if(OrderType()==0) // Закрываем BUY { OrderClose(OrderTicket(), OrderLots(), Bid, 0, 0); } else if(OrderType()==0) // Это просто никогда не срабатывает. Еще один BUY??? { OrderClose(OrderTicket(), OrderLots(), Ask, 0, 0); } return(0); } |
|
xeon
13.08.2007 12:00
PSmith писал (а):
Да там просто ошибка на ошибке. И проверок никаких. Особенно убило вот это int CloseOnlyOrder() { SelectOnlyOrder(); if(OrderType()==0) // Закрываем BUY { OrderClose(OrderTicket(), OrderLots(), Bid, 0, 0); } else if(OrderType()==0) // Это просто никогда не срабатывает. Еще один BUY??? { OrderClose(OrderTicket(), OrderLots(), Ask, 0, 0); } return(0); } Похоже MQ значительно ослабили рецензию статей, если так пойдет и дальше, то "база знаний" превратится в мусорную свалку. Когда рецензией занимался Marat, некоторые жаловались на излишнюю
по их мнению придирчивость, но статьи по моему были гораздо
качественнее и читабельнее. |
|
cloud666
13.08.2007 12:15
PSmith писал (а): Еще какие? Щас подправлю и на проверку! Давайте хоть своими силами
исправлять ситуацию!Да там просто ошибка на ошибке. И проверок никаких. Особенно убило вот это int CloseOnlyOrder() { SelectOnlyOrder(); if(OrderType()==0) // Закрываем BUY { OrderClose(OrderTicket(), OrderLots(), Bid, 0, 0); } else if(OrderType()==0) // Это просто никогда не срабатывает. Еще один BUY??? { OrderClose(OrderTicket(), OrderLots(), Ask, 0, 0); } return(0); } |
|
PSmith
13.08.2007 12:47
cloud666 писал (а): Еще какие? Щас подправлю и на проверку! Давайте хоть своими силами
исправлять ситуацию!
1. SelectOnlyOrder всегда выбирает первый ордер по истории, не проверяя при этом ни символ, ни магикнумбер. Т.е. такой эксперт будет мешать сам себе и ручной торговле, будучи установлен на разные символы и/или таймфреймы. 2. В приведенном отрывке проскальзывание=0. В тестере это работает, а в реальной торговле бывают реквоты. 3. Нет проверки результата (того же OrderClose, OrderSend тоже без проверки ставился). И т.д. А вообще тема очень интересная. В принципе все эксперты отличаются только блоком проверки условий для начала торговли или так называемой "ТС", а все остальное у них вполне м.б. задано по шаблону. |
|
cloud666
13.08.2007 13:00
PSmith писал (а): cloud666 писал (а): Еще какие? Щас подправлю и на проверку! Давайте хоть своими силами
исправлять ситуацию!
1. SelectOnlyOrder всегда выбирает первый ордер по истории, не проверяя при этом ни символ, ни магикнумбер. Т.е. такой эксперт будет мешать сам себе и ручной торговле, будучи установлен на разные символы и/или таймфреймы. 2. В приведенном отрывке проскальзывание=0. В тестере это работает, а в реальной торговле бывают реквоты. 3. Нет проверки результата (того же OrderClose, OrderSend тоже без проверки ставился). И т.д. А вообще тема очень интересная. В принципе все эксперты отличаются только блоком проверки условий для начала торговли или так называемой "ТС", а все остальное у них вполне м.б. задано по шаблону.
Статья не доступна из-за исправленной ошибки! 1. Он просто как пример реализации большинства полезных функций. 2. Я использую проскальзывание 0, мой сигнал формируется по дневкам, установит ордер по-любому в течение минуты!!! 3. То же самое, что и пункте 3 |
|
PSmith
13.08.2007 13:38
Да же при сигнале на дневках можно наткунться на необходимость закрыться в 15-30 по Москве и наткнуться на проскальзывание в 2-3 спреда! Вот такая реакция на новость (не всегда, но регулярно):
Закрыть с рынка с проскальзыванием меньше 3 не получится. Тоже самое при открытии. ------------------------- Я себе представляю шаблон эксперта примерно таким: 1. Определение возможности торговли (время, наличность и.т.п) 2. Блок инициализации внутренних пременных (можно и в init, в зависимости от ТС), расчет лота, учет ММ и т.п. 3. Поиск установленных ордеров. 4. Если ордера найдены - проверка необходимости закрытия или перемещения трейлинг-стопа. Сброс сигнала на открытие. 5. Если ордеров нет - расчет сигнала на открытие (блок ТС). 6. Есть сигнал на открытие - открытие торгов. По большому счету всё. |
|
alexjou
13.08.2007 15:11
Какое-то время тому назад я пытался такое сделать, причем попробовал
учесть все случаи, до которых мог дотянуться. В результате получился
монстр весом около 70 к (в исходнике), работать с которым было
сущим наказанием и казнью египетской. Проще уж было каждый раз
ваять эксперта заново. Хотя, может быть, я слишком буквально
понял задачу. Тем не менее, на мой взгляд, правильнее идти по
пути создания библиотечных модулей -- блоков вроде конструктора,
из которых "собирался" бы окончательный вариант эксперта.
|
|
FION
13.08.2007 15:19
А я себе сделал шаблон в виде набора готовых функций, написание
эксперта сводится к заданию условий и указания функций.
Все функции с возможность ввода внешних переменных ,проверки
и принты зашиты внутри. Ордера и их параметры определяются "на
лету" по магическим номерам. Может немного ресурсозатратно,
зато вызывать удобно.
|
|
alexjou
13.08.2007 15:27
2Fion: Вот к этому варианту я в конце концов и пришел. Сейчас ваяю.
|
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий