Блог трейдера

Содержание

Блог трейдера

Торговые роботы, скальпинг, ммвб, фортс, алготрейдинг, опционы, московская биржа, стратегии трейдинга.

пятница, 25 ноября 2016 г.

Как написать робота для Форекс

Как написать робота для Форекс

Способы написания роботов для автоматической работы на бирже

Перспективы стабильного заработка с минимальной затратой времени практически сразу привлекают к себе внимание новичков в трейдинге, поэтому вопрос, как написать робота для Форекс, становится одним из первых, которые они пытаются рассмотреть как можно подробнее. Между тем решение этой задачи включает в себя несколько основных вариантов, и все они требуют тщательного, ответственного подхода, впрочем, как и весь валютный рынок, известный своей непредсказуемостью.

Первый подход предполагает глубокий математический анализ поведения ваших активов в условиях, созданных рынком. В ход идут индикаторы, скрипты, ручные подсчеты с помощью экономических формул, применение волн, паттернов и линий, которые позволяют составить алгоритм действий потенциального советника, основанный на особенностях валютной пары. Однако применение такого метода требует больших временных затрат и, как правило, идеален только в теории, а на практике требует длительного, последовательного тестирования.

Второй способ заключается в самостоятельном изучении правил программирования на языке mql известного разработчика MetaQuotes. С помощью него пишутся все используемые дилерами дополнительные средства анализа и торговли на валютной бирже. При последовательном углублении в данную науку, вы имеете достаточно большие шансы, быстро вникнуть в принципы построения экспертов. Плюс такого метода в возможности сконструировать уникальную систему точно под себя, по собственной торговой стратегии. Минус – долгий период отладки готовых роботов.

Третий вариант создания – применение вспомогательной программы-конструктора, созданного специально для того, чтобы облегчить жизнь неопытных в вопросе программирования трейдеров. С их помощью вы легко соберете своей системы. Плюсы в данном случае перевешивают, ведь у вас появляется возможность последовательно, без полноценных знаний программного кода, быстро и без лишних затрат создать подходящий вам советник.

Программа автоматического трейдинга на заказ

Как написать робот для Форекс, в любом случае, будет полезно знать каждому трейдеру, хотя бы поверхностно, то есть базовые этапы этого процесса. Но для тех, кто не может разобраться в программных кодах и специальных конструкторах, оптимальным решением будет заказ эксперта у профессионального программиста. Это потребует дополнительных финансовых вложений, но вы сможете контролировать работу удаленно, не тратя своего времени и нервов.

Для заказа необходимо выполнить несколько этапов:

  • найти специалиста-разработчика на соответствующих ресурсах;
  • подготовить подробное, точное техническое задание;
  • обсудить проект с программистов, выяснить и устранить неточности;
  • установить время выполнения заказа и сумму его оплаты;
  • получить промежуточный вариант для тестирования, на основе которого еще возможно сделать корректировку;
  • получить готовую систему.

Многие трейдеры задаются вопросом как написать робота для Форекс. Стоит заметить, что это довольно сложное задание, которые требует определенных навыков, знаний и умений.

Робот форекс или как его еще называют советник, представляет собой специальную программу, которая производит автоматическую торговлю на валютном рынке без участия самого трейдера. Таким образом, приложение может торговать 24 часа в сутки без перерыва на сон и еду. Пока трейдер занят своими делами или другой работой советник зарабатывает для него деньги.

Трейдер может воспользоваться уже существующим советником, который содержит платформа MetaTrader4, либо скачать или приобрести его на специальном ресурсе. Кроме того, многие брокерские фирмы в рамках обучающих программ предлагают приобрести трейдерам роботов, которые были разработаны под определенную стратегию.

Трейдерам, которые имеют собственную индивидуальную стратегию лучше создать для себя советник самостоятельно. Поскольку только они знают какими функциями он должен обладать, чтобы полностью соответствовать их стилю торговли. Так же, стоит заметить, что для трейдеров, которые не сильны в программировании, торговых роботов могут написать под заказ опытные программисты.

