Стратегия солнечного супертенда

Автор:Чао Чжан, Дата: 2023-12-13 14:40:24
Тэги:

img

Обзор

Стратегия Sunny Supertrend - это стратегия, основанная на индикаторах ATR и SuperTrend. Она может точно предсказывать обратные тенденции и отлично работает как индикатор времени. Стратегия может увеличить терпение и помочь трейдерам войти и выйти с рынка в нужное время.

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

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

В частности, стратегия генерирует торговые сигналы по следующей логике:

  1. Используйте индикатор SuperTrend для определения основного направления тренда
  2. При изменении направления индикатора SuperTrend генерируется потенциальный сигнал обмена
  3. Если направление тела светильника соответствует предыдущему в это время, сигнал обратного движения отфильтрован
  4. Если направление тела светильника меняется, сигнал обмена подтверждается и генерируется торговый сигнал

Анализ преимуществ

  1. На основе индикатора Supertrend, он может точно определить точки переворота тренда.
  2. Отфильтровать недействительные сигналы путем объединения направлений тела свечи для улучшения качества сигнала
  3. Подходит в качестве индикатора времени для руководства инвесторов в выборе разумного времени входа и выхода
  4. Широко применяется в любом периоде времени и различных сортах с высокой адаптивностью

Риски и решения

  1. Индикатор Supertrend имеет тенденцию генерировать избыточные сигналы, которые необходимо отфильтровать. Решение: Эта стратегия использует направление тела свечи для вспомогательного суждения, чтобы эффективно отфильтровать недействительные сигналы

  2. Параметры супертенденции склонны к чрезмерной оптимизации
    Решение: Используйте параметры по умолчанию, чтобы избежать ручного настройки и чрезмерной оптимизации

  3. Невозможно обработать ультрабыстрые изменения тренда Решение: корректировать параметр периода ATR соответствующим образом, чтобы справиться с более быстрыми движениями рынка

Руководство по оптимизации

  1. Попробуйте различные комбинации параметров периода ATR
  2. Добавление показателей объема или волатильности для фильтрации сигналов
  3. Сочетание с другими системами для повышения эффективности стратегии
  4. Разработка механизмов остановки потерь для контроля одиночных потерь

Заключение

Стратегия Sunny Supertrend - это эффективная стратегия обратного тренда, основанная на индикаторе SuperTrend. Она сочетает в себе направления тела свечи для вспомогательного суждения, которые могут эффективно отфильтровывать недействительные сигналы и улучшать качество сигнала.


/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Sunny Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

shor= close > open and close[1] > open[1] and close[2] > open[2] 
lon = open > close and open[1] > close[1] and  open[2] > close[2]
tt= ta.change(direction) < 0
ss= ta.change(direction) > 0
long= tt
longexit = lon or ss
short= ss
shortexit = shor or tt

longPosMem = false
longexitPosMem = false
shortPosMem = false
shortexitPosMem = false

longPosMem := long ? true : short ? false : longPosMem[1]
longexitPosMem := longexit ? true : shortexit ? false : longexitPosMem[1]
shortPosMem := short ? true : long ? false : shortPosMem[1]
shortexitPosMem := shortexit ? true : longexit ? false : shortexitPosMem[1]

longy = long and not(longPosMem[1])
longexity = longexit and not(longexitPosMem[1])
shorty = short and not(shortPosMem[1])
shortexity = shortexit and not(shortexitPosMem[1])

//Use this to customize the look of the arrows to suit your needs.
plotshape(longy, location=location.abovebar, color=color.green, style=shape.arrowup, text="Buy")
plotshape(longexity, location=location.top, color=color.green, style=shape.xcross, text="Buy exit")
plotshape(shorty, location=location.belowbar, color=color.red, style=shape.arrowdown, text="Sell")
plotshape(shortexity, location=location.bottom, color=color.red, style=shape.xcross, text="Sell exit")


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
// STEP 1:
// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", 
     defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

endDate = input.int(title="End Date",
     defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month",
     defval=2, minval=1, maxval=12)
endYear = input.int(title="End Year",
     defval=2021, minval=1800, maxval=2100)

// STEP 2:
// Look if the close time of the current bar
// falls inside the date range
inDateRange =  true



// STEP 3:
// Submit entry orders, but only when bar is inside date range
if (inDateRange and longy)
    strategy.entry("enter long",strategy.long,when= longy)
    strategy.close("long",when=longexity)


if (inDateRange and shorty)
    strategy.entry("enter short",strategy.short,when = shorty)
    strategy.close("short", when=shortexity)


Больше