Логин: Пароль:
Забыли пароль?Зарегистрироваться
58

3. Расчет лота

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

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

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

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

3. Расчет лота

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

3. Расчет лота

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

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

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

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

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

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

3. Расчет лота

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

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

3. Расчет лота

Пример расчета лота для 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(), в качестве параметра укажем НАШ рассчитанный лот.

3. Расчет лота

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

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

3. Расчет лота

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

3. Расчет лота

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

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


TradingPoint, опубликовал запись 1 десятилетие назад.
С момента публикации зафиксировано 7255 просмотров.
Сейчас эту запись просматривает 1 незарегистрированный пользователь.
Добавить фото Добавить файл
Комментарии посетителей
habib9171 1 десятилетие назад
0
и действительно
Ответить
Egor_KAA 1 десятилетие назад
0
Что-то большой лот он рассчитал для баланса чуть больше 800$
Ответить
TradingPoint

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

Содержание блога:
Форекс-объявления:

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