При самостоятельном создании робота для торговли на Форек необходимо учитывать:

  1. Валютные пары, которые будет использованы при торговле.
  2. Индикаторы, которые в последующем должны быть правильно настроены.
  3. Ограничения, которые провоцируют открытия или закрытие сделок.
  4. Возможные риски.

Языки программирования, которые используются для написания советников форекс

Зачастую для написания торговых роботов форекс используют:

  1. Язык программирования MQL4. Для написания советника на данном языке придется воспользоваться специальным приложением под названием MetaEditor, который встроенный в платформу MetaTrader4. После вызова приложения автор может добавить стандартные или созданные самостоятельно индикаторы, которые в последующем и станут основой работы советников.
  2. Язык программирования MQL5. Для него также предусматривается использование встроенного приложения MetaEditor, которое оборудовано специальным хранилищем для данных, системой отладки, авто завершения и профилактики. В свою очередь данный язык является более прогрессивным в сравнении с MQL4 и по своему принципу схож с С++. Именно это фактор позволяет создавать объективно-ориентированные программы.
Вам будет интересно  Беспроигрышные стратегии и советники для биржи форекс

Основные этапы создания робота для торговли на Форекс

Для написания собственного торгового советника трейдеру необходимо пройти такие основные этапы:

  1. Конкретно определить все задания, которые должен будет выполнять будущий советник.
  2. Выбрать более удобный язык программирования.
  3. Произвести непосредственное написание советника.
  4. Протестировать полученную программу.

Что касается последнего пункта, то он является самым важным, так как от того насколько хорошо будут исправлены ошибки зависит последующая эффективность работы советника в реальных условиях. Тестирование заключается в ручном просмотре всех прописанных логов и поиска ошибок в кодах.

Для упрощения задания трейдеру лучше после первого тестирования создать подробный план исправления ошибок, доработок неточностей и устранения багов. Лучшим способом проверить качество работы написанного советника является его испытания на демо-счете. Если после всех доработок робот начнет давать стабильный результат можно попробовать выйти с ним на реальный рынок. Для этого рекомендуется изначально использовать небольшой депозит .

Не стоит при первом написании робота комплектовать его большим количеством команд. Для начала будет достаточно использовать всего несколько простых алгоритмов, а уже затем постепенно дополнять его более сложными и объемными заданиями. В противном случае можно потратить большое количество времени для тестирования продукта, а в результате так и не получить идеального результата.

Где можно научиться писать советники форекс

Каждый трейдер, который достаточно долго работает на Форекс, испытывает потребность самостоятельно написать робота для торговли на форекс. При этом его уровень знаний и умений в программирование может быть значительно ниже, чем в работе на валютном рынке. К счастью как написать торгового робота можно узнать из большого количества источников. Среди них специальная литература и статьи, обучающие видео в интернете, индивидуальные или групповые занятия в специальных учебных центрах, онлайн консультации опытных трейдеров и программистов. Кроме того, некоторую информацию можно подчеркнуть на тематических форумах.

Самостоятельное создание специального робота это один из этапов развития трейдера к которому он придет по истечению некоторого времени. Для успешной работы на Форекс необходимо постоянно совершенствовать свои знания, учиться новому и быть в курсе последних стратегий, новинок в сфере программного обеспечения, современных методов анализа и прогнозирования.

Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteForex. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.

Торговый советник на MQL4: учимся программировать с нуля

В этом руководстве по MQL4 вы научитесь программировать свой собственный торговый советник в MetaEditor.

Прежде чем мы начнем, убедитесь, что вы понимаете следующие типы данных. Каждая переменная, которую мы будем использовать, для начала должна быть определена одним из следующих типов данных:

  • int — это обычное число. Например: 1, 15, 521.
  • double — число с десятичным знаком. Например: 1,154, 0,0144, 255,145.
  • string — строка, слово, фраза. Например: «Ордер на покупку», «Ордер на продажу успешно размещен».
  • bool — принимает значения либо false, либо true.

