Универсальная формула расчета объема ордера по заданному риску для всех инструментов - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сначала нужно найти стоимость 1-го пункта в валюте депозита
Пусть, SL и TP - стоп-приказы в пунктах, Loss - потери в валюте депозита, Profit - прибыль в валюте депозита, Lot - объем позиции.
Задача 1. Известны Lot и SL. Loss=Lot*SL*pv, Profit=Lot*TP*pv
Задача 2. Известны SL и Loss. Lot=Loss/(SL*pv), Profit=Loss*TP/SL
Сначала нужно найти стоимость 1-го пункта в валюте депозита
Пусть, SL и TP - стоп-приказы в пунктах, Loss - потери в валюте депозита, Profit - прибыль в валюте депозита, Lot - объем позиции.
Задача 1. Известны Lot и SL. Loss=Lot*SL*pv, Profit=Lot*TP*pv
Задача 2. Известны SL и Loss. Lot=Loss/(SL*pv), Profit=Loss*TP/SL
К сожалению, я тоже сначала пошел по этому пути, но эти простые формулы - не универсальны. Они работают не для всех инструментов, например, для индексов в национальной валюте.
Например, индекс DAX — основной индекс немецкого фондового рынка, который отслеживает динамику акций 40 крупнейших компаний Германии на основе рыночной капитализации на Франкфуртской фондовой бирже, рассчитывается в евро. Поэтому после того, как будет найдено значение Loss, надо это значение еще умножить на курс национальной валюты EURUSD, чтобы получить Loss в валюте депозита. Тоже самое и для FTSE, найденное значение Loss надо умножить на курс GBPUSD и т.д. Кроме того, есть еще своя специфика расчета Loss для криптовалюты.
Так что для предварительной оценки результата торговой операции достаточно функции OrderCalcProfit(), которая вычислит размер прибыли/убытка с учетом специфики рыночного окружения.
К сожалению, я тоже сначала пошел по этому пути, но эти простые формулы - не универсальны. Они работают не для всех инструментов, например, для индексов в национальной валюте.
Например, индекс DAX — основной индекс немецкого фондового рынка, который отслеживает динамику акций 40 крупнейших компаний Германии на основе рыночной капитализации на Франкфуртской фондовой бирже, рассчитывается в евро. Поэтому после того, как будет найдено значение Loss, надо это значение еще умножить на курс национальной валюты EURUSD, чтобы получить Loss в валюте депозита. Тоже самое и для FTSE, найденное значение Loss надо умножить на курс GBPUSD и т.д. Кроме того, есть еще своя специфика расчета Loss для криптовалюты.
Так что для предварительной оценки результата торговой операции достаточно функции OrderCalcProfit(), которая вычислит размер прибыли/убытка с учетом специфики рыночного окружения.
написать простейший скрипт и проверить, большого труда не составит...
написать простейший скрипт и проверить, большого труда не составит...
Написать простейший скрипт - труда не составит, только не понятно, что надо проверить?
Какой индекс? И что делает швейцарский франк на картинке?
Написать простейший скрипт - труда не составит, только не понятно, что надо проверить?
Какой индекс? И что делает швейцарский франк на картинке?
На картинках видно, что DAX. А франк - просто сменил валюту счета. Оказалось, что расчет стоимости пункта в валюте депозита верен.
На картинках видно, что DAX. А франк - просто сменил валюту счета. Оказалось, что расчет стоимости пункта в валюте депозита верен.
Размер пункта в валюте котировки point=0.01 EUR. На картинках ты показываешь стоимость одного пункта в разных валютах депозита USD и CHF.

Получается, что 1 евроцент равен 0.01 USD и 0,01 CHF одновременно? Но такого не может быть, значит все-таки упрощенный расчет стоимости пункта в валюте депозита, который ты предлагаешь, неполный.
Поскольку валюта котировки EUR не совпадает с валютой депозита USD, то полученный результат необходимо еще умножить курс EURUSD...
Поясни, пожалуйста, есть индекс DAX, который рассчитывается в EUR (валюта котировки), вот его примерная цена закрытия 21,200 EUR.
Размер пункта в валюте котировки point=0.01 EUR. На картинках ты показываешь стоимость одного пункта в разных валютах депозита USD и CHF.
Получается, что 1 евроцент равен 0.01 USD и 0,01 CHF одновременно? Но такого не может быть, значит все-таки упрощенный расчет стоимости пункта в валюте депозита, который ты предлагаешь, неполный.
Поскольку валюта котировки EUR не совпадает с валютой депозита USD, то полученный результат необходимо еще умножить курс EURUSD...
Конечно же нет. Стоимость 1-го пункта в валюте депозита означает, что мы получим такую-то прибыль/убыток, если значение цены изменится на 1 пункт (точка). Все торговые операции сводятся к обмену одной валюты на другую. Но, валюты DAX, нету в природе. По крайней мере в ISO 4217, она не зарегистрирована. Если счет открыт в eur, то и прибыль/убыток будут в eur. Если счет в тугриках, то в них и будут расчеты.
Еще раз, DAX - это просто индекс, когда чего-то там сложили на что-то поделили и вывели на график. Мы просто делаем ставку - будет расти этот индекс или нет. Если мы угадали - премия, нет - убыток. Аналог - приходим мы на ипподром и делаем ставку на лошадь в фунтах, а лошадь зовут EUR. Если она победит, то выигрыш нам выплатят в eur или gbp? В какой валюте мы ставили, в той нам и выплатят, а имя лошади тут вообще никаким боком.
Попробуйте написать простейший советник. Алгоритм - каждый 10-ый бар открывается новая позиция. Как только позиция пройдет 20 пунктов, она закрывается. При расчете объема позиции сначала используйте свой очень мудрый метод. А потом, наивный мой. Сравните результаты.
Попробуйте написать простейший советник. Алгоритм - каждый 10-ый бар открывается новая позиция. Как только позиция пройдет 20 пунктов, она закрывается. При расчете объема позиции сначала используйте свой очень мудрый метод. А потом, наивный мой. Сравните результаты.
Ну что же, делать нечего, написал простейший скрипт.
А вот результат прогона скрипта на DE40 (брокер Tickmill), размер лота volume=1.0
2025.04.19 19:01:13.104 -- OrderCalProfit2 (DE40,M10) Метод №1 (наивный): P/L=2.0
2025.04.19 19:01:13.104 -- OrderCalProfit2 (DE40,M10) Метод №2 (мудрый) : P/L=2.28
Здесь очевидно причина расхождения в том, что в твоей формуле не учитывается курс EURUSD...
А вот результат прогона скрипта на DE40 (брокер Tickmill), размер лота volume=1.0
2025.04.19 19:01:13.104 -- OrderCalProfit2 (DE40,M10) Метод №1 (наивный): P/L=2.0
2025.04.19 19:01:13.104 -- OrderCalProfit2 (DE40,M10) Метод №2 (мудрый) : P/L=2.28
Здесь очевидно причина расхождения в том, что в твоей формуле не учитывается курс EURUSD...
Ну, все-таки надо запустить советник для сравнения.
Еще раз - валюта котировки, валюта прибыли и валюта депозита - это три разных валюты. А вот цена 1-го пункта в валюте депозита - всегда константа. Трейдеру удобнее считать убытки/прибыли в той валюте, в которой он открыл свой счет. Попробуйте сделать элементарный советник 9не важно прибыль/убыток от него будет) и тогда сможете сравнить разницу.