Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1596

Max N #:
да и денег на счету пока нет.
Ну демо-счётом воспользуйтесь.
 А вообще, это же элементарно, это открытая информация у брокера, всё уже украдено (посчитано) до нас. Ну например в моб. приложении Метатрейдер идёте в Котировки, долгий тап на нужную (например XAUUSD) и там в меню Свойства. Открывается до фига всего, и там целый раздел - Маржа. Вот сейчас для золота на рублёвом счёте рос. брокера 1 700 000 с чем-то за лот. За позицию 0.01, к примеру - в 100 раз меньше, то есть 17 тыр. Наверняка это где-то есть и в десктопной версии, просто никогда не искал, так как смотрю в мобильном или в уме прикидываю.
 Ну и наконец это ж на калькуляре, в уме или, если надо, программно посчитать элементарно.
 Вот цена золота сейчас, грубо, 5000 баксов за унцию. Размер контракта 100 унций, то есть 100*5000. Плечо у Вас по золоту, к примеру, 20. Ну 5000*100/20 - вот и маржа, плюс минус. Это за лот, в баксах. А за 0.01 лота - в 100 раз меньше.
 На валютах размер контракта, например, 100000 USD, 100000 Euro и т.д..
Max N #:

это понятно, но хочу иметь скрипт, да и денег на счету пока нет.

для мт4 скрипт есть и он работает отлично, а тут что-то не понятно, что делать с полученным коэффициентом

если у вас есть скрипт для мт5, поделитесь плз.

Вот скрипт не доведённый «до ума»

#define   DEVIATION     5              // допустимое отклонение от цены 
#define   VOLUME        1.0            // объем ордера 
#define   EXPERT_MAGIC  123            // MagicNumber 
#define   DIRECTION     ORDER_TYPE_BUY // направление открываемой позиции (ORDER_TYPE_BUY или ORDER_TYPE_SELL) 
//---
MqlTradeRequest     request= {};
MqlTradeCheckResult check  = {};
MqlTradeResult      result = {};
/*******************Script program start function********************/
void OnStart()
 {
  MqlTick tick; 
  SymbolInfoTick(_Symbol, tick);
  request.action    = TRADE_ACTION_DEAL; // тип торговой операции
  request.symbol    = _Symbol;           // символ
  request.volume    = VOLUME;            // объем
  request.type      = DIRECTION;         // тип ордера
  request.price     = tick.ask;          // цена для открытия
  request.deviation = DEVIATION;         // допустимое отклонение от цены
  request.magic     = EXPERT_MAGIC;      // MagicNumber ордера
  OrderCheck(request, check);
  DebugBreak();
 }/******************************************************************/
/****************************End_program*****************************/

Почти всё взято их документации.

И вот результат:

Из спецификации

Маржа полученная скриптом.

С моей точки зрения это лучший вариант определения маржи.

Max N #:

подскажите, есть в хелпе скрипт для расчета маржи  для мт5 https://www.mql5.com/ru/docs/marketinformation/symbolinfomarginrate

но я не понимаю как он работает, запускаю на графике XAUUSD получаю значение в 1.81

плечо у меня вроде бы 1/30 счет рублевый, почему мне выдает 1.81 и что с этой цифрой делать дальше, как понять, сколько маржи нужно для открытия 1 лота?

OrderCalcMargin()  чем вас не устраивает?
Документация по MQL5: OrderCalcMargin / Торговые функции
Документация по MQL5: OrderCalcMargin / Торговые функции
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных...
Jack_the_singer #:
 Вот цена золота сейчас, грубо, 5000 баксов за унцию. Размер контракта 100 унций, то есть 100*5000. Плечо у Вас по золоту, к примеру, 20. Ну 5000*100/20 - вот и маржа, плюс минус. Это за лот, в баксах. А за 0.01 лота - в 100 раз меньше.

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

скрипт выдает маржу за 0.01 лот = 17555 руб, а расчет вручную 5090*100/40=12725$, делим на 100 получаем 127.25$,  в рублях умножаем на 75.8 получаем 9645 :))

на если умножить на тот мифический коэффициент 1.81, то примерно получается то же число. осталось только понять, что это за коэффициент такой.

