ПО-FORTS Автоматизация под MetaTrader 5 - Торговая система PIXY

coder-ex

Пользователь
Данная ветка посвящена автоматизации торговли под терминал MetaTrader 5 работающего на Российском фондовом рынке.

Аспекты:

  • Освоение данной платформы на рынке ФОРТС
  • Портирование библиотеки SCL на программный язык MQL5
  • Составление технического задания на написание автоматизированной торговой системы.
  • Написание предварительного шаблона торгового робота для отработки и фильтрации алгоритма работы.
  • Тестирование - оптимизация
  • Внесение поправок
  • Бета релиз торгового робота
  • Торговля - тестирование - оптимизация
  • Официальный релиз торговой системы.
В шапке темы находится актуальная версия советника и инструкция по установке и запуску
 

Вложения

Последнее редактирование:

coder-ex

Пользователь
Итак, приступим...
Ознакомился с частью стратегии Лукьянова А. и наступила пора выполнять его домашние задания :) А т.к. я по натуре не усидчивый и пялиться постоянно в монитор не для меня, то решил начать автоматизировать данную стратегию.
Долго думал на какой платформе начать автоматизацию и пока остановился на МТ5, т.к. возможности данной платформы соизмеримы с набором ПО, которым торгует основная масса народа. А т.к. работать с одной платформой проще, чем с набором ПО, то пришел к выводу указанному выше. Впоследствии, если возможности МТ5 будут не устраивать, возможно перенесу код на C# с библиотекой S#.

Начнем как обычно, с разработки структуры программы:

1. Класс индикаторов:
а) определение зарождения боковика на М5
б) определение уровней на М5
в) определение уровней на М1

2. Класс сигналов:
а) поиск сигналов при торговле качественных сделок (вынос стопов - добитие)
б) поиск сигнала выход из боковика
в) поиск сигнала боковик с выходом
г) поиск сигнала боковик с выходом
д) поиск сигнала по тренду внутри дня

3. Класс управления позициями:
а) открытие по сигналу
б) закрытие по достижении цели
в) закрытие в случае неправильного отскока
г) модификация открытой позиции
д) сопровождение открытой позиции
е) перевод открытой позиции в безубыток

Так же стоит определиться с ограничениями при анализе рынка:
1. Анализируем только текущий день
2. Определяем первое условие на старт анализа - открытие биржи + 1 час (т.к. первый час не торгуем и не анализируем)
3. Определяем второе условие на окончание анализа - время закрытия биржи.

PS. Пишите, что я упустил, что бы впоследствии правильно создать торгового советника.
 
Последнее редактирование модератором:

Tixon

Пользователь
Я с вами. Вопрос сразу будет какие брокеры поддерживают мт5. Я сейчас в промсвязь переходить собрался из Цюриха.
 

plazzma

Пользователь
БКС поддерживает, но в офисе мне сказали торговать можно только фьючерсами!
 

coder-ex

Пользователь
БКС поддерживает, но в офисе мне сказали торговать можно только фьючерсами!
а это и есть ФОРТС :)
Я с вами. Вопрос сразу будет какие брокеры поддерживают мт5. Я сейчас в промсвязь переходить собрался из Цюриха.
гляньте в рейтинге разных брокеров и посмотрите у них на официальных сайтах информацию по используемым торговым платформам на ФОРТС (фьючерсы, опционы и т.д.), там где есть для этих инструментов МТ5, там и будет его поддержка...
Касаемо Промсвязьбанка - у них вроде нет МТ5.
 

Константин

Администратор
Брокеры поддерживающие МТ5 - БКС, Открытие
 

Lexuz77

Пользователь
Что бы увеличить профитность системы предлагаю сразу реализовать функцию частичного закрытия позиции. Как вариант - функция безубытка с разными настройками для частей позиции. Пример - отрываемся 2мя лотами - для закрытия одного лота одни настройки БУ, для закрытия оставшегося лота - другие :) Да, по стратегии Лукьянова для анализа ранка в некоторых ситуациях анализируется открытый интерес - планируется ли реализация данного функционала? (вообще с ним много заморочек канешн, наверно не стоит оно того..)[DOUBLEPOST=1425197819,1425197411][/DOUBLEPOST]Еще один момент - что у нас с историей? Она у нас в МТ5 отдельная по каждому контракту или склееная?
 

coder-ex

