Diese Strategie integriert mehrere Zeitrahmen-EMA-Indikatoren und K-Linien-Musterbeurteilungen, um relativ empfindliche langfristige Signalfassung und Stop-Loss-Ausgänge zu erreichen.
Die Strategie stützt sich hauptsächlich auf folgende Indikatoren:
EMA: Verwendet 2 Sätze von 13 und 21 EMA-Zyklen, um das Handelssignal bei Preisdurchbruch zu bestimmen.
K-Linienmuster: Beurteilt die Richtung der K-Linienentität und verwendet sie mit dem EMA-Indikator, um falsche Durchbrüche zu filtern.
Unterstützungswiderstand: Erstellt anhand der höchsten Punkte in den letzten 10 Zyklen, um festzustellen, ob der Durchbruch diesen Bereich überschreitet, um die Signalzuverlässigkeit zu erhöhen.
Aufstieg in der Zeitteilung: 120-Zyklus-Schließung ist oben offen zu beurteilen als Aufstieg in der Zeitteilung, als Hilfsurteil.
Die Regeln für die Erzeugung von Handelssignalen sind:
Bullish Signal: Schnelle EMA durchbricht langsame EMA nach oben mit einer Yang-Linie K-Linie, schließt Short-Position und öffnet Long.
Bärensignal: Schnelle EMA bricht durch langsame EMA mit einer Yin-Linie K-Linie ab, flache Longposition.
Stop-Loss-Ausgang: Stop-Loss-Ausgang in der aktuellen Position, wenn das Rückwärtssignal angezeigt wird.
Die oben genannten Risiken können durch Methoden wie die Vermeidung übermäßiger Optimierung, sorgfältige Parameterwahl, strenge Kontrolle der Positionsgröße gemindert werden.
Die Strategie integriert mehrere Zeitrahmen EMA und K-Line Entität Urteile für relativ zuverlässige Trendurteile. Hilfsurteile mit Unterstützung Widerstand und Zeitteilung gewährleisten Signalqualität. Die Verwendung von umgekehrten Signalen für Stop-Loss kann effektiv Single Stop-Loss kontrollieren. Zukünftige Optimierungen können durch die Einführung von Machine Learning-Modellen, adaptive Stops, sentimental Analysis und Position Größenmanagement-Module durchgeführt werden, um die Strategie robuster zu machen.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100) open_long = 0 close_position = 0 last_long=close last_short=close //Candle body resistance Channel-----------------------------// len = 34 src = input(close, title="Candle body resistance Channel") out = sma(src, len) last8h = highest(close, 13) lastl8 = lowest(close, 13) bearish = cross(close,out) == 1 and falling(close, 1) bullish = cross(close,out) == 1 and rising(close, 1) channel2=false //-----------------Support and Resistance RST = input(title='Support / Resistance length:', defval=10) RSTT = valuewhen(high >= highest(high, RST), high, 0) RSTB = valuewhen(low <= lowest(low, RST), low, 0) //--------------------Trend colour ema------------------------------------------------// src0 = close, len0 = input(13, minval=1, title="EMA 1") ema0 = ema(src0, len0) direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0 //-------------------- ema 2------------------------------------------------// src02 = close, len02 = input(21, minval=1, title="EMA 2") ema02 = ema(src02, len02) direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0 //=============Hull MA// show_hma = false hma_src = input(close, title="HullMA Source:") hma_base_length = input(8, minval=1, title="HullMA Base Length:") hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) //============ signal Generator ==================================// Period=input(title='Period', defval='120') ch1 = request.security(syminfo.tickerid, Period, open) ch2 = request.security(syminfo.tickerid, Period, close) // Signals// long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) ? 1 : -1 short_signal = crossover(last_short, last_long) ? -1 : 1 if (long_signal == 1) strategy.entry("Long Open", strategy.long) if (short_signal == -1) strategy.close("Long Open") if (long_signal[1] == 1 and short_signal[1] == 1) open_long := 1 close_position := 0 if (short_signal[1] == -1 and long_signal[1] == -1) open_long := 0 close_position := 1 plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10) plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10) //plot(0, title="Trigger", color=white) ///////////////////////////////////////////////////////////////////////////////////////////