Логин: Пароль:
Забыли пароль?Зарегистрироваться
58
TradingPoint
2
Эксперты и советники MQL
3. Расчет лота

На прошлом уроке мы научили наш первый скрипт MT4 — «test», написанный на языке MQL4 рассчитывать размер лота, а точнее запрашивать у нас размер средств, которыми мы хотим рискнуть, при торговле на форекс, при помощи терминала Metatrader 4. В данном уроке я предлагаю заняться самим расчетом данного лота!

Для расчета желаемого лота, скрипту MT4 необходимо знать «какими средствами мы располагаем» на нашем депозите форекс. Можно, конечно, в ручную ему это сообщать (как мы сделали с риском), но зачем делать лишнюю работу, если в нашем распоряжении язык MQL4? Пусть наш скрипт «test» сам берет эту цифру из торгового терминала Metatrader 4!

Для этих целей (для определения размера средств в MT4) в языке MQL4 предназначена функция — AccountFreeMargin()

Все вычислительные операции в советниках или скриптах MQL необходимо делать в функции start:

Поэтому добавим в эту функцию строчку: double Free=AccountFreeMargin();

Теперь в переменной типа double (число с плавающей точкой) и именем Free у нас будет содержаться размер свободных средств.

Еще нам необходимо знать стоимость одного лота по заданной валютной паре — для этого воспользуемся функцией MarketInfo(string symbol, int type).

Эта функция возвращает различную информацию в зависимости от переданных ей параметров. Первым идет строковый параметр для указания валюты. Можно указать напрямую (например: «EURUSD»), но мы хотим универсальности от нашего скрипта, написанного на MQL (что бы скрипт сам определял валютную пару на графике, котором он запущен).

Воспользуемся функцией Symbol() котороя вернет нам название текущей валюты.

Второй параметр функции MarketInfo используем: MODE_MARGINREQUIRED (Размер свободных средств, необходимых для открытия 1 лота)

Теперь соберем все вместе и получим:
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);

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

С помощью простейших математических операций рассчитаем НАШ лот:
double Lot=Free*MaxRisk/100/One_Lot;
Free — свободные средства
MaxRisk/100 — процент (наш параметр MaxRisk надо перевести в %. Для этого его делим на 100)
One_Lot — стоимость одного лота

Пример расчета лота для EURUSD (курс для примера возьмем 1.4615):
у нас есть Free=1000$ (свободные средства)
MaxRisk=2
2% от 1000$ это 1000*2/100=20$

стандартный размер контракта (1 лот) = 100000
при покупке 100000 EUR мы должны заплатить 100000*1.4615=146150$
но у нас есть плечо (возьмем для примера 500), соответственно мы заплатим One_Lot=146150/500=292.3$ (все эти вычисления делает MarketInfo(Symbol(),MODE_MARGINREQUIRED))

Наш лот получится: Lot=20/292.3= 0,0684

Хорошо! Оптимальный лот для открытия торговой позиции в Metatrader 4 мы рассчитали.

А как же его теперь увидеть на экране монитора?
Для этого воспользуемся функцией Alert(), в качестве параметра укажем НАШ рассчитанный лот.

Ну и теперь компилируем и запускаем наш экспериментальный скрипт МТ4 - "test" (это мы уже делать умеем из прошлого урока).

Запускаем наш скрипт в Метатрейдере:

После нажатия кнопки получаем окно:

В окне рассчитан оптимальный лот для торговли парой NZD/CHF.

В следующем уроке по изучению языка MQL, мы продолжим улучшать наш скрипт для Metatrader 4 и наполнять его полезными функциями!

Опубликовано 1 десятилетие назад
Перейти к комментариям
TradingPoint
Эксперты и советники MQL
2. Первые шаги

На первом уроке по изучению языка MQL мы научились запускать редактор MetaEditor и создавать новый скрипт MQL4. Но как мы можем увидеть, созданный нами скрипт MT4 пока не выполняет никаких функций в торговом терминале Metatrader 4.

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

Для этого мы должны определится с допустимым риском для нашего депозита на форекс (т.е. какое кол-во средств мы будем задействовать в торговле при использования советника форекс или в нашем случаи — скрипта для Metatrader 4).

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

Теперь давайте реализуем эту функцию на языке MQL4:

Введем в начале скрипта команду: #property show_inputs

У нас получилось:

команда #property show_inputs означает выводить окно со свойствами перед запуском нашего скрипта MQL.
Попробуем запустить наш получившийся скрипт. Но для этого его нужно предварительно откомпилировать!
Компиляция — это преобразование нашей получившийся программы из языка понятного нам (в данном случаи MQL) в язык понятный компьютеру. Для компиляции скрипта MQL нажмем клавишу «компилировать»:

