Стратегия торговли с изменением импульса

Автор:Чао Чжан, Дата: 2024-01-26 15:51:20
Тэги:

img

Обзор

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

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

  • Ясная визуализация пунктов входа с торговыми сигналами
  • Настраиваемые параметры RSI подходят для различных периодов и активов

Анализ рисков

  • Недостаточное продолжение тенденции после переворота, может быть краткосрочной коррекцией
  • Более высокая вероятность сбоя RSI в периоды высокой волатильности

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

  • Добавление стоп-лосса для контроля потери от одной сделки
  • Оптимизировать пороговые значения перекупленных/перепроданных товаров на основе рыночных условий
  • Добавить управление позициями для экспоненциального роста прибыльных позиций

Резюме


/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Improved RSI Strategy", overlay=true)

// Define RSI parameters
rsiLength = input(14, title="RSI Length")
rsiOversold = input(30, title="Oversold Threshold")
rsiOverbought = input(70, title="Overbought Threshold")

// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)

// Define entry conditions
longCondition = ta.crossover(rsiValue, rsiOversold)
shortCondition = ta.crossunder(rsiValue, rsiOverbought)

// Plot RSI and thresholds
plot(rsiValue, title="RSI", color=color.blue)
hline(rsiOversold, title="Oversold Threshold", color=color.red)
hline(rsiOverbought, title="Overbought Threshold", color=color.green)

// Calculate percentage change since last signal
var float percentageChange = na
lastCloseValue = ta.valuewhen(longCondition or shortCondition, close, 1)

if longCondition or shortCondition
    percentageChange := (close - lastCloseValue) / lastCloseValue * 100

plot(percentageChange, color=color.blue, style=plot.style_histogram, linewidth=1, title="% Change since last signal")

// Execute strategy
if longCondition
    strategy.entry("RSI Long", strategy.long)
    
if shortCondition
    strategy.entry("RSI Short", strategy.short)

// Plot shapes and text for buy/sell signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")


Больше