Новая версия платформы MetaTrader 5 build 4150: экспорт торгового отчета и новые методы машинного обучения в MQL5 - страница 8

 

В билде 4153 расширили таблицу маржи:

Расчет маржи зависит от настроек символа на стороне брокера.

Если хотите разобраться, то надо предоставить максимум информации для воспроизведения, а не просто итоговые скрины.

 
Renat Fatkhullin #:


Замедление оптимизатора компилятора воспроизвели - разбираемся.

Причина замедления в том, что мы включили больше системных функций в агрессивый инлайнинг.

Поэтому оптимизатор стал тратить существенно больше времени на оптимизацию увеличившегося итогового кода.


Мы это поведение пока менять не будем, так как занимаемся коренной переделкой компилятора. Скорее всего через два месяца покажем совершенно изумительный компилятор и сильно улучшенное IDE.

Что-то будет появляться в бетах, но запуск нового компилятора точно будет не раньше пары месяцев.

 
Renat Fatkhullin #:

В билде 4153 расширили таблицу маржи:

Расчет маржи зависит от настроек символа на стороне брокера.

Если хотите разобраться, то надо предоставить максимум информации для воспроизведения, а не просто итоговые скрины.

Безусловно я буду рад предоставить всю информацию какую могу. В принципе по ссылкам я описал уже когда искал первопричину, но могу ещё раз.

Воспроизведение элементарнейшее:
1. устанавливаете финамовский дистрибутив.
2. запускаете любой советник на любом фьюче с кодом в OnTick 

   double margin, margin_rate;
   double margin_init = SymbolInfoDouble( Symbol(), SYMBOL_MARGIN_INITIAL );
   double ask = SymbolInfoDouble( Symbol(), SYMBOL_ASK );
   
   SymbolInfoMarginRate( Symbol(),ORDER_TYPE_SELL, margin_init, margin_rate);
   Print( "Init Margin: ",SymbolInfoDouble(Symbol(), SYMBOL_MARGIN_INITIAL) );
   Print( "Margin Rate: ", margin_rate);
   Print( "Price is: ", ask);
   Print( "Calc Margin is: ", (OrderCalcMargin(ORDER_TYPE_SELL,Symbol(),1.0,ask,margin)));
   Print( "Margin is: ", margin);


и видите что расчетная маржа 0. На тестере или в лайве - не важно. Стоковый символ, кастомный символ - не важно. Меняете вы коэфы маржи или нет - не важно. Сами коэффициенты меняются, в спецификации это отражается и соответствующие данные выведутся по запросу, но при этом результат OrderCalcMargin использующий эти данные неизменно выдаёт 0.0.

Тот же код в родном дистрибутиве на идентичном кастомном символе посчитает всё корректно.

Коллега говорил что вроде в 4073 работало корректно и в финамовском тоже - я сам не видел. У меня были более ранние и более поздние версии - везде такое некорректное поведение.



 
bred_bred1 #:

Безусловно я буду рад предоставить всю информацию какую могу. В принципе по ссылкам я описал уже когда искал первопричину, но могу ещё раз.

Воспроизведение элементарнейшее:
1. устанавливаете финамовский дистрибутив.
2. запускаете любой советник на любом фьюче с кодом в OnTick 


и видите что расчетная маржа 0. На тестере или в лайве - не важно. Стоковый символ, кастомный символ - не важно. Меняете вы коэфы маржи или нет - не важно. Сами коэффициенты меняются, в спецификации это отражается и соответствующие данные выведутся по запросу, но при этом результат OrderCalcMargin использующий эти данные неизменно выдаёт 0.0.

Тот же код в родном дистрибутиве на идентичном кастомном символе посчитает всё корректно.



1) Вы не указали ни символа, ни вывода этого скрипта.

2) Что вы считаете "родным дистрибутивом"? инсталлятор с сервером MetaQuotes-Demo? На нем конечно будут другие настройки

3) У брокеров часто используются кастомные методы расчета маржи вместо штатных - эти настройки терминал не видит.

Именно поэтому мы в 4150 выпустили штатную возможность указания плавающей маржи, что транслируется на терминалы, показывается в спецификации контракта и правильно учитывается в OrderCalcMargin.

Надеемся, что в ближайшие месяцы брокеры перейдут на новые более удобные штатные настройки маржи и проблема уйдет.

 
Renat Fatkhullin #:

Мы это поведение пока менять не будем, так как занимаемся коренной переделкой компилятора. Скорее всего через два месяца покажем совершенно изумительный компилятор и сильно улучшенное IDE.

Что-то будет появляться в бетах, но запуск нового компилятора точно будет не раньше пары месяцев.

