К содержимому
Форекс
на автомате

Расчёт лота от риска: на EURUSD сходится, на золоте и USDJPY нет

Максим К.с 08.2023
Испытатель
11сообщений
Автор темы#1
Считаю лот от риска в процентах и расстояния до стопа в пипсах. На EURUSD всё сходится, а на USDJPY и золоте лот выходит в разы не тот: на демо одна сделка по золоту при риске 1% забрала почти 4% баланса. Функция сейчас такая:
Код:
double CalcLot(double riskPct, double slPips) { double money = AccountInfoDouble(ACCOUNT_BALANCE) * riskPct / 100.0; double pipValue = 10.0; // долларов за пипс на 1 лот double lot = money / (slPips * pipValue); lot = MathFloor(lot / 0.01) * 0.01; return lot; }
Понимаю, что дело в зашитой десятке, но откуда её брать правильно для любого символа, не понимаю. Счёт в долларах, плечо 1:100.
nikolay.orlovс 05.2022
Исследователь
10сообщений
#2
Цену пункта не зашивай, её отдаёт терминал. SYMBOL_TRADE_TICK_SIZE это минимальный шаг цены, SYMBOL_TRADE_TICK_VALUE это сколько стоит такой шаг для одного лота в валюте депозита. Убыток на лот при стопе равен расстоянию до стопа в цене, делённому на tick size и умноженному на tick value. Деньги риска делишь на это число, получаешь лот. И считай стоп в цене или в пунктах символа, а не в пипсах: что такое пипс у золота, каждый понимает по-своему.

Две ловушки. У USDJPY и у кроссов tick value в долларах зависит от курса и меняется с каждым тиком, поэтому брать его надо в момент расчёта, а не один раз в OnInit. И шаг объёма с минимальным лотом тоже бери из спецификации, SYMBOL_VOLUME_STEP и SYMBOL_VOLUME_MIN, у индексов шаг бывает 0.1 и даже 1. Если после округления лот меньше минимального, не открывай минимальный «на всякий случай», пропускай сделку и пиши в журнал, иначе твой 1% тихо превращается в 3%.

Можно ещё проще: OrderCalcProfit с ценой входа и ценой стопа сам посчитает результат для одного лота с конвертацией в валюту счёта. Я сейчас считаю так, меньше ручной арифметики.
Максим К.с 08.2023
Испытатель
11сообщений
Автор темы#3
Переписал через OrderCalcProfit, шаг и минимум объёма беру из спецификации. На трёх символах убыток по стопу 0,97-1,01% баланса. Десятку выкинул.
Продолжить обсуждение

Для ответа войдите в свой аккаунт.

Войти
← Предыдущая темаСледующая тема →