
Diese Strategie kombiniert EMA-Indikatoren mit K-Linien-Form-Beschlüssen und ermöglicht ein sensibleres Langzeitsignalfang und Verlustverhinderung.
Diese Strategie basiert auf folgenden Kennzahlen:
EMA-Gehalt: Die EMA-Gehaltgruppe 2 mit 13 und 21 Perioden wird verwendet, um zu bestimmen, ob ein Preisbruch ein Handelssignal bildet.
K-Linienform: Bestimmung der Richtung der K-Linien-Einheit, zusammen mit dem EMA-Indikator verwendet, Filter falscher Durchbruch.
Unterstützungswiderstand: Der jüngste 10-Zyklus-Hochpunkt wird verwendet, um zu beurteilen, ob ein Durchbruch die Signalzuverlässigkeit durch diese Zone erhöht.
Aufstiegszeit: 120-Zyklus-Close-Preis über dem Open-Preis als Aufstiegszeit beurteilt, als Hilfsentscheidung.
Die Regeln für die Erzeugung von Handelssignalen lauten:
Mehrköpfige Signal: Schnell-EMA nach oben durchbrechen die langsame EMA, und für die Kurvenlinie K-Linie, schließen die leeren Lager öffnen.
Hohes Signal: Schneller EMA fällt abwärts über den langsamen EMA und ist eine negative K-Linie, die Positionen ausgleicht.
Stop-Loss-Exit: Der Stop-Loss-Exit der aktuellen Position erfolgt, wenn ein Gegenhandsignal ausgegeben wird.
Diese Risiken können durch Vermeidung von Überoptimierung, umsichtige Auswahl der Parameter und strenge Kontrolle der Positionsgröße verringert werden.
Diese Strategie integriert die EMA-Indikatoren des Mehrzeitrahmens mit der K-Line-Einheit und ermöglicht eine zuverlässige Trendbeurteilung. Die Strategie wird unterstützt, um die Signalqualität zu gewährleisten. Durch die Anti-Hand-Signal-Stoppmechanik kann der einzelne Stopp effektiv kontrolliert werden. In Zukunft kann die Strategie durch die Einführung von maschinellen Lernmodellen, Anpassungs-Stoppmodulen, emotionale Analyse und Positionsmanagement-Modulen optimiert werden.
/*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)
///////////////////////////////////////////////////////////////////////////////////////////