Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Position sizing from risk, using the broker's own tick value and volume step - библиотека для MetaTrader 5

Ralph Ivan Simeon
Ralph Ivan Simeon
I build and audit automated trading systems for MetaTrader 5, with most of my work on XAUUSD.
| Russian English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Просмотров:
19
Рейтинг:
(2)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Любой калькулятор размера лота, в котором предполагается, что один пип равен десяти долларам, дает неверные результаты при торговле золотом, индексами, кроссами с йеной и на любых счетах, номинированных не в долларах США — а именно в таких случаях завышение размера лота приводит к убыткам. Этот заголовок вместо этого производит расчеты на основе данных, которые сервер фактически публикует для данного символа.

Как это работает Что возвращает функция CalcLots(), включая случай, который большинство процедур расчета размеров оценивают неверно

CalcLots() принимает сумму риска в валюте счета, цену входа и цену стопа, и возвращает объем для торговли вместе с информацией о том, какой риск на самом деле несет этот объем после применения ограничений брокера.

  • Объем всегда округляется в меньшую сторону до шага объема, установленного брокером. Округление в большую сторону незаметно привело бы к риску, превышающему запрашиваемый, а это единственное, чего программа расчета размера позиции ни в коем случае не должна допускать.
  • Если запрошенный риск меньше минимального лота, функция не пытается его имитировать. Она возвращает минимальное значение, устанавливает clamped_min и сообщает о риске, который фактически несет позиция — он будет больше запрошенного.
  • Она не зависит от направления рынка. Стоп-приказ может располагаться выше или ниже точки входа.

Она также возвращает расстояние до стопа в пунктах и значение одного пункта на 1,00 лота, чтобы вызывающая сторона могла продемонстрировать принцип работы, а не просто число.

Почему математика находится в отдельном заголовке

Calc.mqh не хранит состояние терминала. Он принимает структуру SymbolSpec — точку, размер тика, значение тика, минимальный/максимальный объем и шаг, количество знаков — так что вся логика расчета размера позиции может быть протестирована в автономном режиме на синтетических инструментах.

SpecFromSymbol() — единственный мост к реальным данным. Сначала она считывает SYMBOL_TRADE_TICK_VALUE_LOSS, поскольку именно эту величину сервер использует, когда сделка идет против вас — а это как раз та сторона, на которой находится стоп-лосс; для брокеров, оставляющих вариант убытка равным нулю, она переключается на SYMBOL_TRADE_TICK_VALUE.

Именно это разделение и делает возможным использование прилагаемого тестового скрипта.

Тестовый скрипт

RiskLotCalculatorTests.mq5 запускается на любом графике без подключения к брокеру и без истории. Он проверяет 41 случай: округление шага объема, оба ограничителя и их флаги, масштабирование значения пункта при расхождении размера тика и размера пункта, 5-значная основная валюта, золото, индекс со шагом в 0,1 лота, оба направления сделки и все варианты отказа — нулевой риск, отрицательный риск, стоп-ордер, расположенный на точке входа, и отсутствующие данные по тикам.

Перетащите его на график и ознакомьтесь с вкладкой «Эксперты». Результат: ALL PASS, passed=41, failed=0.

Оба файла являются самодостаточными: поместите их в одну папку, и тестовый скрипт скомпилируется без изменений.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/77488

Daily Range Budget Daily Range Budget

Показывает, какая часть среднего дневного хода (ADR) уже использована сегодня, и рисует две цены, до которых могут дойти сегодняшние максимум и минимум, если день закончится со средним ходом. Shows how much of the average daily range (ADR) has already been used today, and draws the two prices that today's high and low can still reach if the day ends with an average range.

RiskPilot Pro — панель управления рисками с функцией «перетаскивания для открытия сделки», включая уровень безубыточности, скользящий стоп-лосс и защиту от дневных убытков RiskPilot Pro — панель управления рисками с функцией «перетаскивания для открытия сделки», включая уровень безубыточности, скользящий стоп-лосс и защиту от дневных убытков

Перетащите стоп-лосс туда, где вам действительно нужно, нажмите «Купить» или «Продать» — и размер лота уже будет рассчитан правильно: ни калькулятора, ни таблицы не понадобится. Система автоматически настраивает уровень безубыточности, трейлинг-стоп и закрывает торговлю на день, если вы достигнете лимита убытка.

Contract Sizer: ladder, floor and a breaker that survives a deposit Contract Sizer: ladder, floor and a breaker that survives a deposit

Три механизма защиты при определении размера позиции, которые действуют по-разному; именно их путаница приводит к тому, что так много счетов оказываются полностью обнуленными: - «лестница»: один контракт на каждые X баланса, всегда применяется в качестве верхнего предела (CAP), даже при ручном определении размера лота; - floor: при балансе ниже минимального капитала торговля не ведётся; требуется новый депозит; - breaker: срабатывает при падении на X% ниже пикового значения, независимо от размера счёта, и не сбрасывается автоматически. Что решает эта библиотека, а почти ни одна другая — депозит не является прибылью, а вывод средств — убытком. Брейкер измеряет падение относительно пикового значения баланса. Без специальной обработки пополнение счёта, произведённое ВО ВРЕМЯ просадки, одновременно повышает баланс и пиковое значение, и защита перестаёт фиксировать падение именно в тот момент, когда это было бы полезно. Здесь пополнения и снятия средств смещают пиковое значение на одинаковую величину. Пиковое значение сохраняется в файле: защитный механизм, который забывает пиковое значение при перезапуске терминала, не является защитным механизмом. Демо-версия моделирует внесение средств в момент достижения дна просадки. Запустите её с включенным и выключенным внесением средств и сравните столбец «падение».

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.