Dies ist eine Umkehrhandelsstrategie, die auf dem CCI-Indikator basiert. Sie wird umgekehrte Trades eröffnen, wenn der CCI-Indikator überkaufte oder überverkaufte Niveaus zeigt. Insgesamt nutzt diese Strategie die überkauften und überverkauften Merkmale des CCI-Indikators, um Preisumkehrmöglichkeiten zu erfassen.
Erstens beruht diese Strategie auf dem CCI-Indikator, dessen Formel lautet:
CCI = (Typischer Preis - einfacher gleitender Durchschnitt) / (0,015 * Standardabweichung)
Wo?
Typischer Preis = (Höchster + Tiefster + Schließen) / 3
Einfacher gleitender Durchschnitt = gleitender Durchschnitt des typischen Preises in den letzten N Tagen
Standardabweichung = Quadratwurzel der Varianz des typischen Preises in den letzten N Tagen
Diese Strategie verwendet einen 11-Perioden-CCI-Indikator, bei dem -150 als Überverkauf und 150 als Überkauf festgelegt wird.
Bei jedem Bar-Schließen wird der 11-Perioden-CCI-Indikator überprüft. Wenn der CCI unter -150 überschreitet, wird ein langes Signal erzeugt. Wenn der CCI über 150 überschreitet, wird ein kurzes Signal erzeugt.
Nach Erhalt des Signals wird die Marktaufgabe verwendet, um eine Position zu eröffnen.
Die 4-Stunden-CCI-Umkehrstrategie ist eine einfache Strategie, die den CCI-Indikator für den Umkehrhandel verwendet. Sie hat den Vorteil einer klaren Logik und einer einfachen Umsetzung. Aber sie hat auch Schwächen wie unzuverlässige CCI-Signale und unflexibles Gewinnziel / Stop-Loss. Weitere Verbesserungen können durch Optimierung von CCI-Parametern, Hinzufügen von Filterindikatoren, Entwicklung dynamischer Ausgänge usw. erzielt werden.
/*backtest start: 2023-09-12 00:00:00 end: 2023-10-12 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("4H CCI Strategy", overlay=true) length = input( 11 ) overSold = input( -150 ) overBought = input( +150 ) price1 = high price2 = low ucci = cci(price1, length) dcci = cci(price2, length) vcci = cci(ohlc4, 11) resCustom = input(title="Timeframe", defval="15") Length = input(16, minval=1) xPrice = request.security(syminfo.tickerid, resCustom, hlc3) xvnoise = abs(xPrice - xPrice[1]) nfastend = 0.666 nslowend = 0.0645 nsignal = abs(xPrice - xPrice[Length]) nnoise = sum(xvnoise, Length) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1])) basis1 = nAMA slope = change(basis1,1) if (not na(vcci)) if (crossover(dcci, overSold)) strategy.entry("CCILE", strategy.long, comment="CCILE") strategy.exit("exit", "CCILE", profit = 0.01, loss = 0.005) if (crossunder(ucci, overBought)) strategy.entry("CCISE", strategy.short, comment="CCISE") strategy.exit("exit", "CCISE", profit = 0.01, loss = 0.005) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)