Стратегия торговли парами с использованием нескольких МА

Автор:Чао Чжан, Дата: 23 сентября 2023 года 15:16:50
Тэги:

Обзор

Эта стратегия сочетает в себе двойной выбор скользящей средней и распознавание ценовых паттернов, чтобы сформировать более комплексный механизм входа для улучшения качества сигнала.

Логика стратегии

Стратегия включает следующие показатели и правила:

  1. 3 СМА оценивают общую тенденцию.

  2. 2 EMA делают подробные ориентировочные суждения.

  3. SAR помогает с трендом и импульсом.

  4. Ценовые паттерны идентифицируют формирования как сигналы входа.

  5. Максимальная прибыль принимает ограничения на контроль прибыли.

  6. Ограничение срока хранения позволяет избежать увеличения потерь.

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

Преимущества

По сравнению со стратегией с одним показателем преимущества:

  1. Многочисленные показатели улучшают точность.

  2. Признание ценовых моделей улучшает сроки входа.

  3. Прибыль, получая контроль, приносит прибыль.

  4. Период хранения позволяет избежать увеличения потерь.

  5. СМА следуют тенденции.

  6. ЭМА повышают чувствительность.

  7. SAR проверяет надежность прорыва.

  8. В целом хорошее соотношение риска и вознаграждения, надежность.

  9. Настройка параметров позволяет достичь стабильной альфы.

Риски

Несмотря на все преимущества, следует отметить следующие риски:

  1. Многочисленные показатели увеличивают сложность.

  2. Широкая настройка параметров рискует переоптимизировать.

  3. Эффективность распознавания ценовых паттернов неопределена.

  4. Риск получения прибыли отсутствует продолжение тренда.

  5. Период хранения ограничивает потенциал прибыли.

  6. Стабильность и рентабельность - это компромисс.

  7. Устойчивость на многих рынках требует проверки.

  8. Продолжающийся мониторинг надежности модели критичен.

Улучшение

На основе анализа улучшения могут включать:

  1. Настройка параметров для стабильности возврата.

  2. Включите машинное обучение для планирования входа.

  3. Оптимизируйте динамическую стоп-лосс и прибыль.

  4. Оценить влияние периода владения на кривую капитала.

  5. Проверка надежности на разных рынках.

  6. Добавьте проверки прочности параметров для предотвращения чрезмерного приспособления.

  7. Разработка количественного управления рисками.

  8. Постоянно проверяйте эффективность стратегии.

Заключение

В целом, многоиндикаторный подход формирует относительно надежную торговую систему. Но постоянная оптимизация и проверка являются ключевыми для любой стратегии, с акцентом на надежность параметров для адаптации рынка.


//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05

Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Больше