Пользователь
Что бы увеличить профитность системы предлагаю сразу реализовать функцию частичного закрытия позиции. Как вариант - функция безубытка с разными настройками для частей позиции. Пример - отрываемся 2мя лотами - для закрытия одного лота одни настройки БУ, для закрытия оставшегося лота - другие :) Да, по стратегии Лукьянова для анализа ранка в некоторых ситуациях анализируется открытый интерес - планируется ли реализация данного функционала? (вообще с ним много заморочек канешн, наверно не стоит оно того..)
К типу БУ мы еще вернемся в процессе разработки, а пока рано этим голову туманить :) сейчас нужно сотворить самое главное - это реализовать систему Лукьянова.
По поводу ОИ - нет ни чего невозможного, я параллельно изучаю этот вопрос, в понедельник-вторник думаю получу от MetaQuotes ответ на свой вопрос, где брать исторические данные по объемам внутри ценового бара по тикам. Если в МТ5 это не предусмотрено, то значит будем искать вариант портирования, с этим нет ни каких проблем, учитывая созданный мной функционал библиотеки SCL. С помощью этой библиотеки можно организовать общение между разными программами тремя способами:
1. PIPE - этот способ используется непосредственно всеми операционными системами и достаточно быстрый.
2. Мапинг - создание в памяти областей для использования их в т.ч. другими программами. Работать можно как с обычными файлами, скорость обмена данными самая высокая т.к. это ОЗУ ПК.
3. Сокеты - этот способ внутри одного ПК так же дает высокую скорость обмена информацией между программами
Однако в данном случае мне нравится больше способ № 2.
Еще один момент - что у нас с историей? Она у нас в МТ5 отдельная по каждому контракту или склееная?
Если имеете в виду глубину истории дальше предыдущей экспирации, то конечно склеенная, она не может быть не склеенной если она есть :) Однако у брокера Открытие она нормальная идет с середины декабря 2014 года на М1 по фьючерсу РТС первый квартал. Если нужен другой период, то открываем инструмент по которому уже прошла экспирация и смотрим нужный период, пока другого варианта не нашел
 
Последнее редактирование:

Lexuz77

Пользователь
По поводу
где брать исторические данные по объемам внутри ценового бара по тикам
Тиковые данные есть на сайте финама в формате ТХТ /CSV - (но там нет данных по направлению сделок) http://www.finam.ru/analysis/profile0442B00007/ например. Скачать их можно только посуточно! Для мт5 скорее всего все эти данные придется либо конвертить из ТХТ, либо уже потом записывать самому в файл. Еще можно записывать котировки через стока шарп гидру (S# DATA).
ну а на будущее - есть такая вот тема еще http://robostroy.ru/community/article.aspx?id=319 - но что бы эти данные аналайзить это уже нужно ну очень сильно заморачиватся :)
 

coder-ex

Пользователь
По поводу
Тиковые данные есть на сайте финама в формате ТХТ /CSV - (но там нет данных по направлению сделок) http://www.finam.ru/analysis/profile0442B00007/ например. Скачать их можно только посуточно! Для мт5 скорее всего все эти данные придется либо конвертить из ТХТ, либо уже потом записывать самому в файл. Еще можно записывать котировки через стока шарп гидру (S# DATA).
Пока не спешите с вариантами экспорта, т.к. в МТ5 этого нет. Т.е. МТ5 берет то, что дает ему сервер, не знаю будет или нет такая возможность, вроде на mql форуме представитель MQ пообещал это сделать в следующей версии терминала. Но ручной экспорт котировок мне не нравится.
В любом случае, если хочется что то прооптить, то придется в алгоритме предусмотреть автоматический выбор инструмента (благо MQL5 Это позволяет). Т.е. к фьючерсу нужно относиться не как одному инструменту, а как к множеству инструментов в каком то периоде. К примеру фьючерс РТС, нас интересует период тестирования последний квартал 2014 года, в советнике нужно сделать определение этого периода и выбор соответствующего фьючерса.
 

Lexuz77

Пользователь
Пока не спешите с вариантами экспорта, т.к. в МТ5 этого нет. Т.е. МТ5 берет то, что дает ему сервер, не знаю будет или нет такая возможность, вроде на mql форуме представитель MQ пообещал это сделать в следующей версии терминала. Но ручной экспорт котировок мне не нравится.
В любом случае, если хочется что то прооптить, то придется в алгоритме предусмотреть автоматический выбор инструмента (благо MQL5 Это позволяет). Т.е. к фьючерсу нужно относиться не как одному инструменту, а как к множеству инструментов в каком то периоде. К примеру фьючерс РТС, нас интересует период тестирования последний квартал 2014 года, в советнике нужно сделать определение этого периода и выбор соответствующего фьючерса.
Кстати - как в МТ5 хранятся котировки? Отдельно по каждому контракту (RTS-3.15 (RIH5) сейчас например )?? или склееные? Насколько я понял, зависит от брокера (у Открывашки раньше был склееный ) - но как этим котировкам можно доверять? Котировками с Финама оч многие пользуются для тестирования - никто не жалуется вроде :) В идеале их нужно записывать самому...
 

coder-ex

