| / | Форум |
|
ExpertTrader
10.05.2006 17:34
Вместо 5% используеться 50%. В чем дело? Если ставить значене RiskMax равным 0.5, то максимальный риск составляет 50%, при значении 0.05, риск должен быть 5%, но он все равно остаеться 50%.
|
|
Увеличьте эффективность групповой работы Поставьте TeamWox и увеличьте эффективность групповой работы в вашей компании. TeamWox позволяет хранить всю рабочую информацию в одном месте: письма, документы, файлы, платежи и история сообщений в чате. Так решается проблема сохранности данных и удобной групповой работы с ними. |
3646 |
Renat
10.05.2006 20:13
Если посчитать, что свободная маржа $2000, то 5% будет равно 0.1 лота.
Что и выдает формула.
Если посчитать, что свободная маржа $20000, то 5% будет равно 1 лот. Что и выдает формула. Ошибок нет. Может что-то другое имели в виду? |
|
CTPAYC
10.05.2006 20:16
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
10.05.2006 20:18
У нас разные представления о свободной марже :о) |
3646 |
Renat
10.05.2006 20:26
CTPAYC писал (а): Да, если уходить в маленькие суммы, то нормализация до 1 знака
после запятой все испортит.У нас разные представления о свободной марже :о) Нужен более тонкий инструмент расчета. |
|
ExpertTrader
10.05.2006 23:50
Спасибо ребята за внимание. Я уже решил проблему. Теперь в настройках
указываю не 0.05, а 5, т.е. 5%.
extern int RiskMax=5; double Lots=NormalizeDouble(AccountFreeMargin()*RiskMax/100000.0,1); |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий