Написание советников для Форекс

Рейтинг лучших брокеров для торговли акциями за 2023 год:
  • Evotrade
    ☆☆☆☆☆
    ★★★★★
    Evotrade

    Бонусы для новых трейдеров до 5000$!

  • BINARIUM
    ☆☆☆☆☆
    ★★★★★
    BINARIUM

    Лучший брокер по бинарным опционам. Огромный раздел по обучению.

В этой статье раскрыты следующие темы:

MQL для тебя

MQL для чайников, программирование на MQL4, MQL5

Язык MQL — Урок 6 «эксперт Hedge Hog»

Как я и обещал, сегодня мы займемся написанием эксперта Hedge Hog на языке MQL, но сначала давайте объединим уже полученные ранее знания и напишем собственные функции на MQL4.

Сразу возникает вопрос: «Что это нам даст?»

Ну во первых это уменьшит количество строк в нашем советнике для Metatrader 4. Во вторых можно не тратить время при написании следующих советников форекс, а просто использовать ранее написанные функции в новом коде.

Функции MQL4 — это кирпичики из которых можно легко сложить рабочий эксперт MT4, не отвлекаясь каждый раз на одну и ту-же работу.

Расчет лота в MT4, поместим в функцию — «Функция расчета лота» :
double GetLot( int Risk)
< double Free = AccountFreeMargin ();
double One_Lot = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
double Min_Lot = MarketInfo ( Symbol (), MODE_MINLOT );
double Max_Lot = MarketInfo ( Symbol (), MODE_MAXLOT );
double Step = MarketInfo ( Symbol (), MODE_LOTSTEP );
double Lot = MathFloor (Free*Risk/100/One_Lot/Step)*Step;
if (Lot if (Lot>Max_Lot) Lot=Max_Lot;
if (Lot*One_Lot>Free) return (0.0);
return (Lot);>

Обратите внимание на строчку: if (Lot*One_Lot>Free) return (0.0);

В ней мы производим проверку на достаточность средств на торговом счету форекс. И если их окажется недостаточно, возвращаем 0.

Для открытия ордера Metatrader 4, при помощи советника форекс, напишем функцию — «Функция открытия ордера» :
int NewOrder( int Cmd, double Lot)
< double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
while (! IsTradeAllowed ()) Sleep (100);
if (Cmd== OP_BUY )
if (TakeProfit>0) TP= Ask +TakeProfit* Point ;
if (StopLoss>0) SL= Ask -StopLoss* Point ;>
if (Cmd== OP_SELL )
if (TakeProfit>0) TP= Bid -TakeProfit* Point ;
if (StopLoss>0) SL= Bid +StopLoss* Point ;>
int tic= OrderSend ( Symbol (),Cmd,Lot,PR,3,SL,TP,»«,0,0, CLR_NONE );
if (tic Print ( »Ошибка открытия ордера: « , GetLastError ());
return (tic);>

В этой функции на языке MQL мы использовали новые для нас команды MQL4:

Print () — Выдать сообщение в журнал.

GetLastError () — Номер последней ошибки.

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

Функция start() нашего скрипта сильно упростится:

double Lot=GetLot(MaxRisk);
if (Lot==0) < Alert ( »Недостаточно средств!" ); return (0);>
RefreshRates ();
if (Buy) NewOrder( OP_BUY ,Lot);
if (Sell) NewOrder( OP_SELL ,Lot);

Новая функция RefreshRates () — функция обновления данных в предопределенных переменных ( Ask , Bid и т.д.) При запуске нашего скрипта в окне терминала Metatrader появляется окошко с параметрами. Пока мы их изменяем цена может изменится. Вот мы и обновим ее значение в переменных.

Теперь займемся советником Hedge Hog.

На первый взгляд — все просто. Нужно открывать каждый торговый день ан форекс, с понедельника по пятницу в 00:00 по GMT, два рыночных ордера в противоположные стороны (один на покупку, второй на продажу) без стоп-лоссов и с тейк-профитами в 14 пунктов равным объемом по валютной паре EURUSD.

Итак, для создания советника MT4, запускаем мастер в редакторе MetaEditor:

выбираем «Советник» и нажимаем «Далее>» (далее…)

Форекс Статьи

Программы для создания советников на МТ4 и МТ5

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

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

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

Как можно создать советник?

Обзор начнем с краткого описания всех возможных способов (возможно, вам и не придется разбираться с программами). Создать торговый робот можно:

• написав его самостоятельно в Meta Editor – хардкорный вариант. Сюда же занесем и модификацию кода уже существующего робота;

• заплатив программисту – самый реальный вариант. Если бот сложный с множеством условий для входа, а у вас нет опыта в написании АТС, то лучше всего купить чужой опыт. Соответствующих объявлений полно на профильных форумах;

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

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

Краткий обзор программ для написания торговых роботов

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

Forex strategy builder

Мощный инструмент, программа платная, но в ознакомительных целях с сайта forexsb.com можно скачать демо-версию. На ознакомление дается всего 15 дней, повторно воспользоваться триальной версией можно будет только с другого ПК. Работать FSB будет только если у вас установлен МетаТрейдер, дело в том, что программа использует базу данных из МТ4.

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

При создании советника рабочее пространство программы делится на 3 зоны:

• левая часть экрана – краткое описание стратегии;

• центральная зона – функциональные блоки советника. Указывается такая информация как размер лота, когда выполняется вход и на основании каких индикаторов. Также указывается условие для закрытия сделки. В примере на скриншоте ниже вход в рынок выполняется только на закрытии свечи и только в том случае если свеча закрывается над верхней границей конверта. Выход из сделки в этом примере предусмотрен только за счет срабатывания стоп-лосса или тейк-профита;

• правая часть экрана – результаты тестирования советника на исторических данных, импортированных из торгового терминала.

Находясь в Editor можно выделив каждый из блоков редактировать его значения. Например, изменить период скользящей средней, период индикатора, положение уровней и т. д. Можно добавить дополнительные условия для входа нажав на «Add an opening logic condition» и условия для выхода из рынка нажав на «Add a closing logic condition».

В разделе review вся информация по работе советника истории. Доступны такие пункты:

• overview – так как в примере рассматривается один из готовых советников, загруженных в базу программы, то здесь можно ознакомиться с подробным описанием советника;

• balance chart – график изменения депозита при тестировании алгоритма. В нашем примере видно, что робота неспособен обеспечить прибыль на тестовом участке истории;

• indicator chart – график выбранного инструмента, на котором будут отображаться сделки, совершенные при тестировании. Примерно то же самое увидит трейдер при тестировании советника в МТ4/МТ5 при активированном параметре «Визуализация». Это полезно если вы хотите изучить в полной ли мере соответствует работа советника тому, что вы задумывали;

• journal – в журнале записывается каждое действие робота при тестировании на исторических данных.

Есть пара полезных разделов и во вкладке Analysis:

• comparator – выбирается метод бэктеста. Здесь можно ничего не делать, оставить все как есть;

• multimarkets – в отличие от стандартного тестера в том же МетаТрейдере4 здесь можно выполнить тестирование сразу по нескольким парам. Результаты отображаются в виде графика в одном и том же окне;

•monte carlo – еще один раздел, посвященный тестированию. Его можно не трогать.

Перед тем как тестировать робот на истории рекомендуем подгрузить историю из МетаТрейдера. Для этого перейдите в Market-Download History Data-MT4 HST Import.

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

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

Ensed Cor

По сравнению с предыдущей программой Ensed Cor выглядит чуть менее удобной в использовании. Да и составить костяк советника так же просто как в FSB не получится. Как и в случае с FSB доступ к полному функционалу можно получить только оплатив подписку на сайте авторов. Но для ознакомления с возможностями программы подойдет и бесплатная версия Ensed Cor.

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

Перед началом работы нужно будет указать каталог МТ4. Enser Cod будет использовать все индикаторы, которые на данный момент содержаться в папке Indicators (в демо-версии реализована поддержка только стандартного инструментария МетаТрейдера).

Работу в программе рассмотрим на примере создания простенького торгового робота:

• при первом запуске указываем каталог терминала МТ4;

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

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

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

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

• теперь нужно указать условия для выхода из сделок. Предположим, что наш робот будет закрывать покупки при выполнении одного из 2 условий: Параболик со стандартными настройками переходит под график, цена пересекает скользящую среднюю сверху-вниз. Достаточно выполнение одного из этих условий, поэтому используем условие «или»;

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

• настройки робота – здесь задаются такие параметры как стоп-лосс, тейк-профит, будет вестись торговля фиксированным лотом либо будет использоваться мартингейл. Можно отметить пункт «автоучет знаков после запятой», в таком случае разрядность котировок советником будет определяться автоматически. Также задаются настройки мартингейла, будет ли переноситься стоп-лосс в безубыток и на каком уровне.

Теперь можно сохранить робота, причем автоматически при сохранении будет выбрана папка Experts в нужном каталоге. После перезапуска терминала наш советник появляется в перечне роботов в МетаТрейдер4. В MetaEditor при желании можно просмотреть код робота.

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

Expert Advisor Visual Wizard

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

Процесс создания робота выглядит так:

• после открытия программы нужно будет указать путь к корневому каталогу МТ5, это ПО предназначено именно для создания ботов для МетаТрейдера5. Благодаря этому программа сможет работать не только со стандартными индикаторами, но и со всеми пользовательскими алгоритмами, которые трейдер сам установил в терминал;

• на график нужно будет добавить 2 кнопки Technical Analysis – для задания условий на покупку и продажу. Двойным щелчком по кнопке открывается окно, в котором выбираются нужные индикаторы, задаются условия для входа. Например, можно выбрать вход в рынок на пересечении 2 мувингов, выхода Стохастика из зон перепроданности/перекупленности и т. д.;

• потом добавляются блоки купить/продать, в них задаются параметры сделок – величина лота, стоп-лосс и тейк-профит.

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

На скриншоте выше – пример примитивнейшего советника на основе Стохастика. Его можно сохранить в нужном для МТ5 формате, загрузить в терминал и тут же испытывать на истории. В самой программе для создания возможности протестировать советник нет.

Недостатки программ для создания советников

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

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

Например, если в советнике нужно применить ВВ к индикатору RSI, программы это реализовать не смогут. Есть проблема с использованием свечных паттернов, паттернов Price Action, уровней Фибо и т. д.

Заключение

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

Читать Программирование советников по индикаторам — Легко!

Описание

Программирование советников, для проверки своей стратегии по каким либо индикаторам — достаточно простое дело.

Шаблон для написания советника по индикатору позволяет программировать советники по любым индикаторам!

Рекомендую ознакомится с нашим новым советником:

Похожие записи

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

Статьи о нашей работе FinanceApplication Windows 27.05.2012 12.11.2020

Написание советников для Форекс

Немало интересных торговых стратегий так никогда и не были автоматизированы по той простой причине, что их авторы попросту не владели навыками программирования. Без знания языка mql4 сделать советник с нуля проблематично. Программа для создания советников форекс позволяет обойти эту проблему.

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

  • с нуля – для этого, как правило, используется metaeditor, этот способ требует знания языка программирования;
  • путем модификации кода существующего советника;
  • с использованием «костылей» в виде специальных программ.

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

Forex EA Generator – популярная программа для создания советников форекс

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

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

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

И только на следующем этапе эта программа для создания советников форекс позволяет перейти к заданию свойств каждого блока. Для того, чтобы перейти к редактированию, например, блока Technical Analysis нужно:

  • в панели инструментов (верхняя часть экрана) выделить вкладку Analysis – Technical Analysis;
  • выделить соответствующий блок в рабочем поле программы;
  • в левой части экрана в окне Properties задать условия для входа в рынок.

После завершения работы нужно скомпилировать советник (нижняя часть экрана).

Gordago Forex Optimizer – многофункциональный конструктор

Создатели этой программы попытались приблизить ее по функциональности к торговой платформе. То есть в ней можно не только «собрать» советник, но и тут же протестировать его на тиковой истории. А если брокер предоставит доступ к серверам, то и торговать можно с помощью этой же программы.

Работа начинается с того, что в меню File выбирается пункт New – открывается окно с условиями для входа и выхода из рынка. По умолчанию трейдер попадает в меню Продажа. В правой части экрана сосредоточены основные инструменты для анализа рынка.

При выборе, например, MA сперва нужно задать диапазон значений скользящей средней, а затем просто перетащить буквы МА в строку условий. При этом нужно не забыть выставить рабочий таймфрейм. Параметр Close также находится в правой части экрана (раздел Price), он выбирается и перетаскивается в строку условий, затем между параметрами МА и Close ставится знак больше или меньше.

Аналогичным образом указываются условия для выхода из позиции. После этого трейдер имеет возможность тут же протестировать и оптимизировать получившийся советник (для этого и указывался диапазон значений МА). Эта программа для создания советников форекс позволяет использовать созданный советник в mt4.

Создание советников в автоматическом режиме

Hlaiman EA Generator – попытка полностью автоматизировать процесс создания советников. Принцип работы в корне отличается от описанных выше программных комплексов. Если в остальных программных продуктах основную часть работы делал трейдер – то есть вручную указывал параметры будущего робота, то Hlaiman сам «пишет алгоритм» советника. Работает эта программа с терминалом МТ4.

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

Тем не менее, это не искусственный интеллект, так что и здесь есть некоторые ограничения:

  • во-первых, нельзя произвольно расставить стрелки и надеяться на получение адекватного советника. Каждая стрелка должна стоять на графике в точном соответствии с правилами стратегии, которую нужно автоматизировать;
  • во-вторых, существует прямая зависимость между числом отмеченных сделок и успешность советника. Нужно отметить на графике хотя бы 200 сделок (по 100 в каждую сторону).

После этого остается только нажать кнопку запуска «MakeAlgorithm» и получить готовый советник. Подход к реализации написания советников выглядит интересным, но эта программа для создания советников форекс отсутствует в свободном доступе, так что сказать что-либо конкретное о ее адекватности сложно.

Подведение итогов

В наши дни процесс создания советников значительно упростился, теперь для этого даже не нужны глубокие познания в mql4, достаточно базовых знаний. К тому же сам процесс стал более наглядным, процесс создания советника можно сравнить с построением блок-схемы.

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

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

Программирование форекс-роботов без знания языка MQL4

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

Конечно, знание языка программирования MQL версий 4 или 5 – это значительный шаг вперед для трейдера. Язык программирования позволяет создать собственный индикатор технического анализа, написать скрипт или торговый советник. А преимущества автоматической торговли общеизвестны – это и отсутствие влияния эмоций, и большее количество свободного времени. В этой статье мы рассмотрим вопросы и различные подходы к программированию торговых роботов:

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

Создание программных кодов

Я веду этот блог уже более 6 лет. Все это время я регулярно публикую отчеты о результатах моих инвестиций. Сейчас публичный инвестпортфель составляет более 1 000 000 рублей.

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

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

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

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

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

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

Помимо встроенного редактора МТ4 существует еще множество платформ для программирования советников с использованием языка С++. Например, платформы WealtLab, StockSharp и TSLab обеспечивают реализацию сразу всех этапов создания экспертов, включая их тестирование.

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

Платформа TSLab представляет собой визуальный редактор, собирающий торговый советник из функциональных блоков. Блоки написаны на языке С#, но их код в процессе программирования скрыт от пользователя. Существует и возможность использования языка C# и комбинирования программирования с визуальным редактором. Так можно дописывать отсутствующие в стандартном наборе элементы.

Промежуточной по функционалу, между платформами StockSharp и TSLab является платформа WealtLab. Она имеет визуальный редактор, правда, не очень хорошо развитый, и возможность использования языка программирования. Достоинством является отличный тестер стратегий.

Модификация советника

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

Программы для создания эксперта

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

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

Программа Gordago Forex Optimizer разработана с функционалом, приближенным к торговой платформе. Помимо создания советника она позволяет тестировать разработку на истории, а так же осуществлять с ее помощью торговлю, в случае наличия доступа к торговым серверам. Работа с программой интуитивно понятна – начало работы начинается с задания условий входа в рынок и выхода из него, задания инструментов анализа рынка. Функционал программы позволяет использовать разработанные эксперты в МТ4.

Полностью в автоматическом режиме эксперты создаются в программе Hlaiman EA Generator. Программа работает с торговой платформой МТ4. Для создания эксперта необходимо добавить на график желаемые инструменты технического анализа и нанести на график стрелки, указывающие места и направления входа в рынок, где осуществил бы вход сам трейдер. После этого программа самостоятельно просчитывает заданные условия входа и разрабатывает алгоритм робота. При этом качество отработки условий входа зависит от качества и количества заданных точек – они должны расставляться строго в соответствии с разработанной стратегией и таких точек должно быть нанесено максимальное количество. К сожалению, программа отсутствует в свободном доступе, что не позволяет провести тестирование созданных с ее помощью советников.

Заключение

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

Traders //

    Opentraders — это независимое сообщество, создаваемое трейдерами и для трейдеров. Присоединяйтесь, нам по пути!
  • Войти
  • Регистрация
AM2
Андрей

Группа «Программирование на MQL»

Обсуждаем здесь вопросы разработки экспертов, делимся опытом, выкладываем уроки.

Внимание! Если Вы хотите заказать советник, то Вам в группу «Заказы на разработку советников»

Лучшее от AM2

Как написать простейший советник на MQL4?

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

Для начала сформулируем правила открытия и закрытия позиций.

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

Чтобы облегчить задачу написания эксперта воспользуемся кодом советника Moving Average.mq4 из стандартной библиотеки MetaTrader 4.

Немного изменим шапку эксперта и укажем свои внешние переменные:

Так как советник у нас простейший убираем из кода функции LotsOptimized() для расчета лота и CheckForClose() предназначенную для закрытия позиций при определенном условии.

Далее запишем значения необходимых индикаторов и условия открытия позиций в функции CheckForOpen():

И в завершение нашего задания подкорректируем содержание функции start():

Вот и весь эксперт!

Удачи вам и больших профитов уважаемые трейдеры и программисты!

Тема: учимся писать советника

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

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

Очень классная мысль такую тему расписать. Хотел бы очень научится писать советники. А не лучше начать вообще со всяких возможных значений параметров, точней всяких переменных и констант. или как там, или это не важно?

человеку не знакомому с программированием пречисление только типов переменных покажется нудным (не говоря уже о структуре программы и функциях), поэтому я все буду обьяснять по ходу дела

хмм. я когда-то учил программирование в школе, так я не представляю как там с переменными. Ну вот давайте допустим разберем самый простой момент. Открываем сделку на пересечении двух МА с заданным периодом. =) Давайте учиться, я только рад)))

