Стратегия Spearman Rank Correlation Histogram с торговым окном
Общее описание
Стратегия повторяет эксперт Exp_SpearmanRankCorrelation_Histogram_TimeWeekPeriod на платформе StockSharp, используя высокоуровневый API. Она подписывается на один поток свечей (по умолчанию четырёхчасовых) и пересчитывает гистограмму ранговой корреляции Спирмена из оригинального индикатора. Цвет гистограммы определяет направление локального тренда (значения выше нуля — рост, ниже нуля — падение). Отдельный торговый интервал ограничивает сделки заданными днями недели и временем, что воспроизводит логику TimeTrade из MQL.
Логика торговли
Расчёт индикатора
После закрытия каждой свечи сохраняется цена закрытия и вычисляется корреляция Спирмена по RangeLength последним закрытиям.
Цвет гистограммы присваивается так же, как в индикаторе: 4 — выше HighLevel, 3 — между 0 и HighLevel, 1 — между LowLevel и 0, 0 — ниже LowLevel, 2 — ровно ноль.
Сигналы считываются по свече с номером SignalBar (по умолчанию последняя закрытая). Для выявления переходов используется предыдущий закрытый бар.
Режимы торговли (TradeMode)
Mode1 — вход в покупки при переходе цвета выше 2 (после значений < 3); вход в продажи при падении цвета ниже 2 (после значений > 1). При каждом бычьем цвете запрашивается закрытие шорта, при медвежьем — закрытие лонга.
Mode2 — покупки открываются при цвете 4, продажи — при цвете 0. Цвета > 2 закрывают шорты, цвета < 2 закрывают лонги.
Mode3 — цвет 4 одновременно закрывает шорт и открывает лонг, цвет 0 закрывает лонг и открывает шорт.
После успешного входа действует «кулдаун» длиной в одну свечу — следующая заявка в ту же сторону будет зарегистрирована только после времени, когда в MetaTrader закрылась бы следующая свеча.
Управление капиталом и объём
Параметры MoneyManagement и MarginMode переводят долю капитала или риск в объём заявки. Положительные значения повторяют логику МQL, ноль использует стандартное свойство Volume, отрицательные — фиксированный лот.
Рискованные режимы (LossFreeMargin, LossBalance) требуют положительного StopLossPoints. При нулевом стопе стратегия возвращается к Volume, что эквивалентно отказу от сделки в исходном коде.
Защита позиции
StopLossPoints и TakeProfitPoints пересчитываются в цены через Security.PriceStep. На каждой закрытой свече проверяется достижение уровней по максимуму/минимуму свечи; при срабатывании позиция полностью закрывается.
DeviationPoints сохранён для совместимости и отображения, но на рыночные заявки StockSharp не влияет.
Торговое окно
При TimeTrade = true текущее время должно находиться между (StartDay, StartHour, StartMinute, StartSecond) и (EndDay, EndHour, EndMinute, EndSecond). Вне интервала все позиции по инструменту немедленно закрываются, как и в оригинальном советнике.
Предполагается, что StartDay не позже EndDay. Для окна, пересекающего выходные, подберите соответствующие значения вручную.
Прочие особенности
Для появления сигналов требуется минимум RangeLength + SignalBar + 1 закрытых свечей.
Параметр Direction оставлен для совместимости, но на расчёты не влияет.
Параметры
Параметр
Описание
Значение по умолчанию
MoneyManagement
Доля капитала или фиксированный лот для расчёта объёма.