Проверка достаточности средств

 

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

что-то типа как на mql5 OrderCalcMargin

 
Nikita Chernyshov:

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

что-то типа как на mql5 OrderCalcMargin

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

Одним из таких частных случаев можно считать выполнение следующих условий:

  1. Базовая валюта символа является валютой депозита.
  2. До момента срабатывания ордера не предполагается открытие новых рыночных ордеров и закрытие имеющихся рыночных ордеров.
Если эти условия выполняются, то делаем расчет величины свободных средств на момент открытия отложенного ордера (баланс плюс прибыль от всех имеющихся рыночных ордеров на момент открытия нового отложенного ордера), а после сравниваем полученное значение с необходимой для открытия отложенного ордера маржой. При условии выполнения п. 1 маржа рассчитывается как произведение стоимости контракта, объема ордера, цены открытия и величины плеча (плечо 1:100 означает 0.01).
 
Ihor Herasko #:

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

Одним из таких частных случаев можно считать выполнение следующих условий:

  1. Базовая валюта символа является валютой депозита.
  2. До момента срабатывания ордера не предполагается открытие новых рыночных ордеров и закрытие имеющихся рыночных ордеров.
Если эти условия выполняются, то делаем расчет величины свободных средств на момент открытия отложенного ордера (баланс плюс прибыль от всех имеющихся рыночных ордеров на момент открытия нового отложенного ордера), а после сравниваем полученное значение с необходимой для открытия отложенного ордера маржой. При условии выполнения п. 1 маржа рассчитывается как произведение стоимости контракта, объема ордера, цены открытия и величины плеча (плечо 1:100 означает 0.01).

Кроме открытия и закрытия ещё надо участь на сколько будет увеличен убыток до момента активации той самой отложки.

Вывод: Овчинка выделки не сто́ит.

 
Alexey Viktorov #:

Кроме открытия и закрытия ещё надо участь на сколько будет увеличен убыток до момента активации той самой отложки.

Вывод: Овчинка выделки не сто́ит.

Там ниже тоже текст есть ))


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

Причина обращения: