Карта сайта

Автоматизация торговой стратегии

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

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

 

Итак,  для создания автоматической торговой системы необходимо минимум две составляющих:

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

 

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

  • когда открыть позицию (или установить ордер)?
  • когда закрыть позицию?

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

Например:

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

BUY: быстрая MA пересекает медленную MA снизу вверх.

SELL: быстрая MA пересекает медленную MA сверху вниз.

СтопЛосс (SL) и ТейкПрофит (TP) - фиксированные, настраиваются параметрами StopLoss  и TakeProfit.  Значения указываются в пунктах. Уровни рассчитываются от цены открытия позиции (от Аск - для бай-позиции, и от Бид - для селл-позиции). Если указанное значение слишком маленькое, стоп должен быть установлен на минимально разрешенном брокером, расстоянии.

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

Но помимо ответов на основные вопросы, в стратегии, как правило, есть много дополнительных особенностей, которые так же необходимо описать. К ним относятся:

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

Такое описание работы стратегии называется алгоритмом, а подробное описание алгоритма – Техническим Заданием (далее ТЗ).

 

Рекомендации по написанию ТЗ:

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

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

На какой платформе будет работать советник?

Какой индикатор (индикаторы) будет использовать советник?

Будет ли советник открывать позицию по рынку, или устанавливать отложенный ордер?

Какие условия должны соблюдаться, чтобы советник открыл позицию Buy (установил отложенный ордер на покупку)?

Какие условия должны соблюдаться, чтобы советник открыл позицию Sell (установил отложенный ордер на продажу)?

Какой размер лота будет использовать советник при открытии позиции?

Будет ли советник устанавливать при открытии позиции ТейкПрофит и/или СтопЛосс?

Какой алгоритм действия советника, при получении противоположного сигнала индикатора при уже открытой позиции (установленном ордере)?

Будет ли советник использовать в работе функцию «перенос СтопЛосс в безубыток»?

Будет ли советник использовать в работе функцию «Трейлинг Стоп»?

Будет ли советник производить запись в отдельный файл лог своей работы?

Какую информацию советник должен вывести на экран, в журнал, в лог файл?

Какие необходимы проверки корректности вводимых параметров?

Какие дополнительные функции должны быть в советнике?

 

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

Четкое и подробное описание условий, при которых будут производится открытие и закрытие позиции. Любые другие пункты Вам поможет составить программист, при условии, что он обладает достаточными навыками и знаниями, если Вы сообщите ему о дополнительных условиях и требованиях. Так, например, если советник будет использоваться на реальном счете, и Вам требуется максимальный уровень защиты от любых возможных ситуаций, связанных с потерей сигнала, перезагрузкой сервера, ввода некорректных значений переменных и т.д.; а также если Вы хотите, чтобы советник протоколировал максимум своих действий в отдельный файл для того, чтобы была возможность разобрать проблемы, возникающие в ходе работы. При этом необходимо отдавать себе отчет, что любые дополнительные опции, проверки - это страницы кода, и, соответственно, рабочее время программиста. Поэтому итоговая цена за такой советник будет значительно выше, чем за простой алгоритм работы. Поэтому прежде чем сделать заказ, определитесь, будет ли это «боевой» советник, работающий с реальными деньгами, или это будет советник для проверки работоспособности стратегии. Обязательно отметьте этот пункт при написании технического задания. Это поможет Вам значительно снизить итоговую стоимость, если советник создается для тестирования стратегий. Вы получите простой и дешевый продукт, который поможет вам проверить саму идею вашей стратегии.

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

Следующая распространенная проблема – индикаторы. Сегодня линейка доступных индикаторов настолько разнообразна, что зачастую начинающему трейдеру бывает крайне сложно самостоятельно разобраться в их особенностях, плюсах и минусах. При этом, «знатоки рынка» будут предлагать Вам множество индикаторов, показывающих точные сигналы на совершение сделки на исторических данных. Будьте и тут предельно внимательными. Индикатор может перерисовывать на графике свои линии, и стрелки, по мере развития ситуации. Ярким примером в этом отношении является индикатор ZigZag, который покажет великолепную статистику на истории, но при установке его на реальные график и при совершении сделок (используйте демо-счет!), по его сигналам, Вы обнаружите, что индикатор многократно перерисовывает свои линии, и указывает на сделки очень точно, но «задним числом».  Поэтому перед тем как заказывать разработку автоматической системы – убедитесь, что индикатор не осуществляет перерисовку линий и указателей. Проверить это можно, установив его на демо-счет, и зафиксировать его сигналы, например, вертикальными линиями. Или обратитесь за консультацией к разработчику. Даже если при этом вам придется потрать небольшую сумму за консультацию, это будет дешевле, чем потратить деньги на неработающую систему.

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

 

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

 

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

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