Скоро вы увидите, как их можно использовать.

Торговый советник три белых солдата

Для того, чтобы создать свой собственный торговый советник, для начала вы должны переключиться на MetaEditor. Вы смоете сделать это, нажав на иконку MetaEditor. В MetaEditor нажмите «Создать» и выберите «Советник (шаблон)». В следующем окне напишем имя нашего эксперта, нажмем на кнопку «Далее» и добавим первые стандартные переменные, нажав на кнопку «Добавить».

Мы добавим TakeProfit, StopLoss, LotSize, Slippage и MagicNumber. Все они являются типом int, кроме LotSize. LotSize должен иметь тип double.

мой торговый советник

Затем нажимаем «Далее» и «Готово». Мы видим, что MetaEditor сгенерировал файл с вашими предопределенными переменными.

Вы можете увидеть 3 области. Области OnInit(), OnDeinit() и OnTick(). Весь код, который вы пишете, попадает в одну из этих областей.

Код, который мы хотим вызвать, если прикрепим советник к графику, выполняется в области OnInit(). Код в OnDeinit() выполняется, когда мы отсоединяем советник. И, наконец, область, в которой мы будем работать больше всего — область OnTick(). Функция OnTick() вызывается каждый раз, когда мы получаем от брокера новую цену (тик) торгового инструмента, к которому прикреплен советник.

Если вы скомпилируете советника с помощью F7 и вернетесь в Metatrader, вы сможете найти советника в «Навигаторе» MetaTrader (Crtl + N). Если вы попытаетесь присоединить его к графику и перейдете на вкладку «Входные параметры», вы сможете увидеть наши предопределенные переменные.

торговый советник: входные параметры

Мы научимся программировать советника, который торгует по паттерну 3 белых солдата. Это простая стратегия, когда советник открывает сделку на покупку, когда последние 3 свечи были бычьими. Давайте начнем!

Добавим следующие строчки кода:

Для этой стратегии мы используем предопределенную переменную Close[], который является типом double. Close[] дает нам цену закрытия (например, 1.24577) для каждого свечи текущего графика. Close[0] означает текущую цену закрытия. Close[1] — предыдущую цену, и так далее. То же самое справедливо для предопределенных переменных Open[], Low[] и High[].

//Ордер на покупку — это подсказка для нас, что мы создали здесь функцию открытия ордера на покупку. Две обратных черты (//) означают, что эта строка закомментирована. Советник будет игнорировать ее при компиляции.

Если вы поместите курсор на предопределенную функцию или переменную и нажмете F1, откроется справка по MQL4, где вы сможете прочитать, что делает эта данная функция или переменная.

Вам будет интересно  Разгон депозита: принципы, стратегии, советники

Далее мы используем функцию OrderSend, чтобы отправить ордер на покупку нашему брокеру. Добавим следующий код:

Что из себя представляет функция OrderSend?

  • _Symbol — возвращает текущий торговый инструмент, к которому прикреплен советник.
  • OP_BUY — мы хотим открыть ордер на покупку.
  • LotSize — размер лота, который мы определили в самом начале.
  • Ask — текущая цена Ask, по которой открываются ордера на покупку.
  • Slippage — размер проскальзывания.
  • StopLoss — это наш StopLoss. Или цена Ask за вычетом цены StopLoss. Запомните, что StopLoss — это целое число (500 пунктов), а Ask — это цена (например, 1.20521). Теперь, чтобы вычесть стоп-лосс из цены Ask, мы должны умножить его на 0,00001 или 0,001. Мы делаем это с помощью предопределенной переменной _Point, которая отражает текущие значением пунктов торгового инструмента.
  • TakeProfit — то же самое, как и StopLoss.
  • Комментарий — комментарий, который должен появиться в журнале, когда торговый советник разместит наш ордер.
  • MagicNumer — магическое число, которое было определено нами вначале.

Нажмите F7, чтобы скомпилировать советник и проверить результат его работы в тестере стратегий. Вы получите что-то вроде этого:

