Multi-Indikator-Kombi-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-13 12:18:05
Tags:

Diese Strategie kombiniert mehrere technische Indikatoren wie gleitende Durchschnitte, RSI und Stochastics, um den Preistrend und die Überkauf-/Überverkaufsniveaus für Handelssignale zu bewerten.

Strategie Logik:

  1. Verwenden Sie mehrere EMAs, um die allgemeine Kursentwicklung zu bestimmen.

  2. Berechnen Sie den RSI und die Stochastik für überkaufte/überverkaufte Werte.

  3. Die EMAs geben ein Bullensignal, der RSI ist nicht überkauft und der Stoch nicht überkauft.

  4. Die EMAs geben ein Bärensignal, der RSI ist nicht überverkauft und der Stoch nicht überverkauft.

  5. Ausfahrt, wenn ein Anzeiger ein gegenteiliges Signal gibt.

Vorteile:

  1. Die Mehrfachprüfung verbessert die Genauigkeit.

  2. Die Indikatoren ergänzen sich gegenseitig für eine bessere Marktbewertung.

  3. Klarer Handelsabkommen erleichtern das Backtesting und die Ausführung.

Risiken:

  1. Vermeiden Sie eine übermäßige Redundanz zwischen den Indikatoren.

  2. Komplexe Optimierung mit mehreren Indikatoren.

  3. Mehr Indikatoren verbessern die Leistung nicht unbedingt.

Zusammenfassend lässt sich sagen, dass der Mehrindikatoransatz Entscheidungen bis zu einem gewissen Grad verbessern kann, jedoch die Schwierigkeit der Optimierung und die Redundanz bei einfachen, zuverlässigen Strategien ausgleichen muss.


/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title='Combined Strategy', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.0020, pyramiding=0, slippage=3, overlay=true)

//----------//
// MOMENTUM //
//----------//
ema8 = ta.ema(close, 5)
ema13 = ta.ema(close, 9)
ema21 = ta.ema(close, 13)
ema34 = ta.ema(close, 21)
ema55 = ta.ema(close, 34)

plot(ema8, color=color.new(color.red, 0), style=plot.style_line, title='5', linewidth=1)
plot(ema13, color=color.new(color.orange, 0), style=plot.style_line, title='9', linewidth=1)
plot(ema21, color=color.new(color.yellow, 0), style=plot.style_line, title='13', linewidth=1)
plot(ema34, color=color.new(color.aqua, 0), style=plot.style_line, title='21', linewidth=1)
plot(ema55, color=color.new(color.lime, 0), style=plot.style_line, title='34', linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = ta.rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = ta.stoch(close, high, low, 14)
dSlow = ta.sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
  strategy.entry("LONG", strategy.long)
if (exitLongCondition)
  strategy.close("LONG")

shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
  strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
  strategy.close("SHORT")



Mehr