Если посчитать, что свободная маржа $2000, то 5% будет равно 0.1 лота.
Что и выдает формула.
Если посчитать, что свободная маржа $20000, то 5% будет равно 1 лот. Что и выдает формула.
Ошибок нет. Может что-то другое имели в виду?
Если посчитать, что свободная маржа $20000, то 5% будет равно 1 лот. Что и выдает формула.
Ошибок нет. Может что-то другое имели в виду?
100*0.5/1000 = 0.05 лота. Нормализация даёт 1 лот.
100*0.05/1000 = 0.005 лота. Нормализация должна вернуть 0 лотов.... Не знаю, почему получается 50%, может проверь в остальном коде, откуда он берёт лоты для торговли.
Предлагаю такое решение для торговли мини-лотами:
double Lots = MathCeil(AccountFreeMargin()*Risk/100*AccountLeverage()/10000)*0.1
или вся функция, возвращающая количество торгуемых лотов:
double setLots() { if(staticLots==0) { double Lots = MathCeil(AccountFreeMargin()*Risk/100*AccountLeverage()/10000)*0.1; if(Lots<=0.1) { Print("Баланса хватает только на минимальное количество лотов."); Lots=0.1; } message=StringConcatenate("Количество торгуемых лотов: ", Lots); } if(staticLots!=0) { Lots=staticLots; message=StringConcatenate("Количество торгуемых лотов установленно вручную: ", Lots); } Print(message); return(Lots); }
У нас разные представления о свободной марже :о)
CTPAYC:
Да, если уходить в маленькие суммы, то нормализация до 1 знака
после запятой все испортит.У нас разные представления о свободной марже :о)
Нужен более тонкий инструмент расчета.
Спасибо ребята за внимание. Я уже решил проблему. Теперь в настройках
указываю не 0.05, а 5, т.е. 5%.
extern int RiskMax=5;
double Lots=NormalizeDouble(AccountFreeMargin()*RiskMax/100000.0,1);

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вместо 5% используеться 50%. В чем дело?
Если ставить значене RiskMax равным 0.5, то максимальный риск составляет 50%, при значении 0.05, риск должен быть 5%, но он все равно остаеться 50%.