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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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