Стратегия XCCI Histogram Vol
Общее описание
Стратегия представляет собой перенос эксперта MetaTrader Exp_XCCI_Histogram_Vol на платформу StockSharp. Индикаторная часть повторяет логику кастомного индикатора «XCCI Histogram Vol»: значение CCI умножается на объём, оба ряда сглаживаются выбранным типом скользящей средней и сравниваются с динамическими уровнями. Реализация использует только закрытые свечи и сохраняет двухступенчатую схему входа из оригинального робота.
Работа индикатора
- Рассчитать CCI с указанным периодом.
- Умножить полученное значение на объём текущей свечи.
- Сгладить ряды CCI×Volume и Volume выбранной средней (
Simple,Exponential,Smoothed,Weighted,Hull,VolumeWeighted). - Умножить заданные коэффициенты HighLevel2/1 и LowLevel1/2 на сглаженный объём, получив адаптивные уровни.
- Определить зону значения CCI×Volume:
0— экстремальный рост,1— рост,2— нейтрально,3— падение,4— экстремальное падение.
Стратегия хранит зону для каждой завершённой свечи. Параметр SignalBarOffset задаёт задержку по числу закрытых свечей перед тем, как использовать зону в торговых решениях (аналог параметра SignalBar в MQL-версии).
Правила торговли
- Выход из лонга: если оцениваемая зона равна
3или4, все длинные позиции закрываются. - Выход из шорта: если зона равна
1или0, все короткие позиции закрываются. - Первичный вход в лонг: текущая зона стала
1, а предыдущая (более старая) зона была больше1. Это переход из нейтральной/медвежьей области к бычьей. Открывается позиция объёмомPrimaryEntryVolume, при наличии шорта выполняется разворот. - Вторичный вход в лонг: текущая зона стала
0, а предыдущая была выше0, что означает прорыв в экстремально бычью область. Используется объёмSecondaryEntryVolume. - Первичный вход в шорт: текущая зона стала
3, а предыдущая была ниже3. Сигнал на появление нового нисходящего импульса, используетсяPrimaryEntryVolume, перед открытием закрываются лонги. - Вторичный вход в шорт: текущая зона стала
4, а предыдущая была ниже4, что указывает на сильное ускорение вниз. ИспользуетсяSecondaryEntryVolume.
Когда чистая позиция пересекает ноль, флаги входов сбрасываются — это позволяет имитировать две «магические» позиции из терминала MetaTrader: повторный вход по тому же уровню возможен только после закрытия предыдущего ордера или срабатывания защиты.
Управление рисками
- Параметры
UseStopLossиUseTakeProfitвключают защитные стопы/тейк-профиты в абсолютных пунктах через методStartProtection. Они опциональны, как и в оригинале. - Все операции выполняются рыночными ордерами, поэтому учитываются глобальные настройки допуска по цене и проскальзыванию в StockSharp.
- В журнал выводятся сообщения о каждом входе и выходе, что облегчает анализ поведения стратегии.
Параметры
- CciPeriod – период CCI.
- MaLength – длина скользящей средней, применяемой к CCI×Volume и объёму.
- HighLevel2 / HighLevel1 / LowLevel1 / LowLevel2 – коэффициенты, формирующие адаптивные уровни после умножения на сглаженный объём.
- SignalBarOffset – количество закрытых свечей, через которое используется сигнал (0 – последняя закрытая свеча, 1 – предыдущая и т. д.).
- Smoothing – тип сглаживания (SMA, EMA, SMMA, WMA, Hull MA, VWMA).
- AllowLongEntries / AllowShortEntries / AllowLongExits / AllowShortExits – включение/отключение входов и выходов по каждому направлению.
- PrimaryEntryVolume / SecondaryEntryVolume – объёмы двух ступеней входа, применяются как для покупок, так и для продаж.
- UseStopLoss / StopLossPoints – опциональный стоп-лосс в пунктах.
- UseTakeProfit / TakeProfitPoints – опциональный тейк-профит в пунктах.
- CandleType – тип свечей (таймфрейм), который запрашивается у коннектора.
Отличия от версии MetaTrader
- Доступны только сглаживания, реализованные в StockSharp; алгоритмы JJMA, JurX, ParMA, VIDYA, AMA и другие специализированные фильтры не реализованы.
- Объём берётся из
ICandleMessage.TotalVolume. Тиковый объём не моделируется, поэтому на площадках, где доступно только количество сделок, результаты могут отличаться от терминала MetaTrader. - StockSharp использует неттинговую модель (одна позиция), а не несколько ордеров с разными magic number. Логика двух ступеней реализована через внутренние флаги и соответствует требованиям платформы.