Moriarti
Активный участник
Ранее торговал главным образом на EUR/USD и такого вопроса не возникало. Сейчас начал присматриваться к другим парам (главным образом, кросс-курсам) и запутался в трёх соснах. А именно в том, как рассчитывается маржа по открытым позициям.
Сразу отмечу, что о существовании функции AccountMargin() знаю. Вопрос состоит в том, чтобы понять, как она работает. Также иногда требуется вычислить маржу по каждой открытой позиции отдельно.
В случае с EUR/USD для отдельно взятого ордера вроде бы всё ясно:
Мы умножаем величину стандартного лота, выраженную в базовой валюте котировки (в нашем случае EUR), на курс этой валюты относительно валюты депозита (EUR/USD), взятый на момент открытия позиции, затем делим его на торговое плечо и умножаем на лот.
Я всегда считал именно так и думал, что это правильно. Я исхожу из предположения, что размер залога остаётся постоянным вне зависимости от того, как дальше меняется курс EUR/USD.
Теперь предположим, что мы работаем по EUR/JPY. Очевидно, что формула выше больше не пригодна и нам надо умножать величину стандартного лота не на OrderOpenPrice(), а опять таки на курс EUR/USD.
И вот здесь у меня (внезапно) возникает вопрос. А что это за курс? Тот, что был в момент открытия позиции или тот, что есть сейчас (в тот момент, когда мы хотим получить значение маржи для этой позиции)?
Пожалуйста, помогите разобраться!
Сразу отмечу, что о существовании функции AccountMargin() знаю. Вопрос состоит в том, чтобы понять, как она работает. Также иногда требуется вычислить маржу по каждой открытой позиции отдельно.
В случае с EUR/USD для отдельно взятого ордера вроде бы всё ясно:
PHP:
margin = MarketInfo(Symbol(),MODE_LOTSIZE) * OrderOpenPrice() / AccountLeverage() * OrderLots();
Мы умножаем величину стандартного лота, выраженную в базовой валюте котировки (в нашем случае EUR), на курс этой валюты относительно валюты депозита (EUR/USD), взятый на момент открытия позиции, затем делим его на торговое плечо и умножаем на лот.
Я всегда считал именно так и думал, что это правильно. Я исхожу из предположения, что размер залога остаётся постоянным вне зависимости от того, как дальше меняется курс EUR/USD.
Теперь предположим, что мы работаем по EUR/JPY. Очевидно, что формула выше больше не пригодна и нам надо умножать величину стандартного лота не на OrderOpenPrice(), а опять таки на курс EUR/USD.
И вот здесь у меня (внезапно) возникает вопрос. А что это за курс? Тот, что был в момент открытия позиции или тот, что есть сейчас (в тот момент, когда мы хотим получить значение маржи для этой позиции)?
Пожалуйста, помогите разобраться!