Язык Python для трейдера.

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Язык Python для трейдера.

Сообщение Рэндом » 16 фев 2018, 06:06

Возможности MQL довольно большие и он хорошо приспособлен для создания индикаторов и торговых роботов. Но чтобы создать робота одного MQL мало. Нужно исследовать тот инструмент которым вы торгуете. Или даже сгенерировать автоматически торговую систему. Да, такое возможно с генетическим программированием. Исследовать рынок можно разными методами. Например математическая статистика, спектральный анализ и т.д. И для всего этого есть готовые библиотеки для языка Python. Вообще трейдер его может применять для многих целей. Говорят что Питон простой язык и его легко освоить. Мне трудно об этом судить. Потому что Питон не первый язык программирования который я изучил. Для меня это было не сложно. Но в тоже время на нем можно сделать все то что на любом другом языке в том числе и на MQL, но достичь желаемого на нем намного проще чем на MQL в виду обширого набора библиотек.
Есть ли смысл учить программирование? Для меня программирование имеет большой смысл. Я категорически не могу торговать в ручную. Поэтому торговый робот для меня единственное решение. Если у вас те же проблемы вам следует обратить внимание на программирование. По языку Питон, есть масса учебников. В следующем посте я приведу их список. Постараюсь подобрать лучшие учебники полезные для начинающих.

Эта тема исследование всего, что может помочь в алгоритмической торговле.
Версия языка которую я буду использовать 3.6
Весь код будет выложен на Гитхаб здесь https://github.com/RandomKori/PythonForTraders
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 16 фев 2018, 20:51

Первое что необходимо это изучить язык. По Питону написано много книг. Так что каждый может подобрать что-то для себя. Я рекомендую вам эту книгу https://www.litres.ru/mark-lutc/izuchae ... -24500334/ Она вполне подойдет начинающему и при этом достаточно полно описывает язык.
Далее рассмотрим как установить язык Питон и среду программирования для него.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 17 фев 2018, 04:40

Один не маловажный момент. Вопросы по изложенному материалу и программированию на Питон приветствуются.
И еще так это раздел по программированию, код будет комментироваться. Т.е. если я что-то выкладываю на MQL или Питон, то я буду объяснять как работает код. Версия MQL - 5, т.е. использую Метатрейдер 5.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 18 фев 2018, 01:31

Пришло время установить Питон. Есть два пути установить Питон с официального сайта и потом доустанавливать необходимые библиотеки или установить одну из сборок Питон. Я вам предлагаю второй путь. В этом случае у вас будет множество предустановленных библиотек и дополнительный способ их установки. При установке чистого Питона в Виндовс иногда могут возникнуть проблемы с установкой некоторых библиотек. Сборка называется Анаконда. Качайте версию для Питона 3.6. https://www.anaconda.com/download/
При установке обязательно выберите опцию добавить в переменную PATH.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 18 фев 2018, 20:41

Следующий этап установка среды для программирования. Я предлагаю вам выбрать Visual Studio Community 2017 https://www.visualstudio.com/ru/?rr=htt ... ogle.ru%2F Это бесплатная IDE от Майкрософт. Я считаю ее одной из лучших. Установка ее довольно проста. Есть только один момент который стоит осветить. Не стоит устанавливать все компоненты среды. Достаточно выбрать Питон. Если вам понадобиться что-то еще, всегда можно запустить инсталятор и изменить конфигурацию IDE.
Далее переходим собственно к разработке робота. Будет освещена тема генетического программирования. При его помощи стратегия будет создаваться автоматически. Да, такое возможно!
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 19 фев 2018, 03:52

Лирическое отступление. Программирование и в частности алготрейдинг могут не только приносить деньги, но и быть увлекательными. Увлекательность связана с двумя факторами: решение задач и изучение нового материала. Когда вы успешно решили сложную задачу вы испытываете удовольствие. Это действительно так, иначе бы не было такого явления как головоломки. Весь смыл которых только в том чтобы ее решить. Вспомните о популярности кубика Рубика. Узнавать что-то новое тоже интересно. В детстве это было одно из основных наших занятий.
А теперь интересное введение в генетические алгоритмы и генетическое программирование.
https://soundcloud.com/hexlet/episode_07
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 19 фев 2018, 19:19

Установка библиотеки для генетического программирования. Я нашел две подходящие библиотеки. Лучшая из них DEAP. Я попробовал установить ее установщииком Питон. Команда pip install deap в командной строке Виндовс. Но этот метод выдал ошибку. В Винде это иногда бывает. Но так как я установил Анаконду, есть другой метод установки.
Заходим в меню Виндовс - программы - Анаконда и запускаем командую строку Анаконда. Там набираем:
conda install -c conda-forge deap
В этом случае установка проходит успешно.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 19 фев 2018, 19:40

Теперь необходимо определиться а какую системы мы хотим создать. Я выбрал скальпинг для Евро. И вот почему. Скальпинг это потенциально самый доходный вид торговли. Предположим мы расчитываем на профит 5 пунктов со сделки. Определим, примерно, сколько профита в день молжно получить при таком подходе. Откроем график евро 1 минута и используем индикатор ATR с маленьким периодом. Этот индиикатор показывает средний размер бара за N баров. На 1 минуте минимальное значение за день меньше 5 пунктов. Подбираем таймфрейм где оно будет примерно 5. Этот ТФ 15 минут. А теперь не сложные вычисления. В одном часу получается 4 бара. За 24 часа 96 баров. На каждом баре можно получить 5 пунктов прибыли. Итого получается 480 пунктов прибыли за сутки. Какая еще стратегия способна на такое? Понятно, что может быть меньше 96 сделок и будут убыточные сделки. Но все равно результат может быть прибыльней других стратегий.
В среде форекс трейдеров считается что скальпингом не заработать. Но мы не должны верить всему на слово. Давайте рассмотрим почему в МТ так сложно заработать скальпингом. При скальпинге профит всего несколько пунктов. А нужно как-то анализировать рынок. Использовать минутные графики? В МТ4 другой альтернативы нет. Но как их использовать, если на них волатильность бара может быт те же 5 пунктов. Т.е. торговля ведется внутри одного бара. И как проанализировать один бар на обычных графиках? Такого способа нет. Понятно что нужен тиковый график. Так как мы пишем робота, нам нужно получить тиковую историю. И в МТ5 она есть.
Далее мы будем с ней разбираться.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 20 фев 2018, 21:32

Прежде чем приступать к реализации необходимо ознакомиться с библиотекой генетического программирования.
Документация https://deap.readthedocs.io/en/master/index.html
Все естественно на английском. Как всегда выручает гугл переводчик.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.

Язык Python для трейдера.

Сообщение Рэндом » 20 фев 2018, 22:04

Теперь определимся что нам необходимо сделать.
1. Экспорт данных из МТ5
2. Импорт данных в Питон.
3. Написать тестер
4. Написать код для генетического программирования.
Зачем нам нужен тестер стратегий. Есть два способа использовать генетическое программирование. Первый с жестко заданными входами в сделку (например по индикатору зигзаг). В этом случае на вход в качестве переменных генетического алгоритма подается например 20 значений Бид и Аск (т.е. у нас 20 переменных с которыми работает алгоритм), а фитнес функция определяет соответствует ли полученный алгоритм выходам. Это более простой путь. Но он менее универсальный. Мы можем заставить ГА (генетический алгоритм) еще и определять момент входа. Это второй способ. В этом случае фитнес функция тестирует алгоритм полученный при помощи ГП на истории. Вот для этого и нужен тестер.
Фитнес функция - это функция которая определяет насколько хорош полученный при ГП результат. На ее основе производиться "естественный" отбор.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13404
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 89.00 Доллар
Группа: Администраторы
Благодарил (а): 1120 раз.
Поблагодарили: 3093 раз.
Каждый заблуждается в меру своих возможностей.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения