Маржа у брокера изменилась, а вот код эти изменения не видит

 

В связи с предстоящим референдумом, некоторые брокеры снизили плечо.

Написала скрипт (mql4), чтобы перед открытием сделки проверить, коснулись ли эти изменения моего счета или нет.

double Lot = 0.01; // Лот

double _buyM   = AccountFreeMargin()-AccountFreeMarginCheck(Symbol(), OP_SELL, Lot);
double _sellM  = AccountFreeMargin()-AccountFreeMarginCheck(Symbol(), OP_BUY, Lot);
double _marga  = AccountMargin();
double _SbuyM  = _marga+_buyM;
double _SsellM = _marga+_sellM;
Alert("----------------------------------------------------------------------------------------------");
Alert("SELL лот = ", Lot," маржа: ", NormalizeDouble(_buyM, 3), "   Итого маржа составит: ", NormalizeDouble(_SbuyM, 3));    
Alert("BUY лот = ", Lot," маржа: ", NormalizeDouble(_sellM, 3), "   Итого маржа составит: ", NormalizeDouble(_SsellM, 3));
Alert("Текущая маржа: ", NormalizeDouble(_marga, 3));
Alert("Плечо: ", AccountInfoInteger(ACCOUNT_LEVERAGE)); 

Но скрипт как выводит прежние значения, так и выводит:

алерт

Хотя реальные значения уже другие:

маржа

Ладно с плечом, оно могло измениться именно на конкретных валютных парах. Но вот почему не работает функция?:

AccountFreeMarginCheck(Symbol(), OP_SELL, Lot)

Ведь она конкретно на паре, на которой запущен скрипт, должна определить сколько свободных средств останется после открытия позиции. Вот она не увидела изменений!

 
Та же самая байда, они даже не стали ничего объяснять =) сказали просто что типа маркетинфо выдает не верную информацию и всё 
 
Oksana Berenko:

В связи с предстоящим референдумом, некоторые брокеры снизили плечо.

Написала скрипт (mql4), чтобы перед открытием сделки проверить, коснулись ли эти изменения моего счета или нет.

Но скрипт как выводит прежние значения, так и выводит:

Хотя реальные значения уже другие:

Ладно с плечом, оно могло измениться именно на конкретных валютных парах. Но вот почему не работает функция?:

Ведь она конкретно на паре, на которой запущен скрипт, должна определить сколько свободных средств останется после открытия позиции. Вот она не увидела изменений!

А если через SymbolInfo...()?
 
Alexey Kozitsyn:
А если через SymbolInfo...()?

А там в МТ4 вообще нифига не работает, я вчера пост писал, тоже, как Оксана, сделал себе индикатор на период референдума.

https://www.mql5.com/ru/forum/88960#comment_2588419 

Почему не работают функции определения margin для символа?
Почему не работают функции определения margin для символа?
  • www.mql5.com
МТ4, билд 971. Следующий код печатает нули, где я неправ? Вывод: 2016.06.20 16:35:48.473 ShowImportantParams EURUSD.e,M1: 0.00 0.00 0.00 no error...
 
Поднимал эту тему ещё год назад кажется. Где то у меня в профиле можно её поискать и насколько помню на 4 странице приводил формулу как считать плечо по каждом инструменту не используя AccountLeverage
 
Alexey Oreshkin:
Поднимал эту тему ещё год назад кажется. Где то у меня в профиле можно её поискать и насколько помню на 4 странице приводил формулу как считать плечо по каждом инструменту не используя AccountLeverage
AccountLeverage у меня только для информации, в расчетах его не использую