Как написать торгового робота для Форекс
На первом этапе создания робота
Конечно, перед тем как написать торговый робот Форекс, необходимо вооружиться навыками программиста и изучить специфику торговых запросов, которые регулярно требуются участнику биржи. Однако есть и другой путь для новичка. Первым вашим шагом на пути создания автоматизированной системы может стать тщательное изучение уже готовых советников, которые вы легко сможете скачать с общедоступной библиотеки Code Base.
Что вам это даст? В первую очередь вы сможете детально проанализировать весь процесс функционирования программы, от а до я! Это, безо всяких учебников позволит вам лучше понимать, как работают подобные алгоритмы, и что потребуется вам для создания своей версии. Перед тем как написать робота для торговли на Форекс самостоятельно, скачайте любой из предложенных вариантов для МТ4 или МТ5. На конкретном участке истории запустите тестирование выбранного советника.
Потом повторите то же самое на разных таймфреймах.
То же проделайте отдельно для трендовых и флетовых участков. Проанализируйте то, что вы увидели и постарайтесь самостоятельно оптимизировать работу эксперта под каждый определенный период, для каждого конкретного случая в записанной терминалом истории. Данный процесс потребует от вас дотошности и внимательности к мелочам, зато в результате вы уже имеете более или менее четкое представление о том, из каких элементов состоит робот.
Чем больше вы таким образом исследуете программ, тем шире будут ваши представления о создании вашего личного алгоритма. Как только в голове сложится картинка необходимой программы, обязательно законспектируйте ее основные функции, на какой стратегии она будет работать, какие должна включать параметры, с какими активами работать, и так далее. Небольшой схематический план поможет вам при фактическом создании советников.
Процесс написания технического помощника в Форексе
Теперь вы теоретически знаете, как написать торговый робот для Форекс, и пора переходить к делу. К сожалению, на данном этапе без навыков программирования не обойтись. Вам понадобиться освоить языки MQL4 или 5, в зависимости от того, на какую платформу вы собираетесь писать программу. Далее у вас несколько основных вариантов:
- «списать» с уже готовых примеров, чтобы отточить полученные навыки и проверить, насколько вы сами способны оптимизировать заданные системой параметры;
- если сами пока не можете полностью разобраться, стоит обратиться за подсказкой к тем, кто занимается этим профессионально или, по крайней мере, знает толк в этом вопросе, что можно сделать через специальные тематические сообщества, например, mql5.com;
- полностью довериться своим силам, но по завершении алгоритма отправить его на доработку специалистам, которые помогу исправить ошибки.
Во всех трех случаях желательно провести предварительное тестирование, прежде чем советник займет почетное место в торговой платформе. Если вы не уверены в том, как правильно написать торгового робота для Форекс, то стоит доверить это дело программисту с опытом создания подобных программ, чтобы не тратить время на самообучение.
Начинающие трейдеры, проходят курс обучения разработанный для них на Форекс. Со временем каждый из них начинает самостоятельную торговлю на рынке, выбирая свою стратегию. Взлёты и падения приводят трейдера к желанию как написать торговый робот для форекс, особенностью которого будет алгоритм, позволяющий получать систематическую прибыль. Такая программа должна свести к минимуму ошибки участника торгов, так как для торгового помощника не доступны эмоции, усталость, поспешность или опоздание с принятием решений.
Этапы создания робота для торговли
Наиболее часто используется трейдерами программа М4 (МетаТрейдер4). По аналогии с ней успешные трейдеры прибегают к написанию собственных советников. Насколько реально выполнение этого замысла для частного спекулянта на Форекс, определяется во многом выбранной стратегией, владением программирования. Для создания собственного советника, трейдеру рекомендуют воспользоваться MQL4 – встроенным языком программирования торговых стратегий. Этот инструмент разработан компанией MetaQuotes Software Corp и его особенностью является возможность написания собственных программ, позволяющих приводить в действие собственные торговые стратегии.
Эффективность и простота языка программирования позволит освоить его трейдерам без особенных сложностей. Как написать торгового робота для форекс, следует начать с сервиса терминала MetaTrader4, на котором предусмотрена возможность запуска редактора Meta Quotes Language.
После появления окна редактора начинается процесс написания собственной программы трейдера. Для этого необходимо открыть меню Файл и выбрать функцию Создать или воспользоваться комбинацией клавиш Ctrl+N. На экране открывается окно «Редактора Meta Quotes Language», после выбора типа робота, следует генерация робота.
Существует несколько типов программы:
- Советник – система автоматического ведения торгов, без участия трейдера, рассчитана на положительный результат, как правило, работает круглосуточно;
- дополнительный индикатор – индивидуальный индикатор трейдера добавленный к основным;
- программа «пользовательский скрипт» — предназначена для разового действия по запросу трейдера;
- Библиотека функций – комплект функций, предназначенный для выполнения особенных решений;
- Создание заголовочного файла, с расширением *MQH:
- Программирование по шаблону – создание робота по готовому стандарту.
Убедившись в верном выборе типа робота, следует продолжить генерацию программы, нажав функцию Далее.
Следующий этап заключается в заполнении общих параметров робота. К ним относятся поля: «Имя», «Автор», «Ссылка». Здесь необходимо вписать имя файла, копирайт, и ссылку, например, свой сайт в интернете. Далее следует продолжение, которое осуществляется включением функции Готово. На экран выводится незаполненный шаблон, предназначенный для написания кода разрабатываемой программы.
В помощь трейдеру, как написать робота для торговли на форекс, внесены основные функции, созданные редактором:
- Init() – начинает действовать с момента запуска программы;
- Deinit() – действует при отключении робота;
- Start() – главная функция, присутствующая во всех программах, фиксирует каждое изменение цены валютной пары.
В последнюю функцию вносится код программы, поэтому ей уделяется основное внимание трейдера. Следующий этап – проверка алгоритма написанной программы и преобразование (компиляция) её на язык компьютерного кода. Выполнение этой функции выполняют нажатием F5, затем в выпавшем меню Файл выбрать позицию Компилировать.
Отсутствие ошибок в программе отображается в окне, расположенном внизу экрана. Если в окне присутствует фраза «0 ошибок 0 предупреждений», значит, программа выполнена правильно и благополучно интегрирована в компьютер. Теперь окно терминала Навигатор будет содержать список советников с новым роботом. Левой кнопкой мыши нужно переместить вновь созданный советник на нужный график. Этого достаточно для его запуска.
Дальнейшее, более детальное изучение остальных функций языка программирования MQL4, позволит написать форекс советник более сложный, обеспечивающий постоянную прибыль трейдеру. Со временем, накопленный опыт торговли на валютном рынке, и изучение материалов по программированию на языке MQL4, позволят трейдеру не только писать собственные, но и разбираться в уже имеющихся советниках. Качественно написанная программа позволит трейдеру освободить часть своего рабочего дня для выполнения других задач. Кроме того, участвуя в торгах, трейдеру не нужен глубокий технический анализ. Советник выполнит и фундаментальный анализ, оберегая этим нервную систему торговца валютными парами на Форекс.
Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteFinance. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.
Создание простого торгового робота для работы на Форекс
Ниже показан процесс создания простого торгового робота для работы в терминале MetaTrader 4. На этом простом примере вы сможете попытаться создать своих торговых роботов для частичной или полной автоматизации торговли на рынке Форекс. Для создания торгового робота мы будем использовать язык программирования MQL 4. На самом деле все не так страшно и сделать это сможет даже ребенок, конечно, придется приложить некоторые усилия для изучения основ языка программирования, но результат в итоге стоит затраченных усилий.
- Шаблон создаваемого торгового робота
- Алгоритм действий торгового робота
- Описание переменных создаваемого торгового робота
- Заключение
Шаблон создаваемого торгового робота
Шаблон, это то с чего начинается создание любого торгового робота или советника. Шаблоны могут несколько отличаться друг от друга, но я предлагаю вам простой работающий вариант:
#property copyright «»
#property link «»
//В этом месте программного кода описываются все переменные, используемые в программе
int start() // Спец . функция start
// В этом месте прописывается алгоритм действий торгового робота (с использованием //специальных команд языка MQL 4)
return; // Выход из start()
Алгоритм действий торгового робота
В алгоритм действий создаваемого торгового робота мы закладываем свою торговую систему. Торговые роботы могут иметь сложные разветвленные алгоритмы действий, учитывающие множество факторов и путей развития событий на рынке Форекс. В данном случае мы ограничимся простым алгоритмом, основанным на покупке при цене выше скользящей средней и продаже при цене ниже скользящей средней.
Скользящая средняя это понятие технического анализа, выражающее некоторое усредненное значение цен, графически представленная в виде линии на графике. См. рис.:
Итак, мы хотим, чтобы создаваемый торговый робот осуществлял покупку при цене выше скользящей средней. Для этого напишем следующий программный код:
if( Bid>iMA (Symbol(), Period(),PMA, 0,MODE_SMA , PRICE_CLOSE, 0) )
Давайте подробно разберём этот код. Сначала идет проверка условия, что цена находится выше скользящей средней:
if( Bid>iMA (Symbol(), Period(),PMA, 0,MODE_SMA , PRICE_CLOSE, 0) )
Bid – цена спроса*;
iMA ()– оператор вычисляющий значение скользящей средней (в данном случае используется простая скользящая средняя с периодом задаваемым в настройках торгового робота);
If (условие) – if в переводе с английского означает «если». Другими словами если условие, написанное в скобках, выполняется то, выполняется и действие, указанное в фигурных скобках после:
OrderSend ( Symbol (), OP _ BUY ,0.1, Ask ,3, Bid — sl *Point, Bid + tp * Point )— это приказ на покупку 0,1 лота с установкой ордеров стоп-лосс ( sl ) и тейк-профит ( tp ) задаваемых в настройках торгового робота.
Для того, чтобы создаваемый торговый робот осуществлял продажу при цене ниже скользящей средней напишем следующий программный код:
Конструкция аналогична предыдущей, отличающаяся только тем, что в условии if () цена меньше скользящей средней, а в фигурных скобках стоит приказ на продажу того же 0,1 лота, с теми же ордерами стоп-лосс и тейк-профит.
Таким образом на данный момент мы имеем следующий алгоритм действий:
if( Bid>iMA (Symbol(), Period(),PMA, 0,MODE_SMA , PRICE_CLOSE, 0) )
Это означает, что при каждом изменении цены программа будет проверять оба этих условия и совершать покупку или продажу в зависимости от того какое из условий истинно в данный момент времени.
И если мы не ограничим программу дополнительным условием, то она сразу же наоткрывает кучу позиций, исчерпав весь депозит.
Давайте поставим ему дополнительное условие, открывать позицию только в том случае когда открытых позиций нет: if( OrdersTotal()=0), здесь OrdersTotal() – функция возвращающая значение открытых и отложенных ордеров.
Более того, давайте сделаем так, чтобы торговый робот сначала проверял наличие открытых позиций, а потом, в случае если открытых позиций нет, производил дальнейшие действия по алгоритму:
if( OrdersTotal()=0)
if( Bid>iMA (Symbol(), Period(),PMA, 0,MODE_SMA , PRICE_CLOSE, 0) )
Как видите, мы весь алгоритм с проверкой условий поместили в фигурные скобки под условием if( OrdersTotal()=0) и если это условие не будет выполнено, торговый робот просто будет ждать следующего тика (изменения цены).
На этом простейший алгоритм торгового робота закончен, но работать такая программа не будет до тех пор, пока мы не опишем все переменные входящие в алгоритм.
Описание переменных создаваемого торгового робота
В нашем примере мы использовали следующие переменные:
PMA – переменная содержащая значение периода используемой скользящей средней;
Sl – переменная содержащая значение ордера стоп-лосс;
Tp – переменная содержащая значение ордера тейк-профит;
Все три значения не могут быть дробными и потому относятся к типу int (целых чисел).
А для того, чтобы мы могли менять значения переменных в настройках торгового робота, добавим к их типу значение extern .
Таким образом, получаем следующее описание переменных:
PMA=13,sl=50,tp=100;
Как видите, переменным присвоены начальные значения, но в дальнейшем их можно будет изменять в настройках программы.
В итоге полный текст программного кода будет выглядеть следующим образом:
#property copyright «»
#property link «»
PMA=13,sl=50,tp=100;
int start() // Спец . функция start
if( OrdersTotal()==0)
if( Bid>iMA (Symbol(), Period(),PMA, 0,MODE_SMA , PRICE_CLOSE, 0) )
return; // Выход из start()
Заключение
Этот пример создания торгового робота приведен исключительно в учебных целях. Использовать этот робот в реальной торговле конечно не надо. Но вы можете установить его на демо-счете, или протестировать его в тестере стратегий.
Для того, чтобы на этой базе создать рабочий вариант способный зарабатывать деньги необходимо как минимум добавить к нему блоки отсеивания ложных сигналов и обработки ошибок, а как максимум усилить блок принятия решений дополнительными сигналами и внедрить систему управления капиталом.
Источник https://www.litefinance.org/ru/downloads/mt4/kak-napisat-torgovogo-robota-dlja-foreks/
Источник https://www.azbukatreydera.ru/sozdanie-torgovogo-robota-forex.html
Источник