Стратегия торговой системы Pete Wave

Автор:Чао Чжан
Тэги:

img

Обзор стратегии Pete Wave Trading System

Принципы стратегии торговой системы Pete Wave

Пит Вейв Система торговли Стратегия Анализ преимуществ

  1. Сочетание пересечения скользящей средней и отслеживания тенденций позволяет избежать попадания в ловушку волатильных рынков.

  2. Фильтры обратного отбора и механизмы подтверждения выхода предотвращают ложные выходы.

  3. Значения ATR и фильтры тела свечи помогают определить реальные колебания.

Основными рисками этой стратегии являются:

  1. Внезапные рыночные события могут привести к выходу стоп-лосса.

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

  3. Спокойные рыночные условия приводят к снижению торговых сигналов.

Пит Вейв Оптимизация стратегии торговой системы

Стратегия может быть оптимизирована в следующих направлениях:

  1. Испытать параметры отдельно для различных сортов торговли, оптимизировать периоды скользящих средних и другие параметры.

  2. Попробуйте добавить больше индикаторов, таких как полосы Боллинджера, RSI, чтобы определить направление тренда.

Пит Вейв Система торговли Стратегия Резюме


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

//@version=5
strategy("9:22 5 MIN 15 MIN BANKNIFTY", overlay=true)

fastLength = input(9, title="Fast MA Length")
slowLength = input(22, title="Slow MA Length")
atrLength = input(14, title="ATR Length")
atrFilter = input(0.5, title="ATR Filter")
trailingStop = input(1.5, title="Trailing Stop Percentage")
pullbackThreshold = input(0.5, title="Pullback Threshold")
minCandleBody = input(0.5, title="Minimum Candle Body Percentage")
breakoutConfirmation = input(true, title="Use Breakout Confirmation")

price = close
mafast = ta.sma(price, fastLength)
maslow = ta.sma(price, slowLength)

atrValue = ta.atr(atrLength)

long_entry = ta.crossover(mafast, maslow) and atrValue > atrFilter
short_entry = ta.crossunder(mafast, maslow) and atrValue > atrFilter

// Pullback Filter
pullbackLong = ta.crossover(price, mafast) and ta.change(price) <= -pullbackThreshold
pullbackShort = ta.crossunder(price, mafast) and ta.change(price) >= pullbackThreshold

// Include pullback condition only if a valid entry signal is present
long_entry := long_entry and (pullbackLong or not ta.crossover(price, mafast))
short_entry := short_entry and (pullbackShort or not ta.crossunder(price, mafast))

// Filter based on candle body size
validLongEntry = long_entry and ta.change(price) > 0 and ta.change(price) >= minCandleBody
validShortEntry = short_entry and ta.change(price) < 0 and ta.change(price) <= -minCandleBody

// Breakout confirmation filter
breakoutLong = breakoutConfirmation ? (close > ta.highest(high, fastLength)[1]) : true
breakoutShort = breakoutConfirmation ? (close < ta.lowest(low, fastLength)[1]) : true

long_entry := validLongEntry and breakoutLong
short_entry := validShortEntry and breakoutShort

if (long_entry)
    strategy.entry("Long", strategy.long)
    strategy.close("Short")
    alert("Long trade iniated")
    
if (short_entry)
    strategy.entry("Short", strategy.short)
    strategy.close("Long")
    alert("Short trade initated")

// Trailing Stop-Loss
long_stop = strategy.position_avg_price * (1 - trailingStop / 100)
short_stop = strategy.position_avg_price * (1 + trailingStop / 100)
strategy.exit("Exit Long", "Long", stop = long_stop)
strategy.exit("Exit Short", "Short", stop = short_stop)

plot(mafast, color=color.green, linewidth=2, title="Fast MA")
plot(maslow, color=color.red, linewidth=2, title="Slow MA")


Больше