открываем MetaEditor (желтый значек в терминале, рядом с кнопкой советники), там файл ___ новый , в выпавшем меню выбираем эксперт , потом вписываем название и нажимаем ок . если все сделали правильно то вы должны увидеть начальный код
//+——————————————————————+
//| учебный.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| |
//+——————————————————————+
#property copyright «Copyright © 2011, MetaQuotes Software Corp.»
#property link

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

int start() когда в терминал приходит новый тик программа начинается именно с этой строки
<
//—-
почти весь прграммный код у нас будет находиться внутри значков отмеченных красным цветом
//—-
return(0);
>
//+——————————————————————+

первое что необходимо сделать это обьявить переменную . переменная это ячейка памяти в которой будет храниться информация , наглядно ее можно представить в виде коробочки в которую кладутся буквы, цифры , символы. есть несколько типов переменных в зависимости от того какие данные мы будем записывать . переменная обьявляется так :
int signal=0;
где int — это тип переменной в которой будут содержаться только целые числа (есть еще double — дробные , string — текст bool — значения «да» или «нет», datetime — время )
signal — это назавние переменной , его придумываем сами , желательно не очень длинные
=0 — это значение которое записывается в переменную при ее создании
; — означает конец команды
дальше нам в зависимости от положения скользяших средних нужно записать в эту ячейку (переменную), либо значение 1(при сигнале на повышение) , либо значение (-1) (при сигнале на понижение). 0 будет означать что сигнала нет
в коде это будет выглядеть так:
if (
iMA(symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE, 0) >iMA(symbol(), period(),60, 0 ,MODE_SMA,PRICE_CLOSE, 0)&&
iMA(symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE,1) iMA(symbol(), period(),60, 0 ,MODE_SMA,PRICE_CLOSE, 1)
)
<
signal=(-1);
>
теперь что это все обозначает:
if — это команда условия (в переводе «если») в чистом виде она выглядит так
if( )
< >
выполняется она следующим образом: если то что записанно внутри круглых скобок — правда, то выполняется то что записанно внутри фигурных скобок , если нет , то выполнение программы продолжится с команды стоящей за фигурными скобками.
iMA (symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE, 0) — это ячейка памяти в которой хранятся данные об индикаторе MA
где :
symbol() — означает что индикатор расчитывается для пары на которой стоит советник , вместо symbol() можно написать например «EURUSD» тогда в ячейке всегда будут содержаться данные о значании индикатора по паре евро/усд (независимо от того на какой паре работает советник)
period() — означает что индикатор расчитывается для того периода графика , на котором стоит советник если например у нас стоит Н1 то индикатор будет расчитываться для часавого , если мы на графике переключимся на другой период то индикатор будет расчиываться для него , я рекомендую привязывать расчеты к конкретному периоду, для этого вместо period() , можно написать количество минут для одного бара нужного периода , например если мы хотим что бы индикатор всегда расчитывался для пятьнадцатиминутки вместо period() записываем 15, для Н4 записываем 240
далее 30, 0 ,MODE_SMA,PRICE_CLOSE это настройки индикатора 30 — период усреднения, 0 — сдвиг, MODE_SMA — метод , PRICE_CLOSE к какой цене применять .
0 — означает что мы получаем данные об индикаторе именно с текущего бара , если поставить 1 то будет расчитываться значение прошлого бара 2 позапрошлого и т.д.
теперь переводим на человеческий язык то что записанно кодом
если
(
текушее значение ма с периодом 30 больше текушего занчения ма с периодом 60 и(в коде «и» пишется &&)
прошлое значение ма с периодом 30 меньше прошлого значения ма с периодом 60
)
<
записываем в переменную signal значение 1
>
теперь у нас при пересечении скользящих средних (быстрая пресекает медленую снизу вверх) в ячейку signal будет записываться значение 1
анологично с сигналом на понижение .
если есть вопросы , задавайте

Сложно блин =) нужно вчитываться несколько раз, чтобы что-то понять)))

могу скинуть учебник по которому сам учился , может там понятней будет

Как написать Форекс советник самому? Правильные советы начинающим

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

И если честно, сделать это по сути не сложно, при том, что преимущества написания собственного робота очевидны:

  • во-первых, это бесплатно,
  • а во-вторых, можно и дальше создавать собственные советники, ведь навыки никуда не пропадут.

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

Итак, какой же совет дают начинающим создателям роботов опытные трейдеры?

Как написать Форекс советник самому? Выбираем стратегию для старта

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

РЕКОМЕНДУЕМ: ТОП 2 ЛУЧШИХ БРОКЕРА НА 2020 ГОД

Не требуется верификация! Фиксированные выплаты! обзор/отзывы | НАЧАТЬ С 10$ 2014 год. Дарит безрисковую сделку. обзор/отзывы | ИНВЕСТИРОВАТЬ С 5$

Если Вы задумались над тем, как написать Форекс советник самому, то специалисты дают такие советы:

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

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

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

Как написать Форекс советник используя программирование в MQL4 и MQL5?

Чтобы написать Форекс советник самому и в дальнейшем использовать его бесплатно, Вам необходимо обладать базовыми знаниями языка программирования. К таким языкам относятся MQL4 и MQL5.

Версия MQL4 — является встроенным языком программирования, разработанным «MetaQuotes Software Corp». Кстати, на основе данного языка и создается большинство торгово-информационных терминалов. С помощью этого языка можно писать собственных экспертов (Expert Advisors), которые автоматизируют процесс торговли и наилучшим образом подходят для реализации своих стратегий. Помимо этого при помощи MQL4, Вы можете создавать «под себя» библиотеки функций, различные скрипты и технические индикаторы.

Лучшие брокеры без обмана
  • Evotrade
    ☆☆☆☆☆
    ★★★★★
    Evotrade

    Бонусы для новых трейдеров до 5000$!

  • BINARIUM
    ☆☆☆☆☆
    ★★★★★
    BINARIUM

    Лучший брокер по бинарным опционам. Огромный раздел по обучению.

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