Пользователь
Кстати - как в МТ5 хранятся котировки? Отдельно по каждому контракту (RTS-3.15 (RIH5) сейчас например )?? или склееные? Насколько я понял, зависит от брокера (у Открывашки раньше был склееный ) - но как этим котировкам можно доверять? Котировками с Финама оч многие пользуются для тестирования - никто не жалуется вроде :) В идеале их нужно записывать самому...
Насчет качества котировок.
Это качество удовлетворяет сообщество, которое не знает что такое качество. Я это к тому, что те кто работал на МТ4, этот вопрос знают лучше, т.к. сталкиваются с этим вопросом постоянно. Для других платформ этот вопрос не достаточно популярен в Интернете, его скорее всего муссируют в узких кругах, но для общественности он доходит в сильно урезанном варианте.
Недавно читал статью на mql форуме про качество склеенной истории для МТ5 на бирже - так вот качество было чуть выше 60% и все склейки показывались серой полосой. А т.к. в МТ5 невозможно подсунуть другую историю из-за особенностей системы, то проверить качество с Финама просто пока невозможно.
Ну а отдельно по контрактам качество котировок на МТ5 нормальное, сами проверьте запустив МТ5. Да и по другому быть не должно, ведь история по ФОРТС на российские фьючерсы, идет с ММВБ всем брокерам, а брокеры не заинтересованы портить историю.
 

Lexuz77

Пользователь
Насчет качества котировок.
Это качество удовлетворяет сообщество, которое не знает что такое качество. Я это к тому, что те кто работал на МТ4, этот вопрос знают лучше, т.к. сталкиваются с этим вопросом постоянно. Для других платформ этот вопрос не достаточно популярен в Интернете, его скорее всего муссируют в узких кругах, но для общественности он доходит в сильно урезанном варианте.
Недавно читал статью на mql форуме про качество склеенной истории для МТ5 на бирже - так вот качество было чуть выше 60% и все склейки показывались серой полосой. А т.к. в МТ5 невозможно подсунуть другую историю из-за особенностей системы, то проверить качество с Финама просто пока невозможно.
Ну а отдельно по контрактам качество котировок на МТ5 нормальное, сами проверьте запустив МТ5. Да и по другому быть не должно, ведь история по ФОРТС на российские фьючерсы, идет с ММВБ всем брокерам, а брокеры не заинтересованы портить историю.
Окей - вопрос закрыт - если вы доверяете этим котировкам - то и я буду тоже доверять :) А Метаквотсы, смотрю, в МТ5 вообще убрали возможность импорта/экспорта котировок, которая была в МТ4 по кнопке Ф2 - "редиски" :)
 

Tixon

Пользователь
Может начнем работу с сигнализатора объемов для мт5??
 

coder-ex

Пользователь
Окей - вопрос закрыт - если вы доверяете этим котировкам - то и я буду тоже доверять :) А Метаквотсы, смотрю, в МТ5 вообще убрали возможность импорта/экспорта котировок, которая была в МТ4 по кнопке Ф2 - "редиски" :)
:) этой функции в МТ5 ни когда не было, ее обещают только в следующем билде который обещали на этой недели, но его еще не видно :) читайте тут https://www.mql5.com/ru/forum/40960[DOUBLEPOST=1425203242][/DOUBLEPOST]
Может начнем работу с сигнализатора объемов для мт5??
работу начнем после переделки библиотеки SCL, сейчас этим и занят, потом пойдем делать все по плану выложенному вверху...
 

Tixon

Пользователь
Константин а техзадание в текстовом виде нужно и в виде картинок?
 

Константин

Администратор
Тихон, техзадание во втом посту темы + видео Лукъянова + мое видео, торговля в боковике, выход из боковика, пробой отбой, вообщем та система по которой мы и торгуем. Что получится в автоматизации, увидим в процессе, главное ведь в системе это ее оптимизация...
 

coder-ex

Пользователь
Потеряли меня? Еще чуть-чуть осталось - занимаюсь портированием функционала MQL4 в MQL5, и такое оказывается бывает :) Сегодня думаю закончить и приступить к написанию кода.
 

Константин

Администратор
Ждем ждем, терминалы установлены настроены, поставлены в режим ожидания приема граального алгоритма
 

coder-ex

Пользователь
Ждем ждем, терминалы установлены настроены, поставлены в режим ожидания приема граального алгоритма
Кстати общий алгоритм работы с советником будет следующий - кидаем советник на любой график (главное что бы был открыт хотя бы один график в терминале), а советник сам все сделает - настроит чарт под РТС и под нужный ТФ. В MQL5 ввели такую возможность :)
Еще вопрос по поводу двух чартов по данной системе. Используется для анализа два чарта М1 и М5. А нужен ли пользователю советника в терминале чарт, в котором сделки не будут совершаться? Можно уровни обозначить разными цветами для М1 и М5 и расположить все это в чарте М1, т.е. анализ будет проводиться как и положено на М5 (поиск зарождения нового боковика и установка уровней по М5), но отображаться это будет все на М1 и отличным цветом от анализа на М1. Напишите свое мнение кто как думает. Можно без проблем вывести и второй чарт М5, но я пока не вижу смысла в этом.
 
Сверху