
Cette stratégie combine les indicateurs EMA du multi-cadre temporel avec les jugements de forme de la ligne K, permettant une capture et une sortie des signaux de longue ligne plus sensibles.
La stratégie est basée sur les indicateurs suivants:
EMA moyenne: utilisation de 13 cycles, 21 cycles 2 groupes EMA, pour juger de la rupture de prix et de la formation d’un signal de négociation.
La forme de la ligne K: déterminer la direction de l’entité de la ligne K, utilisée conjointement avec l’indicateur EMA, filtrer les fausses percées.
Résistance de support: Construite sur les plus hauts de 10 cycles récents, la percée est jugée à travers cette zone pour améliorer la fiabilité du signal.
Au moment de la hausse: 120 cycles de clôture de la clôture de la clôture de la clôture de la clôture de la clôture de la clôture de la clôture de la clôture.
Les règles de génération des signaux de transaction sont les suivantes:
Signaux multiples: EMA rapide vers le haut, EMA lente, et ligne K pour la ligne droite, fermeture de la position vide.
Signal de tête vide: l’EMA rapide descend au-dessus de l’EMA lente, et est à la ligne K négative, éliminant la plus-value.
Stop loss exit: lorsque le signal de contre-main est émis, le stop loss sort de la position actuelle.
Les risques ci-dessus peuvent être atténués en évitant l’optimisation excessive, en choisissant prudemment les paramètres et en contrôlant strictement la taille de la position.
Cette stratégie intègre les indicateurs EMA multi-temporels et le jugement des entités de la ligne K, permettant un jugement de tendance plus fiable. En combinaison avec la résistance de support et la synchronisation, l’aide est fournie pour assurer la qualité du signal.
/*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)
///////////////////////////////////////////////////////////////////////////////////////////