Эта стратегия сочетает в себе скользящую среднюю, индикатор CCI, индикатор PSAR и индекс тренда ADX для реализации типичной стратегии прорыва.
Условия вступления в стратегию включают следующие аспекты:
Движущаяся средняя: требует 5-дневной линии, пробивающейся через 10-дневную линию, 10-дневной линии, пробивающейся через 20-дневную линию и 20-дневной линии, пробивающейся через 40-дневную линию, которая может эффективно отфильтровать большинство ложных прорывов.
Индикатор CCI: требует показателя CCI меньше -100 для длинного сигнала и больше 100 для короткого сигнала.
Индикатор PSAR: требует, чтобы направление индикатора PSAR соответствовало направлению тренда, определяемому ценой.
Индикатор ADX: требует ADX больше 20, что указывает на то, что рынок сейчас находится в тренде, который подходит для использования прорывных систем.
В то же время условия выхода также учитывают несколько показателей:
Движущаяся средняя: противоположность условиям входа. Например, 5-дневная линия, разрушающая 10-дневную линию, является сигналом закрытия позиций.
Показатели CCI и PSAR имеют противоположные значения для условий входа, например, CCI выше 100 является сигналом для закрытия длинных позиций.
Таким образом, вход строгий, а выход свободный для этой стратегии, которая может получить относительно высокий уровень доходности.
Эта типичная многопоказательная комбинированная стратегия прорыва имеет следующие преимущества:
В строгих условиях ввода используются несколько показателей фильтрации, что может снизить риск ложных прорывов.
Параметры показателей оптимизированы для хорошей адаптации к рынку.
Индикатор оценки тренда используется для того, чтобы не попасть в ловушку шокового рынка.
Движущиеся средние используются для стабильного определения среднесрочных и краткосрочных тенденций.
Показатель CCI может отражать краткосрочные явления перекупки и перепродажи.
Индикатор PSAR имеет сильную способность определять направление рыночных тенденций.
Стратегия также имеет следующие риски:
На экстремальных рынках эффекты множества комбинаций индикаторов могут быть ослаблены и не могут полностью отфильтровать риски.
Когда тенденция огромна, использование среднесрочных и краткосрочных индикаторов для определения сроков может потерпеть неудачу и не может полностью зафиксировать тенденцию.
Неправильные параметры местных показателей, таких как CCI, могут привести к упущенным возможностям.
Эффект индикатора PSAR слабый в поворотные моменты тренда.
Противодействие:
Соответственно смягчить условия входа и платить больше за меньший риск.
Улучшить оценку долгосрочных показателей, таких как 60-дневные или даже более длительные скользящие средние.
Динамически оптимизировать параметры, такие как CCI.
Объедините больше индикаторов для оценки тенденций, таких как полосы Боллинджера.
Стратегия также имеет следующие направления оптимизации:
Увеличить алгоритмы машинного обучения для реализации оптимизации параметров в режиме реального времени и улучшения адаптивности.
Увеличить методы комбинации моделей, объединить больше не связанных стратегий для улучшения стабильности.
Внедрить механизмы контроля рисков, такие как стратегии стоп-лосса, для эффективного контроля единого стоп-лосса.
Увеличить модуль оценки трендов, чтобы избежать попадания на шоковые рынки.
Оптимизировать вес показателей, чтобы оптимальные показатели играли ведущую роль в различных рыночных условиях.
В целом эта стратегия является типичной и классической многоиндикаторной прорывной стратегией. Ее преимущества - строгие условия входа, свободные условия выхода, а также она содержит модуль оценки тренда. Но у нее также есть некоторые риски. Ей нужна постоянная оптимизация для адаптации к более сложным рыночным условиям. Сочетание моделей и оптимизация параметров являются ее направлениями развития.
/*backtest start: 2023-11-14 00:00:00 end: 2023-11-21 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Bukan Kaleng Kaleng Li", shorttitle="BKKL", overlay=true) psarDot = sar(0.01, 0.01, 0.2) up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = rma(tr, 14) plus = fixnan(100 * rma(plusDM, 14) / trur) minus = fixnan(100 * rma(minusDM, 14) / trur) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), 14) longConditionSMA4020 = sma(close, 40) > sma(close, 20) longConditionSMA2010 = sma(close, 20) > sma(close, 10) longConditionSMA105 = sma(close, 10) > sma(close, 5) longConditionSMA = longConditionSMA4020 and longConditionSMA2010 and longConditionSMA105 longConditionCCI = cci(close, 20) < -100 longConditionPSAR = psarDot > close longConditionDMI = plus < 10 adxCondition = adx > 20 longCondition = longConditionSMA and longConditionCCI and longConditionPSAR and longConditionDMI if (longCondition and adxCondition) strategy.order("Long Signal", true) shortConditionSMA4020 = sma(close, 40) < sma(close, 20) shortConditionSMA2010 = sma(close, 20) < sma(close, 10) shortConditionSMA105 = sma(close, 10) < sma(close, 5) shortConditionSMA = shortConditionSMA4020 and shortConditionSMA2010 and shortConditionSMA105 shortConditionCCI = cci(close, 20) > 100 shortConditionPSAR = psarDot < close shortConditionDMI = minus < 10 shortCondition = shortConditionSMA and shortConditionCCI and shortConditionPSAR and shortConditionDMI if (shortCondition and adxCondition) strategy.order("Short Signal", false)