Как получить программно "Процент маржи" - страница 6

 
ir0407:
Процент маржи - это не высчитанный залог. Это всего лишь один из компонентов для расчета залога. А результат этого расчета(по формулам из таблицы) возвращается в валюте маржи, которую потом(если она отличается от валюты депо) нужно конвертировать в валюту депо.
Всё понял кроме одного, в чем суть этого компонента )
 
K-2SO:

Брокера подскажите пожалуйста. Мне для тестов...
Робо.
 

Поделюсь тестами, и я окончательно запутался в этих формулах, которые пока так и не удалось сложить в одну единственную. Три разных брокера - три разных процента маржи - три разных формулы, которые можно сказать практически подогнал под результат. Это подсчет залога по одному уже выставленному(!) ордеру (BUY) на золоте.  

Как видно процент маржи все-таки иногда важен, но вот метаквотам он действительно не нужен.   

 margin=OrderLots()*contract*OrderOpenPrice()/leverage/100; // метаквоты - процент маржи 100%

 margin=OrderLots()*contract*OrderOpenPrice()*Percentage/100; // инста - процент маржи 1%
            
 margin=(OrderLots()*contract*OrderOpenPrice()*Percentage)/leverage/100;// робо - процент маржи 200%
 
Кажется я понял, как должна работать общая формула (когда наконец осознал, что есть процент маржи на самом деле) - тесты не зря прошли. И да... значение процента маржи нужно использовать обязательно (даже для уже выставленного ордера). Когда пойму как вычислить, получить это значение, поделюсь своими выводами по общей формуле расчета залога для одного выставленного ордера по CFD, если будет кому-то интересно... хотя в принципе все на виду (искомая зависимость), в коде сообщением выше. 
 
K-2SO:
Кажется я понял, как должна работать общая формула (когда наконец осознал, что есть процент маржи на самом деле) - тесты не зря прошли. И да... значение процента маржи нужно использовать обязательно (даже для уже выставленного ордера). Когда пойму как вычислить, получить это значение, поделюсь своими выводами по общей формуле расчета залога для одного выставленного ордера по CFD, если будет кому-то интересно... хотя в принципе все на виду (искомая зависимость), в коде сообщением выше. 

Всё уже есть на первой странице

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

Как получить программно "Процент маржи"

Alexey Viktorov, 2017.06.02 09:42

Ну да... фантазия это наше всё... только не понятно почему люди пытающиеся тебе помочь должны фантазировать о том, что нафантазировал себе ты? Ну да ладно, вопрос не в этом.

Как из той формулы получить требуемое:

Сама формула - Margin = Lots *ContractSize*MarketPrice*Percentage/100

Отсюда Percentage = Margin/(Lots *ContractSize*MarketPrice/100)

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

MarketInfo(_Symbol, MODE_MARGINREQUIRED);

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

Если надо для mql5 то надо использовать

bool  SymbolInfoMarginRate( 
   string             name,                     // символ 
   ENUM_ORDER_TYPE    order_type,               // тип ордера 
   double&            initial_margin_rate,      // коэффициент взимания начальной маржи 
   double&            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );

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

MarketInfo(symbol, MODE_MARGINREQUIRED);

От этой маржи считаем процент маржи и уже потом считаем маржу по конкретному ордеру. Но опять повторяю, маржа не всегда считается в валюте депозита и переводится в неё по текущему курсу на момент открытия ордера, а достать его (курс валюты) потом, в mql4 нет никакой возможности. В mql5 проще, там есть CopyTicks() и можно достать курс валюты на момент открытия ордера, но это уже не тот язык о котором говорим здесь.

 
Alexey Viktorov:

 Но опять повторяю, маржа не всегда считается в валюте депозита и переводится в неё по текущему курсу на момент открытия ордера, а достать его (курс валюты) потом, в mql4 нет никакой возможности. 

В этом моменте все еще путаюсь. Понятно, что MARGINREQUIRED возвращает значение в валюте депозита, а нам в какой надо? В валюте котировки инструмента?
 
K-2SO:
В этом моменте все еще путаюсь. Понятно, что MARGINREQUIRED возвращает значение в валюте депозита, а нам в какой надо? В валюте котировки инструмента?

Сравни 2 снимка, в первом сообщении и на пятой странице в моём сообщении. И там и там спецификация золота, но в первом валюта маржи USD, а во втором XAU. Отсюда, в первом случае ничего можно не делать, а во втором, получив маржу в валюте депозита её надо перевести в валюту маржи, умножив на котировку и это ставить в формулу по которой вычисляем процент маржи. Иначе будет неверный результат. Соответственно в формулу надо ещё доставать

SYMBOL_CURRENCY_MARGIN

Валюта в которой вычисляется залоговые средства

string

 

После некоторых экспериментов, должен признать что здесь

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

Как получить программно "Процент маржи"

Alexey Viktorov, 2017.06.02 10:24

Плечо вообще за пределами основной формулы Margin = (Lots*ContractSize*MarketPrice*Percentage)/Leverage, потому я и не учитывал его. Для определения того о чём вопрос плечо совсем как корове седло. А вот дальше оно может и потребоваться, но это уже не касается текущего вопроса...

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

MarketInfo(symbol, MODE_MARGINREQUIRED);

получаем с учётом плеча.



 
Alexey Viktorov:

После некоторых экспериментов, должен признать что здесь

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

получаем с учётом плеча.

Тесты показывают, что когда процент маржи равен 1 плечо не учитывается! А вот от 100 и выше, уже учитывается. Жаль не могу найти брокера с процентом маржи от 2 до 99 включительно.

 
K-2SO:

Тесты показывают, что когда процент маржи равен 1 плечо не учитывается! А вот от 100 и выше, уже учитывается. Жаль не могу найти брокера с процентом маржи от 2 до 99 включительно.

откройте демо-счет на 5 баксов с плечом 100 и посмотрите чему будет равна маржа в %-тах, к примеру по тому же золоту или еще прикольнее - по рублю...