Sweet Spot Extreme стратегия
Sweet Spot Extreme — перенос эксперта MetaTrader 4 «Sweet_Spot_Extreme.mq4» на высокоуровневый API StockSharp. Алгоритм ищет резкие откаты внутри сформированного тренда: две экспоненциальные средние на 15-минутных свечах подтверждают направление, а 30-минутный индикатор CCI фильтрует точки входа. Расчёт объёма повторяет логику MQL, включая уменьшение лота после серии убытков.
Основная логика
- Подтверждение тренда. Главная EMA (
MaPeriod, по умолчанию 85) и EMA сглаживания закрытия (CloseMaPeriod, 70) получают медианные цены 15-минутных свечей. Для покупок обе средние должны расти, для продаж — снижаться. - Фильтр перепроданности/перекупленности. Отдельная подписка на свечи (30 минут по умолчанию) рассчитывает CCI с периодом
CciPeriod. Лонг возможен только при значении нижеBuyCciLevel(−200), шорт — вышеSellCciLevel(+200). - Ограничение пирамидинга. Совокупная позиция не превышает
MaxTradesPerSymbol × объём. При новом сигнале стратегия закрывает встречную позицию и добавляет объём в сторону сигнала в пределах лимита. - Выходы. Сделка закрывается при смене наклона трендовой EMA (аналог условия MQL
MA <= MAprevious) либо после прохождения цены наStopPointsпунктов в прибыльную сторону.
Управление риском
- Размер позиции по доле капитала. Базовый объём рассчитывается как
Portfolio.CurrentValue × MaximumRisk ÷ цена. При отсутствии данных по капиталу используется параметрLots(или свойствоVolume). - Снижение после убытков. После двух и более убыточных сделок объём уменьшается на
объём × число_убытков ÷ DecreaseFactor, что повторяет функциюLotsOptimized()в оригинале. - Нормализация. Итоговый объём приводится к шагу инструмента (
VolumeStep), ограничивается снизу значениемMinVolumeи, при наличии, верхним пределомSecurity.MaxVolume.
Параметры
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
MaxTradesPerSymbol |
3 |
Максимальное число усреднений в одном направлении (по совокупной позиции). |
Lots |
1 |
Фиксированный объём, если оценка капитала недоступна. |
MaximumRisk |
0.05 |
Доля капитала для расчёта нового объёма. |
DecreaseFactor |
6 |
Делитель, уменьшающий следующий лот после серии убытков. |
StopPoints |
10 |
Дистанция тейк-профита в пунктах инструмента (0 отключает). |
MaPeriod |
85 |
Период EMA на 15-минутных свечах для определения наклона тренда. |
CloseMaPeriod |
70 |
Период EMA на 15-минутных свечах для сглаживания цены закрытия. |
CciPeriod |
12 |
Период CCI на 30-минутных свечах. |
BuyCciLevel |
-200 |
Порог перепроданности для входа в лонг. |
SellCciLevel |
200 |
Порог перекупленности для входа в шорт. |
MinVolume |
0.1 |
Минимально допустимый объём после нормализации. |
TrendCandleType |
15m |
Тип свечей для расчёта EMA (медианная цена). |
CciCandleType |
30m |
Тип свечей для расчёта CCI. |
Особенности и ограничения
- StockSharp использует неттинговую модель: несколько ордеров MT4 отображаются как одна совокупная позиция. Поэтому
MaxTradesPerSymbolограничивает именно общий объём, а не количество отдельных заявок. - В оригинале использовалось
AccountFreeMargin. Здесь вместо него применяетсяPortfolio.CurrentValue. При необходимости подберитеMaximumRiskилиLotsпод специфику брокера. - Убедитесь, что поставщик данных отдаёт оба таймфрейма (15 и 30 минут). Без завершённых значений EMA или CCI стратегия не будет торговать.