В процессе загрузки ресурсов... загрузка...

Chande-Kroll Stop динамическая тенденция ATR после стратегии

Автор:Чао Чжан, Дата: 2024-06-14 15:15:43
Тэги:SMAATRSPX

img

Обзор

Динамический индикатор остановки (STOP) - это количественная стратегия торговли, основанная на индикаторе остановки (STOP) и простой скользящей средней (SMA). Стратегия направлена на отслеживание тенденций на рынке при управлении рисками с использованием динамических уровней остановки (STOP-loss).

Принципы стратегии

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

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

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

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

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

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

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

Резюме

Стратегия Chande-Kroll Stop Dynamic ATR Trend Following является количественной торговой стратегией, основанной на принципах динамического стоп-лосса и трендоуследования. Объединяя индикатор стоп-лосса 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)



Связанные

Больше