MQL5, также является языком программирования, только более современным и более высокого уровня. Синтаксис данного языка, имеет максимальное приближение к «С++», что дает возможность создавать программное обеспечение в стиле ООП (объектно-ориентированного программирования).

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

Также, для тех, кто задается вопросом, как написать Форекс советник самому, во многом поможет справочный материал, размещаемый непосредственно в торговом терминале, вызываемый нажатием клавиши «F1», а также справки редактора «MetaQuotes Language». Для их вызова в терминале нажмите клавишу «F4», а затем «F1».

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

ЛУЧШИЕ ФОРЕКС БРОКЕРЫ, ПО ДАННЫМ РОССИЙСКОГО РЕЙТИНГА НА 2020 ГОД:

ТОП 2 ЛУЧШИХ БРОКЕРА БИНАРНЫХ ОПЦИОНОВ 2020 года:

Упростить для себя задачу написания советника можно несколькими способами. К примеру, использованием уже готовых блоков (библиотек функций), которые уже были созданы другими более опытными трейдерами или программистами. Еще один способ, это применение специализированного программного обеспечения. Здесь используются альтернативные программы, которые упрощают непосредственно процесс написания роботов, что-то вроде Мастера настроек. Такие программы, помогающие создавать Форекс советник самому, даже без знания основ языков программирования, также можно скачать в Интернете бесплатно.

Этап тестирования, как обязательный пункт после написания советника

Итак, как написать или создать Форекс советник самому, Вы уже поняли. Сделать это можно при помощи языков программирования либо используя специальные программы. Но здесь возникает другой, пожалуй, самый важный вопрос:

«А будет ли Ваш советник работать правильно?». Ведь торговые терминалы не оснащены ни отладчиками программ, ни баггерами (debugger).

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

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

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

РЕКОМЕНДУЕМ ПРОВЕРЕННЫХ ФОРЕКС БРОКЕРОВ, РАБОТАЮЩИХ ПОРЯДКА 20 ЛЕТ!

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

ОБЯЗАТЕЛЬНО ПОСМОТРИТЕ:
Как написать Forex советник на основе индикатора?

MQL для тебя

MQL для чайников, программирование на MQL4, MQL5

Язык MQL — Урок 6 «эксперт Hedge Hog»

Как я и обещал, сегодня мы займемся написанием эксперта Hedge Hog на языке MQL, но сначала давайте объединим уже полученные ранее знания и напишем собственные функции на MQL4.

Сразу возникает вопрос: «Что это нам даст?»

Ну во первых это уменьшит количество строк в нашем советнике для Metatrader 4. Во вторых можно не тратить время при написании следующих советников форекс, а просто использовать ранее написанные функции в новом коде.

Функции MQL4 — это кирпичики из которых можно легко сложить рабочий эксперт MT4, не отвлекаясь каждый раз на одну и ту-же работу.

Расчет лота в MT4, поместим в функцию — «Функция расчета лота» :
double GetLot( int Risk)
< double Free = AccountFreeMargin ();
double One_Lot = MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
double Min_Lot = MarketInfo ( Symbol (), MODE_MINLOT );
double Max_Lot = MarketInfo ( Symbol (), MODE_MAXLOT );
double Step = MarketInfo ( Symbol (), MODE_LOTSTEP );
double Lot = MathFloor (Free*Risk/100/One_Lot/Step)*Step;
if (Lot if (Lot>Max_Lot) Lot=Max_Lot;
if (Lot*One_Lot>Free) return (0.0);
return (Lot);>

Обратите внимание на строчку: if (Lot*One_Lot>Free) return (0.0);

В ней мы производим проверку на достаточность средств на торговом счету форекс. И если их окажется недостаточно, возвращаем 0.

Для открытия ордера Metatrader 4, при помощи советника форекс, напишем функцию — «Функция открытия ордера» :
int NewOrder( int Cmd, double Lot)
< double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
while (! IsTradeAllowed ()) Sleep (100);
if (Cmd== OP_BUY )
if (TakeProfit>0) TP= Ask +TakeProfit* Point ;
if (StopLoss>0) SL= Ask -StopLoss* Point ;>
if (Cmd== OP_SELL )
if (TakeProfit>0) TP= Bid -TakeProfit* Point ;
if (StopLoss>0) SL= Bid +StopLoss* Point ;>
int tic= OrderSend ( Symbol (),Cmd,Lot,PR,3,SL,TP,»«,0,0, CLR_NONE );
if (tic Print ( »Ошибка открытия ордера: « , GetLastError ());
return (tic);>

В этой функции на языке MQL мы использовали новые для нас команды MQL4:

Print () — Выдать сообщение в журнал.

GetLastError () — Номер последней ошибки.

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

Функция start() нашего скрипта сильно упростится:

double Lot=GetLot(MaxRisk);
if (Lot==0) < Alert ( »Недостаточно средств!" ); return (0);>
RefreshRates ();
if (Buy) NewOrder( OP_BUY ,Lot);
if (Sell) NewOrder( OP_SELL ,Lot);

Новая функция RefreshRates () — функция обновления данных в предопределенных переменных ( Ask , Bid и т.д.) При запуске нашего скрипта в окне терминала Metatrader появляется окошко с параметрами. Пока мы их изменяем цена может изменится. Вот мы и обновим ее значение в переменных.

Теперь займемся советником Hedge Hog.

На первый взгляд — все просто. Нужно открывать каждый торговый день ан форекс, с понедельника по пятницу в 00:00 по GMT, два рыночных ордера в противоположные стороны (один на покупку, второй на продажу) без стоп-лоссов и с тейк-профитами в 14 пунктов равным объемом по валютной паре EURUSD.

Итак, для создания советника MT4, запускаем мастер в редакторе MetaEditor:

выбираем «Советник» и нажимаем «Далее>» (далее…)

Конструктор Советников

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

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

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

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

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

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

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

Конструктор советников Forex Strategy Builder Pro

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

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

Изначально программа запустится на английском языке, однако настройки очень легко сменить на русский язык. Что бы приступить сразу к созданию советника в конструкторе нажмите на блок «Новая стратегия». Перед вами появится рабочая область:

Рабочую область можно условно разделить на три блока, а именно «Входные параметры», «Стратегия», «Статистика аккаунта». В блоке «Входные параметры» вы можете увидеть валютную пару на которой будет проводится тест, временной период, временные рамки, источник котировок, спред, своп, комиссия а так же метод интерпретации теста.

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

Самым важным для нас как пользователей является блок «Стратегия», поскольку именно в нем происходит создание будущего советника. Условно этот блок разбит на три раздела, а именно «Свойства стратегии», «Вход в рынок», «Закрытие сделок».

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

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

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

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

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

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

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

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

Как оказалось, предложенная нами торговая стратегия дала прибыль по двум валютным парам, а именно по евро/доллар и по фунт/доллар.

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

Результат вашей работы можно сохранить как в виде советника для МТ4 так и для МТ5, нажав на кнопку «Экспорт советника».

Программирование форекс-роботов без знания языка MQL4

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

Конечно, знание языка программирования MQL версий 4 или 5 – это значительный шаг вперед для трейдера. Язык программирования позволяет создать собственный индикатор технического анализа, написать скрипт или торговый советник. А преимущества автоматической торговли общеизвестны – это и отсутствие влияния эмоций, и большее количество свободного времени. В этой статье мы рассмотрим вопросы и различные подходы к программированию торговых роботов:

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

Создание программных кодов

Я веду этот блог уже более 6 лет. Все это время я регулярно публикую отчеты о результатах моих инвестиций. Сейчас публичный инвестпортфель составляет более 1 000 000 рублей.

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

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

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

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

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

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

Помимо встроенного редактора МТ4 существует еще множество платформ для программирования советников с использованием языка С++. Например, платформы WealtLab, StockSharp и TSLab обеспечивают реализацию сразу всех этапов создания экспертов, включая их тестирование.

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

Платформа TSLab представляет собой визуальный редактор, собирающий торговый советник из функциональных блоков. Блоки написаны на языке С#, но их код в процессе программирования скрыт от пользователя. Существует и возможность использования языка C# и комбинирования программирования с визуальным редактором. Так можно дописывать отсутствующие в стандартном наборе элементы.

Промежуточной по функционалу, между платформами StockSharp и TSLab является платформа WealtLab. Она имеет визуальный редактор, правда, не очень хорошо развитый, и возможность использования языка программирования. Достоинством является отличный тестер стратегий.

Модификация советника

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

Программы для создания эксперта

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

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

Программа Gordago Forex Optimizer разработана с функционалом, приближенным к торговой платформе. Помимо создания советника она позволяет тестировать разработку на истории, а так же осуществлять с ее помощью торговлю, в случае наличия доступа к торговым серверам. Работа с программой интуитивно понятна – начало работы начинается с задания условий входа в рынок и выхода из него, задания инструментов анализа рынка. Функционал программы позволяет использовать разработанные эксперты в МТ4.

Полностью в автоматическом режиме эксперты создаются в программе Hlaiman EA Generator. Программа работает с торговой платформой МТ4. Для создания эксперта необходимо добавить на график желаемые инструменты технического анализа и нанести на график стрелки, указывающие места и направления входа в рынок, где осуществил бы вход сам трейдер. После этого программа самостоятельно просчитывает заданные условия входа и разрабатывает алгоритм робота. При этом качество отработки условий входа зависит от качества и количества заданных точек – они должны расставляться строго в соответствии с разработанной стратегией и таких точек должно быть нанесено максимальное количество. К сожалению, программа отсутствует в свободном доступе, что не позволяет провести тестирование созданных с ее помощью советников.

Заключение

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

Написание советников форекс и использование их в торговле

Опубликовано 09 Дек 2014 автор: Fxprofit 1 725 пока нет комментариев.

Здравствуйте, сегодня представляем вам актуальный видео-курс 2014 года. Этот курс всего один в руинтернете по написанию советников форекс, реальное обучение до итога, курс который обучит Всех вас делать высокопрофессиональные Forex Советники с нулевой отметки.

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

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

Их все Лично вы получите в наборе с файлами этого занятия.

Вы разложите по крупицам и осмыслите какие же наиболее значимые механизмы и модули воздействуют на работоспособность экспертов forex.

Зрители получат единственную из продвинутых ТС, в соответствии с какою будет создаваться Форекс советник. Представленную систему авторы целиком автоматизируют и трансформируют в высококлассного эксперта форекс.
Кроме этого. В течение курса авторы создали отнюдь не 1, а аж 5 советников форекс!
Абсолютно все 5 экспертов forex Вы получите в наборе с этим курсом.

Данный курс — это всего один прикладной обучающий труд по написанию советников форекс в сети интернет вплоть до результата, который подговорит вас к такому типу торговли на рынке forex как скальпинг, употребляя все наиболее продвинутые схемы и программы для абсолютной автоматики торгов.Треннинг выполняет Валентин Василенко- компетентный разработчик программ с практичным опытом работы в программировании 26 лет и 7 лет из коих он занят созданием высококлассных forex советников для своей торговли.

Скачав данный Видео курс «Мастерская forex роботов 2.0»

1.коллекция из пяти Форекс советников.

2.разложенные по полочкам видеоматериалы и рукописные методические материалы по настройке экспертов форекс.

3.два индивидуальных занятия, на коих получите обучение результативно использовать Форекс роботов и получите ответы на все вопросы.

4.учебу с нулевой отметки по созданию форекс скальперов: двадцать уроков по полтора рабочих часа.

5.Полный анализ программного код всех 5 экспертов и тонкости его усовершенствования и апдейта.

Описание советников форекс входящих в комплект:

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

Forex NEWS PLUS
Проф. эксперт для торгов на новыстных событиях. Как раз во отрезок времени, когда на рынке выходят новости настает очень «вкусная» пора для Форекс трговли. И конкретно в период показа основных новостей на экономическом рынке завязываются наиболее большие, но и довольно небезопасные движения. Именно в такой отрезок на экономическом рынке сливаются большая часть начинающих, так как. стремятся поймать такие вкусные движухи. Такой эксперт позволит вам подчинять всякое новостное, и подобрать весь профит за мгновения как будто это совершают проф Игроки и банки, устраивающие такое шоу на рынке.

Рекомендуемый брокер для данного советника СТРОГО этот

Forex Spider.
Высококлассное аппарат для полуавтоматического трейдинга и скальпирования. Вы находите направление, в какую из сторон открыть позицию buy или sell, ставите тот доход, какой желаете взять, далее советник ведет торговлю независимо от вас. Эксперт применяет Общематематический метод сопровождения открытых сделок в результате этого и накапливает необходимую для вас прибыль сам, после прикрывает набранную кипу заказов. Этот инструмент прекрасно подойдет для становления вас как трейдера.

Советник для торговли на новостях форекс ForexNews
Всецело автономный доходный эксперт для отработки новостей. Функционирует в авто-режиме в границах утвержденного времени. Зараз имеет возможность открывать 1 сделку в любом направлении. Содержит удобный порядок опций, что даёт возможность подстроить этого советника под всякую фазу рынка. Функционирует только одерами buy stop и sell stop. Обеспечивает сопровождение открытых позиций трейлинг стопом, закрытие сделок по стопу и тейку.

Если Вы не видите ссылку на скачивание материала — отключите блокиратор рекламы и добавьте наш сайт в список исключений. Если Вы против рекламы на нашем сайте — покупайте контент напрямую у авторов.

Еще БОЛЬШЕ приватной информации на нашем форуме . Зарегистрируйся и качай бесплатно или учавствуй в форекс складчинах на эксклюзивное обучение , совместную покупку роботов форекс и ММВБ . Делись мнением с профессиональными трейдерами — здесь

если ссылка не рабочая:

PS: (надеюсь, что команда нашего портала заслужила немного благодарности за то, что мы вам помогаем экономить свои средства, тратя их не на покупку инфопродктов )А лучшая благодарность для нас это популяризация нашего блога. Поделитесь о нас в социальных сетях, расскажите друзьям-это станет для нас лучшим стимулом для развития и поддержания проекта.Кнопочки для репоста ниже …

PPS:Пишите в комментариях принес ли пользу представленный на нашем портале материал и что еще вы хотели бы увидеть на страницах сайта.

Если есть желание и возможности помочь проекту Вас сюда

Трейдер, программист MT4, MT5

Советники, индикаторы, обзоры стратегий, идеи, торговые прогнозы

Заказать советник

Советники для MT4 на заказ

Если Вы сейчас читаете этот текст, значит, Вы имеете некоторое отношение к рынку Forex и с большой долей вероятности являетесь практикующим трейдером.

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

Чтобы компьютер торговал сам, ему требуется специальная программа, которая бы могла самостоятельно заниматься торговлей в торговом терминале. Такая программа называется советником или торговым экспертом (expert advisor). На жаргоне трейдеров советник может называться «сова» (сокращенное от «советник»), торговый робот и пр.

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

Являясь опытным программистом, я предлагаю Вам воспользоваться моими услугами по автоматизации Ваших торговых идей. Я уже достаточно давно пишу советники для MT4 как на заказ, так и занимаюсь поиском «грааля» для себя.

Цена работы зависит от сложности Вашего задания. Могу сказать одно — по сравнению с аналогичными предложениями на данном «рынке труда», я делаю советники недорого.

Обо мне:

На рынке с 2006 года. Реальные счета, ПАММ-счета, инвестирование в ПАММы. Программирую на mql4 около 4 лет. Чуть менее на mql5. Мои личные работы успешно продаются в Маркете . Мной выполнено уже более 300 заказов на mql4-mql5.
=====================

Детали:

  • срок разработки — 1-3 дня;
  • в срок разработки не входит срок тестирования и отладки, который по времени зависит в основном от Заказчика;
  • перед выдачей Заказчику советник гарантированно тестируется на отработку положений тех.задания.

Гарантии

  • абсолютная конфиденциальность;
  • при невыполнении договорённостей с моей стороны сумма предоплаты возвращается;
  • длительное сопровождение (модернизация, бесплатное исправление «багов») —> .

Преимущества:

  • предоставляю исходный код (.mq4, .mq5);
  • максимальная гибкость в настройках параметров (настраивается всё);
  • советник готов работать на реале (также на демо и в тестере);
  • советник корректно отрабатывает перезапуск, не пропускает сигналы;
  • советник «видит» только свои ордера, не привязан к инструменту и таймфрейму графика;
  • работаю один, без команды и не посредничаю, поэтому несу личную ответственность по всем своим гарантиям;
  • Стоимость работы от $50 (все индивидуально). Гибкие способы оплаты.

Чтобы заказать советник, пожалуйста, свяжитесь со мной по одному из этих контактов:

Почта: drivermql@mail.ru
Скайп: drivermql

6 комментариев к «Заказать советник»

Заказывал советник. По сравнению с другими программистами, Евгений не «загнул» цену. РАботой очень доволен, все работает как я и планировал. Всем советую!

Отличная работа! Спасибо за советник!

Сделали советник за сутки, цена адекватная. Теперь обращаюсь только сюда.

Рекомендую обращаться именно к Евгению как к высококлассному специалисту в части программирования торговых экспертов для терминала MT4. Мои заказы выполнены по высшему разряду!

Просто красавчик, за день сделал заказ, все работает как заказанно.

Огромное спасибо и удачи!

Шоб усе такими булы))))