Документация по MQL5: OrderCalcMargin / Торговые функции
Документация по MQL5: OrderCalcMargin / Торговые функции
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных...
Jack_the_singer #:
Наверняка это где-то есть и в десктопной версии, просто никогда не искал, так как смотрю в мобильном или в уме прикидываю.
есть, я просто не прокручивал список вниз, в самом низу маржа. но скриптом удобнее все равно :) я сразу исправил в нем на 0.01 лот
Max N #:
есть, я просто не прокручивал список вниз, в самом низу маржа. но скриптом удобнее все равно :) я сразу исправил в нем на 0.01 лот

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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих MQL5 MT5 MetaTrader 5

Alexey Viktorov, 2026.01.24 08:52

Вот скрипт не доведённый «до ума»

#define   DEVIATION     5              // допустимое отклонение от цены 
#define   VOLUME        1.0            // объем ордера 
#define   EXPERT_MAGIC  123            // MagicNumber 
#define   DIRECTION     ORDER_TYPE_BUY // направление открываемой позиции (ORDER_TYPE_BUY или ORDER_TYPE_SELL) 
//---
MqlTradeRequest     request= {};
MqlTradeCheckResult check  = {};
MqlTradeResult      result = {};
/*******************Script program start function********************/
void OnStart()
 {
  MqlTick tick; 
  SymbolInfoTick(_Symbol, tick);
  request.action    = TRADE_ACTION_DEAL; // тип торговой операции
  request.symbol    = _Symbol;           // символ
  request.volume    = VOLUME;            // объем
  request.type      = DIRECTION;         // тип ордера
  request.price     = tick.ask;          // цена для открытия
  request.deviation = DEVIATION;         // допустимое отклонение от цены
  request.magic     = EXPERT_MAGIC;      // MagicNumber ордера
  OrderCheck(request, check);
  DebugBreak();
 }/******************************************************************/
/****************************End_program*****************************/

Почти всё взято их документации.

И вот результат:

Из спецификации

Маржа полученная скриптом.

С моей точки зрения это лучший вариант определения маржи.

Проверьте показания со спецификацией. Покажите что получилось.
Max N #:
есть, я просто не прокручивал список вниз, в самом низу маржа
А какая? Выше, Вы говорите, было расхождение - 9645 и 17555, к какой ближе значение из терминала? (важно только, чтобы это был именно счёт того самого брокера, и на демо и реальном счёте может быть разное плечо). Вообще, расхождения по формуле могут быть скорее всего из-за ошибочного значения плеча. Вот Вы говорите "вроде 40". Если это росс. контора, то 40 там у квала, а у обычных людей - меньше. Причём 40 - валютное плечо, а на золото оно скорее всего иное. В моём случае - 22, и для квала, и для неквала. Подставьте 22, и скорее всего получите свои 17555)).
Max N #:
вроде бы 40
А посмотреть плечо можно на сайте брокера, в разделе Торговые условия >> Маржинальные требования (или, возможно, Спецификация контрактов). Как-то так.
Max N #:
на если умножить на тот мифический коэффициент 1.81, то примерно получается то же число. осталось только понять, что это за коэффициент такой.

Коэффициент взимания маржи?

SymbolInfoMarginRate()

Маржа для форекса 

Margin:  Lots * Contract_Size / Leverage * Margin_Rate
Max N #:
расчет вручную
 Вот смотрите, у Вас 2 результата, 9645 и 17555. Давайте предположим, что 9645 ошибочный, так как Вы подстааили плечо 40 вместо 22. Исправляемся, 9645*40/22. Получаем 17537, считай, точно в дырочку, плюс-минус курс валюты. Не думайте, что зря тратим время, типа проще скриптом, автопилотом и роботом-пылесосом: имхо, если тут рыбу удить, такие вещи должны в голове лежать на понятных полках. Кстати, пользуясь случаем, раз Вы интересуетесь золотом, добрый совет - не спешите, пожалуйста, переходить на реальный счёт, к торговле на реальные деньги. Золото, имхо - один из самых опасных активов для трейдинга (в том числе своей кажущейся предсказуемостью, растёт же блин, как всё просто... это обманчиво, ну и вообще оно как дикий бык на корриде, выбьет из седла тореодора так, что костей не соберёшь).