Почему не работают функции определения маржи? - страница 3

 
ivanivan_11:

из справки еще

Торговые функции могут использоваться в экспертах и скриптах. Торговые функции могут быть вызваны только в том случае, если в свойствах соответствующего эксперта или скрипта включена галочка "Разрешить советнику торговать".

а OrderCalcMargin это торговая.

Не согласен, это функция информационная, хоть и находится в разделе торговых. Ок, пусть даже торговая, тогда где информационная для выяснения маржи в индикаторах? Ее нет. Тогда закройте доступ к явно торговым, типа OrderSend и оставьте доступ к остальным.

И почему работает PositionsTotal, ведь она тоже в разделе торговых? Налицо явный маразм или бардак, что-то запретили, что-то разрешили, в доке никак не указано. А я день потерял, пытаясь разгадать, почему нихрена не работает!

Вот, вставил в индюк, работает же

2016.11.25 18:10:08.165 showimportantparams (EURUSD.m,M1) 1.236804412547309e-318

2016.11.25 18:10:08.165 showimportantparams (EURUSD.m,M1) PositionsTotal()=3

 
Alexey Volchanskiy:

В виде скрипта у меня тоже работает, а вот в индикаторе нет. Попробовал, выводит чушь. То есть МК запретили использовать данную функцию в индюках, так как она определяет маржу для посылки ордера!!!

Ну и на фига так делать?  

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

Сегодня мне перестал нравиться МТ5... сразу два маразма обнаружено за день 

 .....

2016.11.25 17:27:20.083 showimportantparams (EURUSD.m,M1) 1.236804412547309e-318

вот когда перестанут такое писать, тогда и можно будет переходить.

Но я слышал, что МТ4 уже не поддерживается? Честно говоря задолбали уже обновления, может быть оно и к лучшему, т.е. МТ4 законченная по реализации платформа и можно спокойно теперь работать в ней.

 
Alexey Volchanskiy:
Для индикатора писал такое

double getMargin(string symbol, double volume, string end = "")
{
    long leverage = AccountInfoInteger(ACCOUNT_LEVERAGE);
    double contract = SymbolInfoDouble(symbol, SYMBOL_TRADE_CONTRACT_SIZE) * volume;
    string currency = StringSubstr(symbol, 0, 3) + AccountInfoString(ACCOUNT_CURRENCY) + end;
    return SymbolInfoDouble(currency, SYMBOL_LAST) * contract / leverage;
}
end - для суффиксов, как на RoboFX, типа EURUSD.m
end = ".m"
 
Renat Akhtyamov:

вот когда перестанут такое писать, тогда и можно будет переходить.

Но я слышал, что МТ4 уже не поддерживается? Честно говоря задолбали уже обновления, может быть оно и к лучшему, т.е. МТ4 законченная по реализации платформа и можно спокойно теперь работать в ней.

Где вы такое слышали? От барабашки?

Я вот от Рената читал, что развития платформы МТ4 больше не будет.

Но поддержка и развитие - две большие разницы.

 
Andy Sanders:
Для индикатора писал такое

double getMargin(string symbol, double volume, string end = "")
{
    long leverage = AccountInfoInteger(ACCOUNT_LEVERAGE);
    double contract = SymbolInfoDouble(symbol, SYMBOL_TRADE_CONTRACT_SIZE) * volume;
    string currency = StringSubstr(symbol, 0, 3) + AccountInfoString(ACCOUNT_CURRENCY) + end;
    return SymbolInfoDouble(currency, SYMBOL_LAST) * contract / leverage;
}
end - для суффиксов, как на RoboFX, типа EURUSD.m
end = ".m"

Все верно, в хелпе так и рекомендуют вычислять, см. ссылку ниже. А в классе СБ CInfoSymbol это никак не отражено. Как верно заметил один из уважаемых мной программеров с этого форума, в СБ есть отличные классы, а есть такие, которые написаны идиотами под ширевом )

Ссылка на таблицу с расчетом маржи для всех видов торговли https://www.mql5.com/ru/forum/161895/page2#comment_3869012 

Почему не работают функции определения маржи?
Почему не работают функции определения маржи?
  • www.mql5.com
Пишу индикатор, выяснил, что не работают функции в CAccountInfo по определению маржи...
 
Artyom Trishkin:

Где вы такое слышали? От барабашки?

Я вот от Рената читал, что развития платформы МТ4 больше не будет.

Но поддержка и развитие - две большие разницы.

Да, верно, поддержка будет очень долго, т.к. на ней работают 90% трейдеров и 100% ДЦ. А вот развития, как в пятерке, уже не будет, будут иногда делать патчи с исправлением ошибок и на этом все.

Не, пятерка отличная платформа, это я был сегодня расстроен потерянным временем, вот так и написал.

Но! Некоторыми классами СБ пользоваться нельзя, ибо это классы-помойки, надо писать свое. И нет документации таких глупостей, на которые я наткнулся сегодня. 

Я работал в больших программерских компаниях и знаю, что 10% - отличные программисты, 50-70% - середнячки и остальное - отстой, у которого главное хоть как-то сделать задание и домой пиво пить. Так везде, это жизнь. Как говорится, родина требует героев, а п***а рождает дураков )

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

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