Привет. Мени потрибен советник по индикатору.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

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

Время на чтение: 7 минут

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Высокодоходные инвестиции, заработок на форекс, инвестирование в ПАММ, мониторинг проектов, обзоры, отзывы, форекс индикаторы и советники, MQL программирование

Как написать советник для MT4

Как написать индикатор для MT4

Мартингейл в торговле на форекс

Усреднение на форекс

Myfxbook – возможно ли подделать мониторинг?

Паттерны (графические модели) на Форекс: треугольник, вымпел, флаг

Прибыльные советники Форекс – это миф или реальность?

Возможен ли заработок на Форекс с помощью советников?

Как выставить лимитник внутри спреда на ECN-счетах

Хайп проект: признаки, легенда, организация работы

Как выбрать хайп проект

Десять простых советов начинающему интернет-инвестору

Вклады в микрофинансовые организации

Панель управления ордерами в МТ4

Тестер ручных стратегий для МТ4

Разработка прибыльного усредняющего советника для MT4

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

Сглаженный индикатор CCI c точками входа

Индикатор спреда

GKFX обсуждение работы и условий брокера

Кредитное плечо на форекс

Что показывает загрузка депозита

Закон о регулировании внебиржевого рынка Форекс в России

Возможно ли гарантировано зарабатывать на форекс?

Опционный бинарный Гамбит от Емели

Как написать советник для MT4 по японским свечным моделям

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

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

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

  • определение точек входа и выхода;
  • управление рисками;
  • управление деньгами.

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

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

А теперь давайте посмотрим на эти самые свечные модели – утреннюю и вечернюю звезду. Если вы до настоящего времени не прочли книгу Стива Нисона “За гранью японских свечей”, то рекомендую это сделать. Весьма полезно в образовательных целях. Итак, графически эти модели представляются так:

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

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

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

Тем не менее, Стив Нисон особо отмечает, что слом тренда на этих моделях наиболее вероятен в том случае, когда модели максимально соответствуют классическому описанию.

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

Думаю, теории вполне достаточно. Приступим к практической части, в которой и ответим на главный вопрос: “Как написать советник для MT4 по свечным моделям?”. Давайте, все-таки формализует нашу торговую систему. Для начала определимся с условиями открытия длинных (покупок) и коротких (продаж) позиций, т.е. опишем точки входа:

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

