Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 56
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Функция CalculateLot предназначена для автоматического вычисления объема торгового лота на основе принципов риск-менеджмента. Она позволяет трейдеру задать процент от баланса счета, которым он готов рискнуть в сделке, и на основе этого определить оптимальный объем позиции.
Синтаксис
double CalculateLot(double riskPercent, double stopLossPips);
Параметры
Параметр Тип Описание riskPercent double Процент от текущего баланса счета, которым трейдер готов рискнуть. Указывается в абсолютном значении (например, 2.0 = 2% от баланса). stopLossPips double Расстояние до уровня Stop Loss в пунктах. Для 5-значных котировок указывается количество стандартных пунктов (например, 1000 = 1000 пунктов = 100 пипсов).
Возвращаемое значение
Функция возвращает нормализованный объем лота ( double ), который:
-
Соответствует правилам округления до шага изменения объема ( VOLUME_STEP );
-
Не превышает максимально допустимый объем ( VOLUME_MAX );
-
Не меньше минимально допустимого объема ( VOLUME_MIN ).
Если расчетное значение выходит за допустимые пределы, функция возвращает ограниченное значение (minLot или maxLot).
Алгоритм работы
-
Получение параметров счета и символа
-
Текущий баланс ( ACCOUNT_BALANCE )
-
Стоимость тика ( SYMBOL_TRADE_TICK_VALUE )
-
Минимальный, максимальный и шаг изменения лота
-
-
Расчет суммы риска в валюте депозита
riskAmount = баланс × (риск% / 100) -
Расчет объема лота
lotSize = riskAmount / (stopLossPips × tickValue)
-
Нормализация и валидация
-
Округление до ближайшего шага ( VOLUME_STEP )
-
Проверка на минимальное и максимальное значение
-
Примеры использования
Пример 1. Базовое использование в советнике
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { //--- Задаем риск 1.5% от баланса и стоп-лосс 500 пунктов double lot = CalculateLot(1.5, 500); //--- Проверяем, что лот рассчитан корректно if(lot > 0.0) { //--- Получаем текущие цены double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); //--- Рассчитываем уровни double sl = ask - 500 * _Point; double tp = ask + 1500 * _Point; //--- Открываем позицию trade.Buy(lot, _Symbol, ask, sl, tp); } }
Пример 2. Использование в скрипте с проверкой на ошибки
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { double riskPercent = 2.0; // Риск 2% от баланса double stopLossPips = 1000; // Стоп-лосс 1000 пунктов double lot = CalculateLot(riskPercent, stopLossPips); //--- Выводим информацию о расчете Print("=== Результаты расчета лота ==="); Print("Баланс счета: ", AccountInfoDouble(ACCOUNT_BALANCE)); Print("Риск, %: ", riskPercent); Print("Сумма риска: ", AccountInfoDouble(ACCOUNT_BALANCE) * riskPercent / 100.0); Print("Стоп-лосс, пунктов: ", stopLossPips); Print("Стоимость тика: ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)); Print("Рассчитанный лот: ", lot); Print("================================"); if(lot <= 0.0) { Alert("Ошибка: не удалось рассчитать лот. Проверьте параметры риска и стоп-лосса."); } }
WPR Monitoring MTF Trend
мониторинг различных тенденций временных рамок в одной временной рамке
SessionRangeBoxes
Рисует цветные рамки диапазонов для азиатской, лондонской и нью-йоркской сессий на любом графике. Включает панель статистики, показывающую средние диапазоны сессий в пунктах, и дополнительные оповещения о прорыве, когда цена выходит из коробки сессии.
Modern Time Panel - Candle Time
Modern Time Panel для MT5 Modern Time Panel - это элегантный, минималистичный пользовательский индикатор для MetaTrader 5, который поможет вам точно отслеживать время. Закрепленный в правом верхнем углу вашего графика, он отображает текущее брокерское время, местное время и обратный отсчет до следующей свечи (нового бара). Благодаря независимому 1-секундному таймеру отсчет идет непрерывно, даже если рынок медленный или нет входящих тиков. Полностью настраиваемый и работающий в темном режиме, он является идеальным ненавязчивым инструментом, чтобы вы никогда не пропустили закрытие свечи.
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.