При этом в нижней части экрана высветится:

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

Затем переходим в терминал Metatrader 4 из редактора MetaEditor, нажав клавишу "Терминал":

Теперь, когда мы уже находимся в торговом терминале Metatrader 4 - в окне «Навигатор» выбираем пунк «Скрипты»:

Ищем в данном списке наш созданный скрипт для MT4 —«test»:

И дважды щелкнув мышкой по скрипту «test»- запускаем его!

Но теперь возникает вопрос: «куда же вводить наш процент от депозита для расчета лота на форекс?».

Для этого мы должны задать его предварительно в нашем скрипте. Идем снова в редактор MetaEditor и добавляем в начале скрипта команду: extern int MaxRisk=2;

В итоге наш код должен выглядеть так:

Давайте разберемся что мы написали, используя команду - extern int MaxRisk=2;

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

extern — означает что данный параметр внешний (т.е. его можно изменить при запуске скрипта или советника MT4)

int - тип переменной (компьютеру же надо знать что мы ему передаем: число, текст и т.д.)

MaxRisk — название нашей переменной, которое может быть абсолютно любым — на ваше усмотрение!

=2 — присвоили данной переменной (в данном случаи MaxRisk) значение, которое будет высвечиваться по умолчанию в окне выставления настроек скрипта в терминале Metatrader 4.

; — знак, означающий окончание нашей команды.

Теперь снова компилируем и запускаем наш скрипт «test»(как было описано выше). Если компилятор «ругается» (сообщает) об ошибках — это означает что то мы сделали что-то не правильно и следует проверить правильность кода на языке MQL4!

Ели ошибок нет, то при запуске скрипта (или советника) в терминале Metatrader 4, появляется следующее окошко:

Как мы теперь можем видеть, при запуске скрипта «test», у нас появилась новая вкладка «Входные параметры».

Переходим на нее:

Вот в данной вкладке мы и видем наш параметр MaxRisk, который служит для расчета лота в MT4 и который мы будем в дальнейшем использовать при создании скриптов и советников на языке MQL!

Опубликовано 1 десятилетие назад
Перейти к комментариям
TradingPoint
9
Эксперты и советники MQL
1. Редактор MetaEditor

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

Начнем!

Редактор MetaEditor является составной частью клиентского терминала Metatrader 4, он предназначен для создания, редактирования и компиляции исходного текста программ, написанных на языке MQL. С его помощью можно разрабатывать советники, индикаторы, скрипты и библиотеки функций. В редактор MetaEditor встроен мастер создания советников, который помогает быстро создавать новые MQL-программы. Кроме того в терминал встроен тестер стратегий,который позволяет проверить поведение на исторических данных.

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

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

Пользовательский индикатор — самостоятельно написанный технический индикатор. Пользовательские индикаторы используются только для анализа динамики цен.

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

Итак приступим:

Для вызова редактора MetaEditor необходимо в окне терминала нажать клавишу:

Перед нами откроется окно, вызываемого нами, редактора — MetaEditor:

Теперь мы можем создать новую программу: Советник, Скрипт, Пользовательский индикатор, нажатием клавиши:

Теперь запускаем мастер создания советника, скрипта и т.п.:

В предложенном списке выбираем «какую программу мы хотим создать».

Для начала, предлагаю начать изучение языка MQL со скриптов (как наиболее простых программ, написанных на языке MQL4).

Выбираем пункт меню «Пользовательский скрипт» и нажимаем кнопочку «Далее >»:

Мастер «создания Скрипта» предлагает задать Имя нашему новому скрипту, для дальнейшего его сохранения и работы с ним. Для примера, введем в поле «Имя:» test и нажмем кнопочку «Готово».

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

Вот и все — первый шаг мы с вами сделали — научились вызывать редактор MetaEditor для создания программ на языке MQL, определились с видом программы для работы в Metatrader 4 и теперь с сохраненным скриптом, под именем test.mq4 мы будем работать в следующем уроке по изучению языка MQL!

Опубликовано 1 десятилетие назад
Перейти к комментариям
TradingPoint
14
Эксперты и советники MQL
Советник своими руками

Добрый день!

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

Но перед такой длинной и непростой работой расскажу пару мыслей по поводу советников:

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

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

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

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

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

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

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

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

Поэтому...

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

Опубликовано 1 десятилетие назад
Перейти к комментариям
 
TradingPoint

Специализация - разработка автоматических торговых систем плюс ручное управление.
Регистрация на проекте: 22.01.2013
Написал комментариев: 29
Записей в блоге: 4
Подписчиков: 58

Форекс-объявления:

Показано форекс-объявлений:
в декабре: 11 033 625;
вчера: 1 038 695 на 260 сайтах;
Разместить форекс-объявление
 Forex Magazine © 2004-2025