торговый советник открывает ордера на каждом тике

Наш торговый советник выставляет ордера на покупку на каждом тике, если 3 последних бара были бычьими. Это не то что мы хотим, но, по крайней мере, что-то происходит.

Мы должны запрограммировать новую функцию, которая позволит нашему советнику одновременно открывать только одну сделку. MQL4 уже имеет свои предопределенные функции, например, OrderSend(). Но мы также можем написать свою собственную функцию, в которой мы можем вызвать другие пользовательские или предопределенные функции.

Давайте перейдем к концу нашего файла и запрограммируем новую функцию под названием TotalOpenOrders. Эта функция будет иметь тип int. Она будет возвращать количество открытых ордеров.

Затем добавим данную функцию в область OnTick и добавим проверку на количество открытых ордеров. Если общее количество сделок равно 0, наш торговый советник продолжает свою работу с кодом внутри скобок.

торговый советник открывает только один ордер

Что из себя представляет функция TotalOpenOrders?

В этой функции у нас есть счетчик (total_orders), который в конце возвращает общее количество открытых ордеров. Также у нас есть цикл for, который перебирает все открытые ордера. Если советник найдет ордер, соответствующий вашему символу и MagicNumer, счетчик увеличится на 1 (это записывается с помощью ++).

Теперь у нас все еще есть проблема. Если свеча слишком длинная, советник открывает вторую сделку на покупку непосредственно после того, как первая сделка на покупку закрывается с помощью StopLoss или TakeProfit. Мы должны добавить вторую функцию «IsNewBar».

Эта функция будет представлять тип bool. Она вернет true, если в Metatrader сгенерирована новая свеча, иначе она вернет false.

Давайте поместим эту функцию прямо над функцией TotalOpenOrder и вызовем ее в области OnTick вместе с TotalOpenOrders().

4-5 или 2-3 значные котировки

Давайте разберемся с проблемой котировок, которые могут предоставлять нам разные брокеры.

Сейчас мы используем предопределенную переменную _Point для преобразования TakeProfit и StopLoss. Но мы хотим создать функцию, которая предоставит нам одинаковое значение для 4 и 5 и соответственно 2-х и 3-х торговых инструментов. Для начала мы создаем глобальные переменные MyPoint и MySlippage. Поместим их прямо под нашими входными параметрами:

Теперь мы создаем функцию, которая сохраняет правильное значение в этих 2 переменных (MyPoint и MySlippage) и помещаем их в наши пользовательские функции:

Мы должны рассчитать эти значения только один раз. Только когда мы прикрепляем наш торговый советник к графику. Поэтому мы вызываем эти функции в разделе OnInit():

Теперь мы можем возвратить наши TakeProfit, StopLoss и Slippage к номальным значениям:

Далее мы заменяем все Slippage и _Point в функциях OnTick нашими 2 новыми глобальными переменными MyPoint и MySlippage. Таким образом, функция OrderSend будут выглядеть следующим образом:

Торговый советник и ECN брокеры

На ECN брокерах мы не можем отправить ордер с TakeProfit или StopLoss. Сначала нам придется отправить наш ордер без них, а затем изменить его.

Сначала мы сохраняем номер тикета из только что открытого ордера в переменной int ticket. Затем мы проверяем, получен ли мы данный ticket от нашего брокера. Далее мы вызываем функцию OrderModify. Функция OrderModify возвращает true или false, которые мы сохраняем в переменной bool res. Мы проверяем результат с помощью if (! Res) (так же, как if (res == false)) и выводим соответствующее сообщение.

Теперь наш код будет работать на всех ECN и не ECN брокерах.

Очистим наш код

Наш исходный код выглядит сейчас слишком сложным. Но мы можем его упростить. Для этого мы помещаем торговую логику и OpenOrder / ModifyOrder в пользовательскую функцию и вызываем ее в области OnTick().

Добавляем индикаторы

Теперь я покажу вам, как можно добавить индикаторы в наш торговый советник. Мы добавим индикатор RSI с фильтром скользящей средней.

Во-первых, нам нужны глобальные переменные для хранения значений наших индикаторов, чтобы мы могли работать с ними позже. Добавим их после MyPoint и MySlippage:

Теперь нам нужно создать функцию, которая будет возвращать текущую цену наших индикаторов и далее сохранить ее в наших предопределенных переменных. Добавим их в области пользовательских функций нашего кода:

Мы вызываем функции iRSI и iMA и сохраняем эти цены в переменных. В обоих функциях мы сначала используем текущий символ и таймфрейм, для которых мы хотим получить показания индикаторов. В нашем случае это символ и таймфрейм (период), к которому мы прикрепляем советник.

Вам будет интересно  Лучшие методы разгона депозита

Для RSI мы хотим, чтобы период 14 рассчитывался по цене закрытия. Скользящая средняя должна быть периодом 200, Сдвиг 0. Что такое 1 в конце? Здесь мы определяем, от какой свечи мы хотим получать эти значения. 0 означает текущую свечу, 1 — предыдущую и т. д.

Чтобы эта функция работала, мы должны вызывать ее в разделе OnTick:

Теперь у нас есть все необходимые значения для создания нашей логики входа. Мы хотим открыть ордер на покупку, если RSI находится ниже уровня 30, а минимум предыдущей свечи находится выше скользящей средней:

Изменяем параметры индикаторов

На данный момент, если мы хотим изменить, скажем, период RSI от 14 до 20, мы должны сделать это в исходном коде. Теперь я покажу вам, как вы можете изменить все параметры индикаторов как обычный входной параметр в Свойствах эксперта. Для этого мы пишем:

Теперь мы должны связать эти параметры с нашими индикаторами и торговой логикой. Для этого мы изменим наш код на следующий:

Конструктор советников и роботов Visual JForex

Визуальный конструктор Visual JForex

Советники и роботы улучшают производительность трейдеров

Компания Apple вряд ли стала бы гигантом, если бы iPhone производили ремесленники.

Конструкторы форекс

Автоматизация бизнес-процессов повышает производительность и позволяет человеку заниматься другими делами.

Форекс — тоже бизнес, а потому не исключение. Автоматизация нужна и в трейдинге. Гонка за высокой производительностью должна постоянно занимать мысли профессионала.

Как же трейдер может повысить свою эффективность?

Просто — написать форекс советника, используя доступные конструкторы, о которых мы подробно поговорим.

Статистика алгоритмического трейдинга + новые статьи и новости финансовых рынков в нашем Telegram канале

Как написать советника форекс

Торговать вручную считается признаком мастерства и всегда в почете. Однако необходимо признать:

Для трейдера-бизнесмена, воспринимающего свое дело серьезно, переход на торговые роботы является ЖИЗНЕННО НЕОБХОДИМЫМ.

Мы уже публиковали интервью с известным трейдером, который 16 лет торговал руками, но затем отважился доверить все процессы роботу. 16 лет трейдинга в ручном режиме — а затем переход на советник! 16 лет на осознание!

Перед тем, как продолжить, нужно отметить важный аспект — для поиска закономерностей рынка форекс потребуются знания и некоторое время. Все “прибыльные” советники форекс, которые находятся в открытом доступе в интернете не могут гарантировать успеха. Стоит относиться к ним с большим скепсисом. Рынок уважает тех, у кого есть свои собственные идеи и свой собственный стиль.

Конструктор советников форекс Visual JForex

Почему трейдеры боятся переходить на торговых роботов? Вот примерные отговорки:

  • Создать советник сложно, у меня нет навыков программиста.
  • Чтобы сделать форекс робота, нужно потратить уйму времени, которого у меня нет. Поэтому торгую руками.
  • Разве советник может быть надежным?
  • и так далее, и тому подобное.

Однако в наше время поле конкуренции в трейдинге сильно разровнялось. Теперь технологии повышения производительности доступны начинающим трейдерам.

