Стратегия Chande-Kroll Stop Loss Dynamic ATR Trend Follow

SMA ATR SPX
Дата создания: 2024-06-14 15:15:43 Последнее изменение: 2024-06-14 15:15:43
Копировать: 0 Количество просмотров: 317
1
Подписаться
1166
Подписчики

Стратегия Chande-Kroll Stop Loss Dynamic ATR Trend Follow

Обзор

Стратегия отслеживания трендов Chande-Kroll Stop Loss Dynamic ATR - это количественная торговая стратегия, основанная на показателях Stop Loss Chande-Kroll и простой движущейся средней (SMA). Эта стратегия предназначена для захвата тенденций к росту рынка, используя при этом динамические остановки для управления рисками.

Стратегический принцип

В основе этой стратегии лежит стоп-индикатор Chande-Kroll, который использует ATR для расчета динамического уровня стоп-убытков. ATR измеряет волатильность рынка, а уровень стоп-убытков корректируется в соответствии с ATR и динамикой умножения. Это гарантирует, что стоп-позиции будут приспособлены к текущим рыночным условиям. При условии, что конечная цена будет выше 21 циклической SMA, начать делать больше. Условия затяжной позиции: затяжная позиция, когда цена закрытия падает ниже верхней полосы Чанде-Кролл.

Стратегические преимущества

  1. Динамические остановки: индикатор остановки Chande-Kroll основан на ATR, который рассчитывает динамические уровни остановки, чтобы адаптироваться к различным рыночным колебаниям и повысить эффективность остановки.
  2. Тренд-трек: 21-циклический SMA служит фильтром тренда, гарантируя, что торговля будет соответствовать направлению основного тренда, снижая риск обратной торговли.
  3. Гибкость параметров: параметры стратегии, такие как ATR-цикл, ATR-множитель, стоп-цикл и SMA-цикл, могут быть изменены в соответствии с предпочтениями пользователя, что повышает адаптивность стратегии.
  4. Управление размером позиции: размер позиции динамически корректируется в зависимости от степени риска и текущих рыночных колебаний, что позволяет динамично управлять риском.

Стратегический риск

  1. Риск оптимизации параметров: параметры стратегии должны быть оптимизированы в зависимости от различных рыночных условий и типов сделок. Неправильная настройка параметров может привести к плохой эффективности стратегии.
  2. Риск распознавания тенденции: в период рыночного колебания или в начале обратного тренда, стратегия может создать ошибочный сигнал, что приводит к убыткам.
  3. Скидки и затраты на сделки: в реальных сделках скидки и затраты на сделки влияют на чистую прибыль стратегии. Меры по управлению рисками включают в себя: всестороннюю проверку и оптимизацию параметров стратегии; строгое следование правилам стратегии в реальных сделках, контроль риска каждой сделки; регулярная оценка эффективности стратегии с необходимыми корректировками.

Направление оптимизации стратегии

  1. Двусторонняя торговля с несколькими позициями: в настоящее время стратегия заключается только в многосигналах, которые могут быть расширены до многосторонней торговли с двумя позициями, чтобы в полной мере использовать возможности в различных рыночных условиях.
  2. Динамическая оптимизация параметров: использование алгоритмов машинного обучения или оптимизации для корректировки параметров стратегии в режиме реального времени в зависимости от состояния рынка, повышая адаптивность.
  3. Комбинация с другими техническими показателями: введение других показателей типа тренда или колебания, построение многофакторной стратегии, повышение надежности сигнала.
  4. Присоединение к рыночным настроениям: в сочетании с рыночными настроениями, такими как VIX, для контроля торговли в экстремальных рыночных настроениях и повышения способности к управлению рисками.

Подвести итог

Стремясь к динамическому отслеживанию трендов, стратегия Chande-Kroll Stop Loss ATR является количественной торговой стратегией, основанной на принципах динамического стоп- и трендового отслеживания. Благодаря сочетанию стоп-индикатора Chande-Kroll и фильтра тренда SMA, стратегия позволяет эффективно управлять риском, одновременно улавливая восходящие тенденции. Гибкость параметров стратегии и динамическая корректировка масштаба позиции дополнительно повышают адаптивность стратегии. Несмотря на определенные риски стратегии, благодаря разумным мерам управления рисками и постоянным оптимизационным улучшениям стратегия может обеспечить стабильную долгосрочную прибыль.

Исходный код стратегии
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chande Kroll Stop Strategy", overlay=true, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.01, slippage = 3)

// Chande Kroll Stop parameters
calcMode = input.string(title="Calculation Mode", defval="Exponential", options=["Linear", "Exponential"])
riskMultiplier = input(5, "Risk Multiplier")
atrPeriod = input(10, "ATR Period")
atrMultiplier = input(3, "ATR Multiplier")
stopLength = input(21, "Stop Length")
smaLength = input(21, "SMA Length")

// Calculate ATR
atr = ta.atr(atrPeriod)

// Calculate Chande Kroll Stop
highStop = ta.highest(high, stopLength) - atrMultiplier * atr
lowStop = ta.lowest(low, stopLength) + atrMultiplier * atr

sma21 = ta.sma(close, smaLength)

// Entry and Exit conditions
longCondition = ta.crossover(close, lowStop) and close > sma21
exitLongCondition = close < highStop

// Funktion zur Berechnung der Menge
calc_qty(mode, riskMultiplier) =>
    lowestClose = ta.lowest(close, 1560)
    if mode == "Exponential"
        qty = riskMultiplier / lowestClose * 1000 * strategy.equity / strategy.initial_capital
    else
        qty = riskMultiplier / lowestClose * 1000

// Berechnung der Menge basierend auf der Benutzerwahl
qty = calc_qty(calcMode, riskMultiplier)

// Execute strategy
if (longCondition)
    strategy.entry("Long", strategy.long, qty=qty)
    alert("Buy Signal", alert.freq_once_per_bar_close)

if (exitLongCondition)
    strategy.close("Long")
    alert("Sell Signal", alert.freq_once_per_bar_close)

// Plotting
plotshape(series=longCondition, location=location.belowbar, color=#0097a7, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=ta.crossunder(close, highStop), location=location.abovebar, color=#ff195f, style=shape.triangledown, size=size.small, title="Sell Signal")
plot(sma21, color=color.gray)
plot(highStop, color=#0097a7)
plot(lowStop, color=#ff195f)