Падающий и растущий рынки будем определять исходя из направления трендовой прямой, проходящей через ценовые бары с индексами от некоторой, заданной параметром depth глубины до текущего бара. Параметры этой трендовой прямой (коэффициент наклона – k и смещение – b) будем определять методом наименьших квадратов. Именно по знаку коэффициента k определяется вид тренда: при k>0 – тренд восходящий, k 0 (стремящемся к нулю) – флэт. По значению модуля коэффициента k будем судить о силе тренда, сравнивая его с определенным параметром angle . Таким образом, тренд будем считать восходящим и достаточной силы при условии, если k>=angle, нисходящим и достаточной силы, при условии, если k tp , которым будем задавать расстояние от уровня открытия позиции до уровня фиксации прибыли. Этот же параметр будет определять и режим фиксации прибыли профит-ордером:
— при tp, отличном от нуля, профит (в пунктах) будет величиной постоянной для каждой открываемой позиции и не будет зависеть от текущей ситуации на рынке;
— при tp=0 цель по прибыли будет величиной переменной для каждой открываемой позиции. Уровень профит-ордера в данном случае будет определятся с учетом предыдущего “размаха” ценового движения и исходя из предопределенного параметром fibo_level уровня Фибоначчи: считаем, что свечные модели утренняя и вечерняя звезда образуют новый локальный экстремум (т.е. в центральной точке этих моделей происходит излом предыдущего тренда), и строим уровни Фибоначчи для пары соседних экстремумов, одним из которых является предшествующий свечным моделям соответствующий локальный экстремум, а другим – вновь образованный данными свечными моделями.

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

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

    Это расстояние-фильтр будем определять в параметре sl_filter .

  • Введем возможность перемещения уровня стопа, следующего по определенному правилу в сторону прибыльного рыночного движения. Режим перемещения стопа будем включать либо выключать параметром tral .
  • Определимся с правилами управления деньгами торгового счета:

    • Условимся, что мы можем изменять объем каждой вновь открываемой позиции по определенному правилу, в зависимости от наличия свободных средств торгового счета. Например, условимся, что в номинальном режиме объем сделки вычисляется исходя из того, что на каждую 1000 дол. свободных средств торгового счета приходится объем сделки равный 0.01 лот. Введя некий коэффициент, это соотношение можно изменять как в сторону увеличения, так и в сторону уменьшения. Назовем этот коэффициент параметром Risk .
    • Введем правило Мартингейл, при котором в случае закрытия позиции с убытком, следующая позиция будет открываться с увеличенным на заданный коэффициент объемом. Назовем этот коэффициент параметром KLot .

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

    Определим параметры и переменные нашего будущего советника и опишем их, чтобы не забыть, как говорится:

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

    • ценой открытия и закрытия;
    • максимальной и минимальной ценой;
    • видом свечи: бычья, медвежья либо доджи;
    • размером тела и теней,

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

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

    И инициализируем эти переменные:

    Вы обратили внимание, что первой свече соответствует 3 индекс таймсерии, а третьей свече соответствует 1 индекс таймсерии?

    Вдумчиво прочтя описание свечных моделей утренняя звезда и вечерняя звезда, вы, наверняка, задались вопросом о том, как определить, что тело первой свечи модели достаточно большое, а тело второй свечи модели достаточно маленькое, чтобы признать модель именно той, за которую она “себя выдает”. Большая и маленькая, простите, это сколько в “граммах”?

    Предлагаю следующий подход. Мы берем некую выборку последних свечей в количестве depth “штук”. Определяем “средний арифметический размер тела”. Так вот, большое тело – это то тело, отношение которого к среднему телу дает коэффициент, больший или равный некого заданного коэффициента k1 (при этом k1 должен быть заведомо больше 1). Соответственно, маленькое тело – это то тело, отношение которого к среднему телу дает коэффициент, меньший или равный некого заданного коэффициента k2 (при этом k2 должен быть заведомо меньше 1). Задав эти самые коэффициенты k1 и k2, реализуем только что сказанное в коде:

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

    • Проверка на “вечернюю звезду”
    • Проверка на “утреннюю звезду”

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

    Теперь получим параметры трендовой линии по методу наименьших квадратов. Параметры будем хранить в массиве k, размерность которого будет равна 2, при этом k[0] содержит угловой коэффициент прямой, а k[1] – действительное число, определяющее смещение прямой относительно оси y (в нашем случае в роли оси у-цена финансового инструмента)

    В целях удобства (работа с большими числами) переменная angle_k связана с расчетным угловым коэффициентом трендовой линии k[0] посредством предопределенной переменной Point (pазмер пункта текущего инструмента в валюте котировки):

    А ведь неплохо было бы сделать так, чтобы мы могли увидеть на ценовом графике эту саму трендовую линию, параметры которой вычислили методом наименьших квадратов. Здесь мы перейдем на ступень выше в освоении MQL4 и “победим” графические объекты для советника на МТ4. Давайте напишем процедуру, которая будет строить на графике произвольную прямую, проходящую через две заданные точки. Эта прямая может иметь произвольный цвет, стиль и толщину линии, т.е. эти, как и другие параметры процедуры, мы будем задавать:

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

    где ticket – это тикет номер открытого ордера, а ink – цвет трендовой линии. При этом линия сплошная (STYLE_SOLID) и имеет удвоенную толщину (2).

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

    Как видите, для нахождения локальных минимумов и максимумов используется довольно популярный индикатор ZigZag, включенный в стандартный “комплект поставки” терминала MT4. Данный индикатор относится к категории индикаторов – “перерисовщиков”, но данное обстоятельство все равно не будет нам сильно мешать, если написать советник по японским свечным моделям утренняя и вечерняя звезда. Чтобы отыскать, например, предыдущий локальный минимум, следует обратиться к вышеуказанной функции local_extremum вот так:

    где 200 предельная глубина поиска, а 2 определяет, что ищем именно локальный минимум.

    Локальный максимум, соответственно, ищем вот таким вызовом функции:

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

    Теперь давайте реализуем в коде введенное нами правило Мартингейл, кстати, оно также относится к правилам управления деньгами торгового счета:

    Итак, мы задали все необходимые параметры нашей автоматической торговой системы (советника для МТ4), написали необходимые процедуры, а также реализовали в коде условия отыскания на свечном графике моделей утренняя звезда и вечерняя звезда, “закодили” правила торговой системы. Теперь, объединив все эти элементы в единое целое, дадим шанс “на жизнь” нашему советнику:

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

    • Во-первых, это параметр tp. Выше мы определили, что уровень профита (в пунктах) можно задавать самостоятельно. Так, при tp больше 0 за профит в пунктах принимается значение tp, т.е. оптимизируем советник по параметру tp, например, в диапазоне от 100 до 1000 пунктов с шагом 10 пунктов (пятизначные котировки). Если же tp равно 0, то советник сам будет управлять уровнем тейк профита, рассчитывая его для каждой открываемой позиции по “хитрому алгоритму” с использованием уровней Фибоначчи, о чем я подробно написал выше.
    • Во-вторых, в случае с “автоматическим” уровнем тейк профита (tp=0) оптимизации подлежит параметр fibo_level, определяющий именно тот уровень Фибоначчи, который будем являться уровнем тейк профита. Т.е. у нас есть одномерный массив fibo[]= <0.236, 0.382, 0.5, 0.618, 1.0, 1.618, 2.618, 4.236>(кстати, этот массив вы можете расширить, включив в него и другие фибо уровни), а параметр fibo_level определяет индекс элемента массива fibo, который и применяется в расчете тейк профита:

    Для длинных позиций (покупки по модели утренняя звезда) уровень тейк профита определяется из выражения: c2.low+(local_max-c2.low)*fibo[fibo_level].
    Для коротких позиций (продажи по модели вечерняя звезда) уровень тейк профита определяется из выражения: c2.high-(c2.high-local_min)*fibo[fibo_level]

    Очевидно, если советник будет работать на откатах, то уровень Фибоначчи следует “искать” где-то в пределах 0.236 – 0.618 (т.е. для нашего массива fibo оптимизация по fibo_level от 0 до 3 с шагом 1), если же будем “ловить” разворот, то, вероятно, уровень Фибоначчи следует “искать” за пределами 0.618 (т.е. для нашего массива fibo оптимизация по fibo_level от 3 до 7 с шагом 1).

  • В-третьих, это параметр k1, определяющий во сколько раз тело первой свечи моделей должно быть больше среднего тела, рассчитанного для выборки из последних свечей на заданную глубину. Вероятно, параметр k1 следует отыскивать где-то из диапазона от 1 до 4 с шагом 0.1.
  • В-четвертых, это параметр k2, определяющий во сколько раз тело второй свечи модели должно быть меньше среднего тела, рассчитанного для выборки из последних свечей на заданную глубину. Вероятно, в этом случае поиск следует проводить из диапазона от 0 до 0.5 с шагом 0.1
  • В-пятых, это параметр depth (глубина выборки свечей для определения среднего размера свечи и построения трендовой линии по МНК), на котором “завязано” много других параметров. Он определяет предел той самой “исторической глубины”, в которую заглядывает наш советник, учитывающий ее динамику в своих алгоритмах. Вероятно, что здесь стоит говорить о значениях параметра depth никак не меньших 30-50 свечей. Т.е. оптимизацию лучше проводить из значений, например, от 30 до 150 с шагом в 1.
  • В-шестых, это параметр angle, определяющий нижний порог силы тренда. Если сила тренда (коэффициент угла наклона трендовой прямой), рассчитанная алгоритмом советника, ниже параметра angle, то свечная модель игнорируется и сделка по ней не открывается.
  • Советник для МТ4 по свечным моделям написали, с параметрами определились. Осталось только оптимизировать параметры и тестировать на истории. А это будем делать в следующий раз.

    И вы знаете, у меня, честно говоря, есть предчувствие, что ничего хорошего из этой затеи не выйдет.

    Форекс и я. Forex — это просто! Вся информация как заработать на рынке.

    Блок создан для того, чтобы развеять все мифы, связанные с рынком Форекс и содержит всю необходимую информацию о том как начать торговать на рынке Forex и как прибыльно торговать. Советники, Роботы, Эксперты и много другое, что поможет автоматизировать торговлю и Вывести любого начинающего трейдера на новый профессиональный уровень.

    Trending: Bloggermint Blogger Template

    четверг, 10 мая 2012 г.

    Пишем советник для Forex. Написания советника для рынка Форекс в MQL4

    Do you like this story?

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

    Если Вы вдруг устанете, решите выпить чашечку чая или взять небольшой отпуск, то Вам придётся рассмотреть одну из следующих опций:
    Можно кого-нибудь нанять, чтобы он следил за терминалом и звонил Вам каждые 5 минут, чтобы рассказать, что происходит. Если этот человек профессионал, то Вы будете тратить на него всю свою прибыль. А если он новичок, то Вы потратете на него весь свой каптал.
    Вторая опция — автоматизировать свою торговлю.
    Именно для этого нужны советники — они же торговые эксперты — они же механические торговые системы (МТС).

    Примечание: не путать с роботами — далее я объясню почему.

    Можно сказать, что Советник — это программа, написанная на MQL4 (ведь мы изучаем MQL4, верно?), которая использует Ваши любимые индикаторы, торговые методы для автоматизации Ваших торгов.
    Он покупает, продаёт и модифицирует ордера за Вас.

    Сегодня я попробую подробно описать процесс написания советника для рынка Форекс в MQL4.

    Если Вы ещё не открыли свой MetaEditor, то пора бы это сделать. Затем выберите Файл->Создать (или просто нажмите CTRL+N).
    Появится помощник (как при создании индикатора).
    На этот раз надо выбрать пункт «Советник».

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

    1 — Имя. Название Вашего советника. Мы назовём его My_first_EA.
    2 — Автор. Имя автора. Введите какое либо имя.
    3 — Ссылка. Ссылка на Ваш сайт или e-mail.
    4 — Параметры:
    Это список внешних (extern) параметров. Это те параметры, которые пользователь сможет менять из окошка настроек советника.
    Для добавления нового параметра нажмите кнопку «Добавить». Нажатие этой конпки приведёт к появлению новой записи в списке внешних переменных. Каждая переменная имеет три поля:
    Имя: двойной щелчок по этому полю позволит Вам задать имя (идентификатор) переменной.
    Тип: двойной щелчок по этому полю позволит Вам задать тип переменной.
    Начальное значение: двойной щелчок по этому полю позволит Вам задать начальное значение переменной.
    Последнее поле является опциональным, что означает, что его можно оставить пустым.

    В нашем случае, мы добавим три переменные:

    Теперь нажмите кнопку «Finish». MetaEditor перенесёт Вас к коду, подготовленному помощником и сохранит его в файл My_first_EA.mq4 в папке MetaTrader4experts.

    Замечание: торговых советников надо класть в папку MetaTrader4 — experts, а индикаторы — в папку MetaTrader4 — experts — indicators, иначе они не будут работать.

    Помощник подготовил следующий код:

    int Crossed (double line1 , double line2)
    <
    static int last_direction = 0;
    static int current_dirction = 0;

    if(line1>line2)current_dirction = 1; //up
    if(line1

    if(current_dirction != last_direction) //changed
    <
    last_direction = current_dirction;
    return (last_direction);
    >

    int start()
    <
    //—-
    int cnt, ticket, total;
    double shortEma, longEma;

    if(Bars 0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«BUY order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening BUY order : «,GetLastError());
    return(0);
    >

    if(isCrossed == 2)
    <
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,
    Bid-TakeProfit*Point,»My EA»,12345,0,Red);
    if(ticket>0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«SELL order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening SELL order : «,GetLastError());
    return(0);

    for(cnt=0;cnt 0)
    <
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    <
    if(OrderStopLoss() 0)
    <
    if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
    <
    if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
    <
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    >
    >
    >
    >
    >
    >

    Не бойтесь этих 170 строчек кода, что Вы видите выше. Скоро мы их разберём строчка-за-строчкой. Это очень просто.

    Прежде, чем разбирать код, проверим прибыльна ли созданная МТС.

    Замечание: эта МТС предназначена для работы с EUR/USD на ТФ H4.

    Протестировать советника можно двумя способами:

    При online-торговле результаты теста точнее, но надо потратить дни или даже месяцы, чтобы выяснить прибыльна или нет данная МТС.
    Для начала, необходимо разрешить советнику автоматизировать Вашу торговлю.
    В MetaTrader4 выберите Сервис -> Настройки (или просто нажмите CTRL+O).
    Во вкладке Советники разрешите следующие опции:

    Включить советники
    Разрешить советнику торговать
    И нажмите кнопку «OK».

    2 — тестер стратегий

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

    Выберете параметры как на рисунке:

    Нажмите кнопку Старт.
    Далее Вас интересует вкладка отчёт.

    Теперь мы разберем полученную программу строчку за строчкой.
    Если Вы готовы? Начнём!

    Замечание: Наш советник предназначен для обучения и не будет (не нацелен на) извлекать прибыль.

    Код, который у нас уже есть:

    int Crossed (double line1 , double line2)
    <
    static int last_direction = 0;
    static int current_dirction = 0;

    if(line1>line2)current_dirction = 1; //up
    if(line1

    if(current_dirction != last_direction) //changed
    <
    last_direction = current_dirction;
    return (last_direction);
    >

    int start()
    <
    //—-
    int cnt, ticket, total;
    double shortEma, longEma;

    if(Bars 0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«BUY order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening BUY order : «,GetLastError());
    return(0);
    >

    if(isCrossed == 2)
    <
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,
    Bid-TakeProfit*Point,»My EA»,12345,0,Red);
    if(ticket>0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«SELL order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening SELL order : «,GetLastError());
    return(0);

    for(cnt=0;cnt 0)
    <
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    <
    if(OrderStopLoss() 0)
    <
    if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
    <
    if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
    <
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    >
    >
    >
    >
    >
    >

    Прежде чем, разбирать код, рассмотрим, как устроена ТС, на которой основан наш эксперт. Любой советник должен решать, когда входить в рынок, и когда из него выходить. Основная идея при написании советников — определить каковы условия входов и выходов.
    Наш советник прост и проста его идея. Рассмотрим её.
    Используются две средние типа EMA (Exponential Moving Average): EMA 8 (быстрая) и EMA 13 (медленная).

    Наш советник будет открывать позиции при пересечении средних. Причём направление пересечения определяет в какую сторону будет открыта позиция.
    Если быстрая EMA после пересечения окажется выше медленной EMA, то откроется сделка BUY (long).
    Если быстрая EMA после пересечения окажется ниже медленной EMA, то откроется сделка SELL (short).

    Одновременно может быть открыта только одна сделка.

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

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

    Код:
    //—- input parameters
    extern double TakeProfit=350.0;
    extern double Lots=0.1;
    extern double TrailingStop=35.0;
    В приведённых строчках помощник объявил три внешние переменные, как мы его и попросили. Эти переменные пользователь может изменять в окошке настроек эксперта. Также они проинициализированы значениями по умолчанию.

    Код:
    int Crossed (double line1 , double line2)
    <
    static int last_direction = 0;
    static int current_dirction = 0;

    if(line1>line2)current_dirction = 1; //up
    if(line1

    if(current_dirction != last_direction) //changed
    <
    last_direction = current_dirction;
    return (last_direction);
    >

    >
    Как я уже говорил, идея советника заключается в слежении за двумя средними и их пересечениями. Для достижения этой цели мы создаем функцию Crossed.
    Функция Crossed принимает на вход две переменные типа double и возвращает переменную типа integer. Первый параметр — это тек. значение первой линии (в нашем случае — быстрой EMA). Второй параметр — это тек. значение второй линии (в нашем случае — медленной EMA).
    При каждом вызове функция сохраняет информацию о взаиморасположении этих линий в статических переменных (cтатические переменные хранятся в постоянной области памяти программы, их значения не теряются при выходе из функции). При этом функция сравнивает тек. взаиморасположение линий с их взаиморасположением при предыдущем вызове.
    — Функция возвращает 0, если взаиморасположение линий не изменилось.
    — Функция возвращает 1, если взаиморасположение линий изменилось, и первая линия оказалась над второй.
    — Функция возвращает 2, если месторасположение линий изменилось, и первая линия оказалась под второй.

    Замечание: Вы можете использовать эту функцию в своих последующих советниках для слежения за пересечениями любых двух линий.

    Посмотрим — как мы написали эту функцию?

    Код:
    int Crossed (double line1 , double line2)
    Это объявление функции. Оно означает, что мы хотим создать функцию с именем Crossed, которая принимает на вход два параметра типа double и возвращает integer. Когда Вы будете вызывать эту функцию, ей надо быдет передавать два параметра типа double, а возвращать Вам она будет integer. Функцию необходимо объявлять перед её использованием (вызовом).
    Расположение кода функции значения не имеет. Я его поставил гад функцией start(), Вы можете поставить его где угодно.

    Код:
    static int last_direction = 0;
    static int current_dirction = 0;
    Здесь мы объявляем две статические переменные типа static для хранения информации о тек. и предыдущем расположении линий (ещё раз: они статические, потому не теряют своего значения при выходе из функции). Они нам нужны, чтобы проверить изменилось ли взаиморасположение линий. Мы их проинициализировали нулями, т.к. не хотим, чтобы они сработали при самом первом вызове функции (в противном случае советник сразу бы открыл ордера

    Код:
    if(current_dirction != last_direction) //changed
    В этой строчке мы сравниваем две статические переменные. Если current_dirction не равен last_direction, это значит, что взаиморасположение претерпело изменение.

    Код:
    last_direction = current_dirction;
    return (last_direction);
    В случае, если направление изменилось, нам надо изменить значение переменной last_direction для будущего использования. После чего мы возвращаем значение last_direction, которое равно 1, если первая линия выше второй, и 2— если наоборот.

    Код:
    else
    <
    return (0);
    >
    В противном случае (взаиморасположение линий не изменилось) необходимо вернуть 0.

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

    Рассмотрим 25 торговых функций, часть из которых необходимы нам для продолжения написания советника для рынка Форекс в MQL4.
    Для начала мы разберём самую главную функцию — SenOrderd(). А затем — все остальные в алфавитном порядке.
    Готовы? Поехали!

    Синтаксис:
    int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

    Описание:
    Основная функция, используемая для открытия позиции или установки отложенного ордера.
    Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
    Замечания.
    При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по финансовому инструменту, отличному от текущего, то для получения последних котировок по этому инструменту необходимо воспользоваться функцией MarketInfo() с параметром MODE_BID или MODE_ASK. Нельзя использовать расчетную либо ненормализованную цену. Если запрашиваемой цены открытия не было в ценовом потоке либо запрашиваемая цена не нормализована в соответствии с количеством знаков после десятичной точки, то будет сгенерирована ошибка 129 (ERR_INVALID_PRICE). Если запрашиваемая цена открытия сильно устарела, то независимо от значения параметра slippage будет сгенерирована ошибка 138 (ERR_REQUOTE). Если же запрашиваемая цена устарела, но ещё присутствует в ценовом потоке, то позиция открывается по текущей цене и только в том случае, если текущая цена попадает в диапазон price+-slippage.

    Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).

    При установке отложенного ордера цена открытия не может быть слишком близкой к рынку. Минимальное расстояние отложенной цены от текущей рыночной цены в пунктах также можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае неправильной цены открытия отложенного ордера будет сгенерирована ошибка 130 (ERR_INVALID_STOPS).

    На некоторых торговых серверах может быть установлен запрет на применение срока истечения отложенных ордеров. В этом случае при попытке задать ненулевое значение в параметре expiration будет сгенерирована ошибка 147 (ERR_TRADE_EXPIRATION_DENIED).

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

    Параметры:
    symbol — Наименование финансового инструмента, с которым проводится торговая операция.
    cmd — Торговая операция. Может быть любым из значений торговых операций.
    volume — Количество лотов.
    price — Цена открытия.
    slippage — Максимально допустимое отклонение цены для рыночных ордеров (ордеров на покупку или продажу).
    stoploss — Цена закрытия позиции при достижении уровня убыточности (0 в случае отсутствия уровня убыточности).
    takeprofit — Цена закрытия позиции при достижении уровня прибыльности (0 в случае отсутствия уровня прибыльности).
    comment — Текст комментария ордера. Последняя часть комментария может быть изменена торговым сервером.
    magic — Магическое число ордера. Может использоваться как определяемый пользователем идентификатор.
    expiration Срок истечения отложенного ордера.
    arrow_color — Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике.

    Синтаксис:
    bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)

    Описание:
    Закрытие позиции. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

    Параметры:
    ticket — Уникальный порядковый номер ордера.
    lots — Количество лотов для закрытия.
    price — Цена закрытия.
    slippage — Значение максимального проскальзывания в пунктах.
    Color — Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

    Синтаксис:
    bool OrderCloseBy( int ticket, int opposite, color Color=CLR_NONE)

    Описание:
    Закрытие одной открытой позиции другой позицией, открытой по тому же самому инструменту, но в противоположном направлении. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

    Параметры:
    ticket — Уникальный порядковый номер закрываемого ордера.
    opposite — Уникальный порядковый номер противоположного ордера.
    Color — Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.

    Синтаксис:
    double OrderClosePrice( )

    Описание:
    Возвращает цену закрытия выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    datetime OrderCloseTime( )

    Описание:
    Возвращает время закрытия для выбранного ордера. Только закрытые ордера имеют время закрытия, не равное 0. Открытые или отложенные ордера имеют время закрытия, равное 0.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    string OrderComment( )

    Описание:
    Возвращает комментарий для выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    double OrderCommission( )

    Описание:
    Возвращает значение рассчитанной комиссии для выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    bool OrderDelete( int ticket, color arrow_color=CLR_NONE)

    Описание:
    Удаляет ранее установленный отложенный ордер. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

    Параметры:
    ticket — Уникальный порядковый номер ордера.
    arrow_color — Цвет стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображаются.

    Синтаксис:
    datetime OrderExpiration( )

    Описание:
    Возвращает дату истечения для выбранного отложенного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    double OrderLots( )

    Описание:
    Возвращает количество лотов для выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    int OrderMagicNumber( )

    Описание:
    Возвращает идентификационное («магическое») число для выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)

    Описание:
    Изменяет параметры ранее открытых позиций или отложенных ордеров. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
    Замечания: цену открытия и время истечения можно изменять только у отложенных ордеров.
    Если в качестве параметров функции передать неизмененные значения, то в этом случае будет сгенерирована ошибка 1 (ERR_NO_RESULT).
    На некоторых торговых серверах может быть установлен запрет на применение срока истечения отложенных ордеров. В этом случае при попытке задать ненулевое значение в параметре expiration будет сгенерирована ошибка 147 (ERR_TRADE_EXPIRATION_DENIED).

    Параметры:
    ticket — Уникальный порядковый номер ордера.
    price — Новая цена открытия отложенного ордера.
    stoploss — Новое значение StopLoss.
    takeprofit — Новое значение TakeProfit.
    expiration Время истечения отложенного ордера.
    arrow_color — Цвет стрелок модификации StopLoss и/или TakeProfit на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелки на графике не отображаются.

    Синтаксис:
    double OrderOpenPrice( )

    Описание:
    Возвращает цену открытия для выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    datetime OrderOpenTime( )

    Описание:
    Возвращает время открытия выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    void OrderPrint( )

    Описание:
    Выводит данные ордера в журнал в виде строки следующего формата:
    номер тикета; время открытия; торговая операция; количество лотов; цена открытия; стоп лосс; тейк профит; время закрытия; цена закрытия; комиссия; своп; прибыль; комментарий; магическое число; дата истечения отложенного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    double OrderProfit( )

    Описание:
    Возвращает значение чистой прибыли (без учёта свопов и комиссий) для выбранного ордера. Для открытых позиций это — текущая нереализованная прибыль. Для закрытых ордеровзафиксированная прибыль.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    bool OrderSelect( int index, int select, int pool=MODE_TRADES)

    Описание:
    Функция выбирает ордер для дальнейшей работы с ним. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
    Параметр pool игнорируется, если ордер выбирается по номеру тикета. Номер тикета является уникальным идентификатором ордера. Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых позиций терминала. Отличить открытую позицию от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является закрытым или удаленным отложенным и был выбран из истории терминала. Отличить закрытый ордер от удаленного отложенного также можно по типу ордера.

    Параметры:
    index Позиция ордера или номер ордера в зависимости от второго параметра.
    select — Флаг способа выбора. Mожет быть одним из следующих величин:
    SELECT_BY_POS — в параметре index передается порядковый номер позиции в списке,
    SELECT_BY_TICKET — в параметре index передается номер тикета.
    pool — Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:
    MODE_TRADES (по умолчанию) — ордер выбирается среди открытых и отложенных ордеров,
    MODE_HISTORY — ордер выбирается среди закрытых и удаленных ордеров.

    Синтаксис:
    int OrdersHistoryTotal( )

    Описание:
    Возвращает количество закрытых позиций и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале. Размер списка истории зависит от текущих настроек вкладки «История счета» терминала.

    Синтаксис:
    double OrderStopLoss( )

    Описание:
    Возвращает значение цены закрытия позиции при достижении уровня убыточности (stop loss) для текущего выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    int OrdersTotal( )

    Описание:
    Возвращает общее количество открытых и отложенных ордеров.

    Синтаксис:
    double OrderSwap( )

    Описание:
    Возвращает значение свопа для текущего выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    string OrderSymbol( )

    Описание:
    Возвращает наименование финансового инструмента для текущего выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    double OrderTakeProfit( )

    Описание:
    Возвращает значение цены закрытия позиции при достижении уровня прибыльности (take profit) для текущего выбранного ордера
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    int OrderTicket( )

    Описание:
    Возвращает номер тикета для текущего выбранного ордера.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    Синтаксис:
    int OrderType( )

    Описание:
    Возвращает тип операции текущего выбранного ордера. Mожет быть одной из следующих величин:
    OP_BUYпозиция на покупку,
    OP_SELLпозиция на продажу,
    OP_BUYLIMIT отложенный ордер на покупку по достижении заданного уровня, текущая цена выше уровня,
    OP_BUYSTOPотложенный ордер на покупку по достижении заданного уровня, текущая цена ниже уровня,
    OP_SELLLIMITотложенный ордер на продажу по достижении заданного уровня, текущая цена ниже уровня,
    OP_SELLSTOPотложенный ордер на продажу по достижении заданного уровня, текущая цена выше уровня.
    Ордер должен быть предварительно выбран с помощью функции OrderSelect().

    А на закуску мы рассмотрим ошибки исполнения:

    Любая торговая операция (функции OrderSend(), OrderClose, OrderCloseBy, OrderDelete или OrderModify) по ряду причин может завершиться неудачей и вернуть либо отрицательный номер тикета, либо FALSE. Причину неудачи можно выяснить, вызвав функцию GetLastError(). Каждая ошибка должна быть обработана по-своему. Ниже в таблице приведены общие рекомендации.

    Коды ошибок, возвращаемые торговым сервером:

    Надеюсь, Вам хватило времени познакомиться с торговыми функциями MQL4, потому что сегодня они нам пригодятся.
    В предыдущем описании данного поста мы познакомились с нашим первым советником и поняли, какая идея за ним скрывается. Теперь мы продолжим попытку разобрать код советника.
    Итак, начнём.

    Код, который мы уже имеем:

    int Crossed (double line1 , double line2)
    <
    static int last_direction = 0;
    static int current_dirction = 0;

    if(line1>line2)current_dirction = 1; //up
    if(line1

    if(current_dirction != last_direction) //changed
    <
    last_direction = current_dirction;
    return (last_direction);
    >

    int start()
    <
    //—-
    int cnt, ticket, total;
    double shortEma, longEma;

    if(Bars 0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«BUY order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening BUY order : «,GetLastError());
    return(0);
    >

    if(isCrossed == 2)
    <
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,
    Bid-TakeProfit*Point,»My EA»,12345,0,Red);
    if(ticket>0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«SELL order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening SELL order : «,GetLastError());
    return(0);

    for(cnt=0;cnt 0)
    <
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    <
    if(OrderStopLoss() 0)
    <
    if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
    <
    if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
    <
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    >
    >
    >
    >
    >
    >

    //+——————————————————————+
    Последее, что мы разобрали в прошлый раз, — это функция Crossed(). Таким образом, мы подошли вплотную к функцииstart().

    Код:
    int cnt, ticket, total;
    В этой строчке мы объявили три переменные типа integer. Мы смогли объявить все три переменные в одной строчке, потому что они все одинакого типа.

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

    С тем же успехом можно было разбить эту строчку на три части:

    int total;
    Переменную cnt мы будем использовать в качестве счётчика в нашем «цикле просмотра открытых позиций».
    Переменную ticket мы будем использовать для хранения тикета (идентификационного номера ордера), возвращаемого функцией OrderSend().
    Переменную total мы будем использовать для хранения числа уже открытых ордеров.

    Код:
    double shortEma, longEma;
    Опять же, мы объявили две переменные в одной строчке.
    Мы будем использовать эти переменные для хранения значений быстрой EMA и медленной EMA.
    Я надеюсь, Вы помните, что мы должны следить за их пересечениями и взаиморасположениями. Исходя из этой информации мы будем принимать решения об открытии ордеров на покупку или продажу, а также их закрытии.

    Код:
    if(Bars symbol — Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
    timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
    period — Период усреднения для вычисления скользящего среднего.
    ma_shiftСдвиг индикатора относительно ценового графика.
    ma_method Метод усреднения. Может быть любым из значений методов скользящего среднего (Moving Average).
    applied_price — Используемая цена. Может быть любой из ценовых констант.
    shift — Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

    Всю эту информацию можно получить во встроенном справочнике MQL4. Достаточно лишь в окне Навигатор во вкладке Поиск набрать: iMA.

    Код:
    shortEma = iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);
    longEma = iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);
    Теперь Вы понимаете, что означают эти строчки.
    Переменной shortEma мы присвоили значение, равное:
    Усреднённую методом экспоненциального среднего цену Close последних 8 баров, начиная с текущего.
    Коротко можно говорить EMA8.
    Переменной longEma мы присвоили значение, равное:
    Усреднённую методом экспоненциального среднего цену Close последних 13 баров, начиная с текущего.
    Коротко можно говорить EMA13.

    Код:
    int isCrossed = Crossed (shortEma,longEma);
    Уверен, что Вы помните, что функция Crossed() принимает две переменные типа double и возвращает integer.
    Первый параметр — это тек. значение первой линии, за которой мы хоти наблюдать. Второй — второй линии.
    Функция будет следить за двумя линиями при каждом её вызове посредством сохранения их тек. значений в статических переменных, чтобы запоминать их предыдущее состояние.
    — Функция возвращает 0, если взаиморасположение линий не изменилось.
    — Функция возвращает 1, если взаиморасположение линий изменилось, и первая линия оказалась над второй.
    — Функция возвращает 2, если взаиморасположение линий изменилось, и первая линия оказалась под второй.

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

    Код:
    total = OrdersTotal();
    if(total 0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«BUY order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening BUY order : «,GetLastError());
    return(0);
    >

    if(isCrossed == 2)
    <
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,»My EA»,12345,0,Red);
    if(ticket>0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«SELL order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening SELL order : «,GetLastError());
    return(0);

    >
    В случае, когда EMA8 пересекла EMA13 снизу вверх, мы производим покупку. Для этого мы используем функцию OrderSend()

    Синтаксис:
    int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

    Параметры:
    symbol — Мы воспользовались функцией Symbol(), чтобы получить строку с названием валюты, и передали её (строку) функции OrderSend().
    cmd — Мы использовали OP_BUY, чтобы открыть сделку на покупку.
    volume — Мы использовали переменную Lots, значение которой нам предоставил пользователь.
    price — Мы воспользовались переменной (на самом деле функцией) Ask, чтобы получить тек. значение цены ask, и передали его функции OrderSend().
    slippage — Мы использовали 3 в качестве значения допустимого проскальзывания.
    stoploss — Мы использовали 0 в качествет стоп-лосса, что означает, что у этого ордера нет стоп-лосса.
    takeprofit — Мы воспользовались переменной TakeProfit, значение которой нам предоставил пользователь. Умножили её на цену одного пункта, хранящуюся в переменной Point, и прибавили результат к тек. значению Ask (цена открытия ордера). Это Важный момент обратите на него внимание. Аналогичным образом надо рассчитывать стоп-лосс, если он не равен нулю.
    comment — Мы использовали строку «My EA» в качестве комментария.
    magic — Мы использовали число 12345 в качестве magic-числа. Магическое число нужно только для того, чтобы советник отличал свои ордера от чужих.
    expiration — Мы использовали 0, потому что нашему ордеру не нужен срок истечения. Этот параметр применим только к отложенным ордерам.
    arrow_color — Мы выбрали зелёный, потому что мы любим деньги, а доллары зелёные

    Функция OrderSend() при успешном исполнении возвращает тикет открытого ордера, что мы используем в проверке:

    Код:
    if(ticket>0)
    Затем мы функцией OrderSelect() выбираем открытый ордер по его тикету, и функцией OrderOpenPrice() узнаём цену его открытия.

    Если всё прошло успешно, и функция OrderSend() вернула нормальный тикет (больший 0), а функция OrderSelect() благополучно выбрала нужный ордер, то в лог эксперта распечатается сообщение «BUY order opened : » + цена открытия.

    Иначе, если функция OrderSend() вернула -1, что означает, что было ошибка, мы должны об этом сообщить пользователю, выдав сообщение: :Error opening BUY order: » + номер ошибки, предоставленный функцией GetLastError(). При этом нам придётся завершить функцию start() опреатором return(0);

    Код:
    if(isCrossed == 2)
    <
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,
    Bid-TakeProfit*Point,»My EA»,12345,0,Red);
    if(ticket>0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«SELL order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening SELL order : «,GetLastError());
    return(0);

    >
    Здесь сценарий противоположный — EMA8 пересекает EMA13 сверху вниз. Теперь мы продаём.
    Можете найти различия в вызовах функции OrderSend() ?
    Правильно!

    Следующие параметры не изменились:

    А эти изменились:

    cmd — Мы использовали OP SELL, чтобы открыть сделку на продажу.
    price — Мы воспользовались переменной (на самом деле функцией) Bid, чтобы получить тек. значение цены bid, и передали его функции OrderSend().
    takeprofit — Мы воспользовались переменной TakeProfit, значение которой нам предоставил пользователь. Умножили её на цену одного пункта, хранящуюся в переменной Point, и вычли результат к тек. значению Bid (цена открытия ордера).
    arrow_color — Мы выбрали красный, потому что мы любим деньги, а деньги зелёные, но нам нужен другой цвет для позиций на продажу

    Далее в этом куске кода всё аналогично.
    Вот и всё… Мы закончили с блоком if(total line2)current_dirction = 1; //up
    if(line1

    if(current_dirction != last_direction) //changed
    <
    last_direction = current_dirction;
    return (last_direction);
    >

    int start()
    <
    //—-
    int cnt, ticket, total;
    double shortEma, longEma;

    if(Bars 0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«BUY order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening BUY order : «,GetLastError());
    return(0);
    >

    if(isCrossed == 2)
    <
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,
    Bid-TakeProfit*Point,»My EA»,12345,0,Red);
    if(ticket>0)
    <
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    Print(«SELL order opened : «,OrderOpenPrice());
    >
    else Print(«Error opening SELL order : «,GetLastError());
    return(0);

    for(cnt=0;cnt 0)
    <
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    <
    if(OrderStopLoss() 0)
    <
    if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
    <
    if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
    <
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    >
    >
    >
    >
    >
    >

    //+——————————————————————+
    Выше мы разобрали, как происходит проверка того, что OrdersTotal меньше 1, для того, чтобы открывать сделку BUY или SELL только в случае, если до этого не было ни одной уже открытой сделки.

    Мы исполльзовали след. код:

    Код:
    if(total 0)
    <
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    <
    if(OrderStopLoss()

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

    Хоть в интернете и огромное количество экспертов, все равно найдутся трейдеры, которые хотят найти ответ на то, как написать советник форекс собственными руками.

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

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

    Стратегия

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

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

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

    Продумайте ограничения советника и моменты входа – выхода с рынка. Ну и последнее продумайте оптимальные риски для своего эксперта.

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

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

    Эффективнее всего использовать стратегию, которую вы уже успели проверить на протяжении нескольких лет. Если вы все еще хотите знать, как создать советник форекс, читайте далее.

    Программирование и тестирование

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

    Если данные знания отсутствуют, то обратитесь к специалисту, но в таком случае, зачем вы читаете статью и том, как создать советник форекс, ведь ваш специалист и сам со всем справиться.

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

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

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

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

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

    После этого можете переходить на реальный счет и торговать малыми депозитами.

    Писать советник самому или использовать готовые модели?

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

    А вот стоит ли вообще иметь советник или нет, никто вам ответить не сможет, все зависит только от вас и ваших умений управлять роботом.

    Ведь даже самый убыточный робот в умелых руках может приносить хорошую и стабильную прибыль.

    KROOL and FOREX

    Buy, Sell — толковый выбор приходит с опытом, а к нему приводит выбор бестолковый.

    Популярные темы

    Рекомендуемые брокеры

    Ярлыки

    ArgoLab.net

    Архив блога

    пятница, 6 августа 2010 г.

    Написание советников (Expert Advisors) — механических торговых систем для MetaTrader 4- Введение

    Написание советников ( Expert Advisors ) — механических торговых систем для MetaTrader 4

    Вначале несколько слов о том, что же такое советник ( Expert Advisor ):

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

    После ознакомления с этой информацией, я рекомендую вам изучить учебник Сергея Ковалёва » Программирование на алгоритмическом языке MQL4″ и ознакомиться с » документацией по языку MetaQuotes Language 4″

    т.к. написанием советников все возможности языка не исчерпываются.

    Программы, написанные на MetaQuotes Language 4, имеют различные свойства и предназначение:

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

    Пользовательский индикатор ( Custom Indicator ) — технический индикатор, самостоятельно написанный пользователем в дополнение к индикаторам, уже интегрированным в клиентский терминал. Пользовательские индикаторы, также как и встроенные, не могут автоматически торговать и предназначены только для реализации аналитических функций.

    Скрипт ( Script ) — программа, предназначенная для одноразового выполнения каких-либо действий. В отличие от экспертов, скрипты запускаются не потиково, а по запросу.

    Библиотека ( Library ) — библиотека пользовательских функций, предназначенная для хранения и распространения часто используемых блоков пользовательских программ. Библиотеки не могут самостоятельно запускаться на выполнение.

    Включаемый файл ( Included file ) — исходный текст часто используемых блоков пользовательских программ. Такие файлы могут включаться в исходные тексты экспертов, скриптов, пользовательских индикаторов и библиотек на этапе компиляции. Использование включаемых файлов более предпочтительно, чем использование библиотек, из-за дополнительных накладных расходов при вызове библиотечных функций.

    info-cast.ru

    Информационный отбор

    Шаблон для создания советника на любых индикаторах

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

    Надоело платить за советники? Все советники которые ты купил сливают? Остановись! Хватит тратить деньги на ерунду! Теперь ты сам можешь создать свой советник! Никакого мартингейла, никаких удвоений и подобной чепухи. Шаблон трендового советника, все сигналы вы определяете сами своими индикаторами.

    Да именно так. Меня зовут Михаил, я очень давно занимаюсь разработкой советников под заказ. Я решил изменить ситуацию на рынке советников, и предложить тебе самому создать свой советник.
    Имеешь хорошую систему, которая приносит тебе прибыль? У тебя есть индикаторы, которые дают точные сигналы? Не покупай советники, сделай сам, а я научу тебя как!

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

    Все просто! Я даю тебе шаблон и полное руководство к нему. Просто делай как написано, подключай свои индикаторы, испытывай, тестируй, проверяй сам. За один день ты сможешь проверить и испытать десятки индикаторов, создать сотни советников — и из них выбрать то, что будет работать и приносить прибыль.

    Что вы получите:

      • Подключение любого индикатора на вход в сделку.
      • Подключение любого индикатора для STOP закрытия лота
      • Подключение любого индикатора фильтра
      • Настраиваемый SL и TP
    • Настраиваемый Breakeven /Безубыток (выводит в безубыток все открытые позиции).

    А знаете этот шаблон универсален, и на основании его сделано множество «легендарных» советников, которые вы покупали! Не нужно больше покупать, купи это и забудь про советники и сервис MQL5. Будь сам хозяином своей судьбы!

    Как это работает:

    Все работает очень просто! Находим 3 индикатора:

    1. Синяя и красная стрелочки — вход в сделку
    2. Трендовый индикатор фильтра сделок
    3. Индикатор разворота для выхода из сделки

    Вот и все ваша система готова! Подключаем эти индикаторы по инструкции к шаблону — вот и готов твой советник! Далее тестируем, ставим на демо, смотрим. Не приносит прибыль? Просто замени индикаторы! Или лучше купить советник, или заплатить «специалисту»? Нет не забывай, теперь ты сам специалист! Не нужно больше платить. Просто найди другие индикаторы, экспериментируй, пробуй — и ты обязательно достигнешь успеха!

    Что вы получите:

    1. Шаблон своего будущего советника.

    2. Полное руководство, доступное да же школьникам.

    3. Индикаторы для примера.

    Советник, который у вас получится будет работать на любом счете, у любого брокера, без ошибок и проколов!Вот пример работы советника который я сделал за 15 мин на своих индикаторах, так же, а может и лучше получится и у вас!

    money-trans.ru

    Портал о переводах денег

    Написание советников. Как написать Форекс советник самому? Правильные советы начинающим. Основа самостоятельного создания робота: как писать советника для форекс

    Если вы работаете со специалистом, который говорит вам: «Я напишу советника Форекс », то вы должны знать, что первой и главной вашей задачей является составление правильного ТЗ для исполнителя. Если вы легкомысленно подойдете к этому процессу, то конфликта, а также наличия огромного количества ошибок вам не избежать. Здесь нужно сразу подчеркнуть, что неработоспособность готовой программы зачастую зависит, не от того, что вам попался неквалифицированный программист, а от того, что вы поставили перед ним некорректную задачу.

    Я напишу советники Форекс , если в ТЗ будут указаны следующие моменты:

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

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

    Как быстро можно получить готовый вариант торгового эксперта

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

    В ряде случаев, если вам быстро удастся договориться со специалистом, который сразу поймет вашу задумку, работа над роботом будет проходить в сжатые сроки. Еще лучше, если ваш исполнитель в прошлом был активным трейдером и понимает особенности валютного рынка. Задержки возможны в тех случаях, когда есть несоответствия между реальными правилами торговли и тем, что требует трейдер от специалиста. Я напишу советник Форекс , который будет полностью соответствовать запросам валютной биржи и поможет вам осуществить собственную стратегию на рынке.

    Часто можно увидеть на просторах Интернета объявления, как например — «Напишу советника Форекс». И действительно, многие программисты могут помочь написать качественную автоматизированную программу для Форекс, которая поможет трейдеру легко ориентироваться на валютном рынке и эффективно торговать валютой.

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

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

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

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

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

    Стабильно зарабатывать на финансовом рынке могут те трейдеры, которые имеют:

    1. Опыт ведения торгов;
    2. Определенные специализированные знания;
    3. Владение информацией.

    Отчасти трейдеру потребуется удача. Но самое главное — хороший торговый советник, который является отличным помощником в проведении сделок на бирже. Можно создать эксперта своими руками, если есть определенные навыки или обратиться за помощью к специалистам. Их можно найти по объявлениям, вроде того, как «напишу советники Форекс». Таких объявлений много на форумах, где можно прочитать массу информации о принципах ведения торгов, отзывы о советниках и их разработчиках.

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

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

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

    Наиболее популярным на сегодняшний момент считается терминал МТ4, поэтому и спрос на торговых экспертов под него довольно высокий. Итак, если самостоятельно пишем простой советник Форекс для Mt4, при этом, не обладаем навыками программирования, потребуется сделать несколько шагов, следуя инструкции. Но у каждого трейдера свои методы ведения торговли, поэтому нужно создавать советника под индивидуальные требования, в зависимости от выбранной стратегии торговли и других нюансов. Здесь речь идет о простейшем советнике. Если же необходимо написать сложного робота, то, конечно, не зная, хотя бы азы MQL, не стоит даже пытаться этим заниматься. Это просто трата времени и нервов.

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

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

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

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

    Где найти программиста профессионала?

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

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

    Для начала, стоит самому определиться в выборе, что именно требуется. То есть: нужен торговый робот или индикатор. А может быть, требуется вспомогательный скрипт. От этого следует отталкиваться при выборе программиста, который будет исполнять заказ. Чтобы претворить в жизнь свою идею и не разочароваться, следует поискать подходящего исполнителя в интернете. Можно просмотреть предложения на сайтах объявлений, где в рубрике «Услуги» будет написано «Напишу советник Форекс», или посетить специальный сервис — фриланс биржу, где можно найти помощь квалифицированного специалиста.

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

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

    На нашем ресурсе вы также можете заказать написание советника или индикатора, которые будут написаны на языке mql4 и c#.

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

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

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

    В наши услуги входит: Программирование советников на заказ, написание торговых роботов, скриптов, индикаторов для платформы MetaTrade 4. Возможно программирование под любые другие платформы. Решение нестандартных задач автоматизации связанных с FOREX. Огромный опыт программирования задач с визуальными элементами платформы MetaTrader. Большой опыт разработки нейроиндикаторов и автоматических торговых систем с использованием нейронных сетей. Перед заказом Вы можете ознакомиться с нашими разработками, .
    Вы можете приблизительно узнать о стоимости заказа исходя из прайс-листа:

    • Разработка простых советник для МТ4 на заказ(например основанных на пересечении, с трейлингом и стопами и тейкпрофитом) от 10$.
    • Усложнёный алгоритм входа/выхода советника от 20$.
    • Добавление к торговому роботу(заказанному у нас) простых систем управления капиталом(например мартингейл) от 10-50$
    • Усложнённый расчёт уровней отложенных ордеров от 40$.
    • Советники основанные на управлении визуальными элементами MetaTrader»а от 50$. —
    • Мультивалютные советники как правило очень сложные в исполнении и начальные цены обычно выше от 80$. Но смысла их заказывать почти нету потому что каждый советник работает на любой паре не мешаю другому советнику.
    • Трейлинг стоп от 10$.
    • Советники на основе сеток из отложенных ордеров от 80$

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

    Когда я показываю работу эксперта заказчику, а МТ4 как всегда виснет

    Индикаторы, скрипты на заказ

    • Cигнал по условиям от 10$
    • Формула или наложение мувинга на имеющийся индикатор от 10$
    • Индикаторы расставляющие визуальные(трендовые линии) элементы MetaTrader от 50$

    Реализация задач с применение других языков программирования

    • Реализация отдельных функций в DLL — от 50$
    • Защита кода путём переноса расчётной части в DLL от 100$.
    • Выполнение защиты с помощью функций WinAPI(практически не взламываемый тип защиты) для коммерческих советников от 150$
    • Связка терминалов от 300$(Альфа Директ, NinjaTrader и др.)
    • Копирование сделок с одного счёта на другие — 70$.
    • Решение задач с использованием нейронных сетей от 500$.(только при условии что заказчик хорошо знает тему НС)

    Если Вы хотите заказать советника, свяжитесь с нами!

    Режим работы С понедельника по воскресенье, круглосуточно

    Адрес: Ворошиловский просп., 13 344006 Ростов-на-Дону,

    Телефон:+7 950 854 77 00,

    Электронная почта: [email protected]сайт

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

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

    Эти программы называются форекс советники , или по-другому торговые роботы. Самый эффективный форекс советник этот тот, который написан именно для Вас — по Вашему заказу и личным пожеланиям.

    Наш сайт предлагает Вам услуги программирования торговых систем (советников, индикаторов) на заказ. Разработка ведётся на языках mql4 и c# . Если у Вас есть прибыльная торговая стратегия и Вы хотите написать по ней советника, Вы можете его заказать нашему программисту за умеренную плату.

    Советники на заказ пишет для нас профессиональный программист, практикующий трейдер, имеющий богатый опыт в этой сфере. Мы предлагаем программирование советников и индикаторов форекс на заказ для торговых платформ MetaTrader4 и cAlgo .

    У нас Вы можете заказать написание советника или индикатора для:

    • Метатрейдер4 (МТ4, язык программирования mql4)
    • Метатрейдер5 (МТ5, язык программирования mql5)
    • cAlgo (язык программирования C#)
    • NinjaTrader (язык программирования C#)
    • ActTrader (язык программирования Pascal)
    • ThinkOrSwim (язык программирования Java)

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

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

    Заказывая советник у нас , Вы можете рассчитывать на отличное качество выполненной работы, сжатые сроки и поддержку заказчика после сдачи работы, в плане установки и настройки советника. Все работы всегда доводятся до логического завершения и до того состояния, которое полностью устраивает заказчика. Все работы перед отправкой клиенту проходят предварительную проверку в тестере и в реальном времени. Предварительное согласование техзадания возможно по скайпу MqlProger или ICQ 330-249-601, но в любом случае ТЗ в письменном виде должно быть сформировано заказчиком и отправлено на email.

    Доработки в рамках ТЗ производятся оперативно и бесплатно. За новые доработки, не включенные в изначальное задание плата взимается отдельно.

    Рабочее время с 10.00 до 19.00 МСК, кроме выходных. Ваши заказы на советники и индикаторы принимаются круглосуточно, программист обрабатывает их в рабочее время.

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

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

    Внимание! Неточности в коде, допущенные по вине программиста, исправляются бесплатно.

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

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

    Как написать советник форекс для MetaTrader, с чего следует начать

    Большинство независимых трейдеров торгуют на валютном рынке через дилинговые центры при помощи терминала MetaTrader, у которого есть четвёртая и пятая версии. Казалось бы, программы почти одинаковые, но языки программирования на них немного отличаются, поэтому если установлен MetaTrader4, то для решения задачи необходимо изучать язык программирования MQL4, если же используется MetaTrader5, то для него создан свой язык — MQL5.

    Следует отметить, что в любом случае MT5 – это будущее, рано или поздно необходимо будет осваивать именно этот терминал, но, в настоящее время, начинающему лучше разбираться как написать советник форекс для MT4, так как информации и обучающих материалов в сети по этой теме не просто много, а колоссальное количество, переучиться потом будет намного проще. Итак, начать рекомендуется с учебников, самый популярный и подробный из которых находится на ресурсе MQL4 community. Выглядит он следующим образом:

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

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

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

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

    Социальные кнопки для Joomla

    • 14.11.2013 06:32 | Индикатор разворота — определяем конец тренда 52759
    • 02.04.2015 10:04 | Индикатор VSA читает рынок как открытую книгу 49620
    • 23.09.2014 11:08 | Конструктор советников форекс позволит создать любой торговый робот 46461
    • 13.12.2013 01:48 | Торговля внутри дня — часовая стратегия форекс 38800
    • 12.12.2014 05:36 | Индикаторы опционных уровней – ступени вашего успеха 33713
    • 09.12.2013 10:37 | Форекс индикаторы без перерисовки 30209
    Лучшие брокеры с бонусами:
    • Evotrade
      ☆☆☆☆☆
      ★★★★★
      Evotrade

      Бонусы для новых трейдеров до 5000$!

    • BINARIUM
      ☆☆☆☆☆
      ★★★★★
      BINARIUM

      Лучший брокер по бинарным опционам. Огромный раздел по обучению.

    Добавить комментарий