С одной стороны, доступно программирование под Метатрейдер — на языках MQL4 и MQL5. Однако в программировании не хватает визуальности — глядя на код, сложно представить всю архитектуру торгового алгоритма.

Вниманию трейдеров —конструктор советников Visual JForex на русском. Это визуальная среда разработки торговых советников.

Как создавать торговые стратегии на основе статистики и данных, способных работать 24/5

Для работы в конструкторе не нужно ничего скачивать, потому что Visual JForex — это веб-сервис. Вся работа в конструкторе, а также хранение торговых роботов производится на удаленном сервере.

Чтобы создать форекс советник самому, нужно всего лишь настроить необходимые торговые блоки, соединить их в требуемой последовательности, после чего протестировать. Освоить такую работу конструктора очень просто.

Для создания советника в VJF не нужно изучать программирование. Потребуется человеческая логика, а также понимание того, что требуется от робота.

Преимущества торговых роботов

Можно бесконечно перечислять преимущества перехода на советники. Назовем самые выдающиеся.

1. Дисциплина в исполнении торговой логики

  • Желание отомстить рынку,
  • овертрейдинг, сделки, ,
  • превышение рисков — продолжайте список…

Все это знакомо каждому трейдеру, но советник никогда такого не допустит!

Есть торговый план — есть железная дисциплина советника.

У торгового робота не бывает плохого настроения или недосыпа, эмоциональных перепадов, обид на брокера. Потому он с одинаковой торговой дисциплиной совершает сделки. Советник не спутает показания индикаторов и всегда четко отработает сигнал — не раньше и не позже.

2. Работа 24/5

Окончание рабочего дня — это железный аргумент не выполнять поручения коллег или вышестоящего начальства, а собраться и пойти домой.

Советник на форексе — это идеальный сотрудник, даже раб. Он не станет сопротивляться, если уже 19.45 и у всех давно закончился рабочий день. Он честно отработает положенные 24 рабочих часа и 5 дней в неделю.

3. Закономерности рынка форекс становятся доступными

Трейдер может использовать только одну закономерность рынка форекс в единицу времени. Скажем — торговать пробой уровня поддержки или сопротивления.

Правильно предположить, что, пока мы мониторим и торгуем пробой уровня на одной валютной паре, на других тоже могут происходить подобные события. Как успеть поторговать и на них?

Конечно же, с советником! Он отработает все пробои даже если они происходят одновременно на 25-ти валютных парах! Трейдеру даже не придется подходить к монитору.

4. Масштабируемость

Масштабируемость любого бизнеса означает способность увеличить нагрузку без фундаментальной перестройки бизнес-процессов. На рынке форекс использование советника является тому ярчайшим подтверждением.

Советник способен охватить новые рыночные ниши, использовать новые закономерности, таймфреймы и инструменты — и все без дополнительной нагрузки на трейдера.

5. Проверка торгового алгоритма без вложений

Для запуска бизнеса нужна идея, нужно определиться, какая деятельность будет генерировать бизнесмену прибыль. Мало того — ее нужно проверить на прочность с минимальными вложениями.

Поскольку форекс ничем не отличается от любого другого бизнеса, то и здесь нужна идея — торговая идея или торговый алгоритм, и его тоже надо проверять на прочность!

Здесь и пригодится тестирование форекс робота на исторических котировках. Протестировав разные торговые подходы на истории, можно понять, стоит ли вкладывать в них деньги. Но обычно трейдер спешит сразу торговать, не убедившись, что стратегия работает. Поэтому перед запуском советника в работу необходимы тесты, которые способен провести любой трейдер, освоивший Visual JForex или другие подобные инструменты автоматизации.

Источник https://treidinglike.blogspot.com/2016/11/blog-post.html

Источник https://traderblog.net/torgovyj-sovetnik-na-mql4/

Источник https://empirix.ru/videokurs-o-sozdanii-torgovyx-robotov-v-visual-jforex/

Предыдущая статья Где взять выгодный кредит наличными под небольшой процент в 2022 году
Следующая статья 5 лучших книг по бизнес-планированию