Вернуть компилятор, который был до 4150, а через 2 месяца и более, как будет готов, поменять его на "совершенно изумительный компилятор" --- такой вариант не рассматривается?

Всё таки так долго ждать пока завершится компиляция удручает.

 
Andrei Iakovlev #:

Вернуть компилятор, который был до 4150, а через 2 месяца и более, как будет готов, поменять его на "совершенно изумительный компилятор" --- такой вариант не рассматривается?

Нет.

С компилятором все нормально - он больше системных функций встраивает и лучше оптимизирует код.

Если время компиляции для вас важно, используйте режим без оптимизации - он очень быстрый.

 
Renat Fatkhullin #:

1) Вы не указали ни символа, ни вывода этого скрипта.

2) Что вы считаете "родным дистрибутивом"? инсталлятор с сервером MetaQuotes-Demo? На нем конечно будут другие настройки

3) У брокеров часто используются кастомные методы расчета маржи вместо штатных - эти настройки терминал не видит.

Именно поэтому мы в 4150 выпустили штатную возможность указания плавающей маржи, что транслируется на терминалы, показывается в спецификации контракта и правильно учитывается в OrderCalcMargin.

Надеемся, что в ближайшие месяцы брокеры перейдут на новые более удобные штатные настройки маржи и проблема уйдет.

1. Символ - любой фьюч. Но пускай будет SiH4.  Проблема не в спецификации фьюча(уже всё пробовано-перепробовано) а во внутреннем исполнении самой функции.
Вывод кода: 

То что оно не отображается в спецификации не значит что его нет. Это SIH4 на последнем дистрибутиве. OrderCalcMargin выполнен, но маржа как видно по-прежнему 0.0. 





OrderCalcMargin для фьюча со способом расчёта SYMBOL_CALC_MODE_FUTURES имеет следующую документацию для всех дистрибутивов.  

Margin: Lots * InitialMargin * Margin_Rate


При исполнении OrderCalcMargin(ORDER_TYPE_SELL,Symbol(),1.0,ask,margin)) мы видим что
тип ордера просто Sell,
символ текущий,
лоты  Lots 1.0, 
начальная маржа текущего символа выведена отдельно 89690(см. картинку),
коэффициент маржи 0.2775(см.картинку).

Итого должно получится в соответствии с документацией 1.0 * 89690 * 0.2775 = явно не нуль.

2. Да. Ваш инсталлятор с MetaqQuotes. Но символ-то даже если кастомный закинуть и в финам и в ваш родной - у них будет спецификация одинаковая. 


Так что не знаю какие такие настройки здесь могут вообще на что-то влиять чтобы 2 * 2 != 4



 
Vitaliy Kuznetsov #:
Тяжёлый ПН. Двое пользователей сейчас написали, что у них не работают мои индикаторы (не отображаются уровни) после обновления терминала МТ5 в выходные.

Могу подтвердить что прекратили рабочать часть индикаторов, купленных мной на Маркете, связаные с анализом объемов на урвоне тиков. Интикатор просто висит и все, ничего не может обработать.

Пример прикреплен.

Файлы:
 
Gladiator WXT #:

Могу подтвердить что прекратили рабочать часть индикаторов, купленных мной на Маркете, связаные с анализом объемов на урвоне тиков. Интикатор просто висит и все, ничего не может обработать.

Пример прикреплен.

Это уже обсуждали вчера в воскресенье на англоязычном форуме, была/есть ветка об этом, пользователи делали тесты о том что не работает и так далее, потом результаты вчера послали в профильные ветки на англ (там же) и рус форум (сюда), и сегодня уже было все исправлено (следующий билд 4153).

Просто обновитесь до билда 4153.
Детали: пост и пост
 

https://www.mql5.com/ru/forum/455977/page36#comment_51241056 - этот может повторяться не с первого раза.

https://www.mql5.com/ru/forum/321656/page38#comment_14248126

https://www.mql5.com/ru/forum/455977/page38#comment_51776133

Эти все баги на последней релизной версии на месте.

Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления - Проверьте поведение у разных ДЦ, где оно рыночное. Подождите несколько секунд до наступления следующего тика
Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления - Проверьте поведение у разных ДЦ, где оно рыночное. Подождите несколько секунд до наступления следующего тика
  • 2023.12.19
  • www.mql5.com
автоматическим торговым системам и тестированию торговых стратегий. автоматическим торговым системам и тестированию торговых стратегий. Вот так выглядит исполнение лимитника по текущей цене. А то что СЛ при Instant исполнении не срабатывает сразу же - очень странно