Stratégie de combinaison de cassure EMA et de modèle de chandelier sur plusieurs périodes


Date de création: 2024-02-21 15:00:06 Dernière modification: 2024-02-21 15:00:06
Copier: 0 Nombre de clics: 585
1
Suivre
1617
Abonnés

Stratégie de combinaison de cassure EMA et de modèle de chandelier sur plusieurs périodes

Aperçu

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.

Principe de stratégie

La stratégie est basée sur les indicateurs suivants:

  1. 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.

  2. 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.

  3. 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.

  4. 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:

  1. Signaux multiples: EMA rapide vers le haut, EMA lente, et ligne K pour la ligne droite, fermeture de la position vide.

  2. 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.

  3. Stop loss exit: lorsque le signal de contre-main est émis, le stop loss sort de la position actuelle.

Avantages stratégiques

  1. Les indicateurs de l’EMA sur plusieurs périodes permettent de mieux évaluer les tendances et d’éviter les faux-breechers.
  2. Le filtrage de la direction de l’entité de la ligne K permet d’identifier plus précisément les tendances.
  3. Augmentation du jugement temporel et soutien du jugement de résistance pour assurer la qualité du signal.
  4. Le jeu de contre-pied est un moyen de limiter les pertes.

Risque stratégique

  1. La faillite entraîne un risque de perte. Même avec l’introduction de jugements d’entités de la ligne EMA et de la ligne K de plusieurs périodes, l’impact de la faillite sur la stratégie ne peut pas être complètement évité.
  2. Le risque de sélection des paramètres. Le mauvais réglage des paramètres tels que le cycle EMA, le cycle de jugement de la ligne K peut entraîner une baisse de la qualité du signal.
  3. Risque de défaillance de la résistance au support. La défaillance de la résistance au support historique est fréquente, ce qui peut également entraîner une insuffisance de puissance lors de la génération du signal.
  4. Risque de défaillance temporelle. Les circonstances sont variables et ne peuvent pas être entièrement déterminées à l’heure.

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.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’un modèle d’apprentissage automatique d’aide au jugement. Les modèles de classification peuvent être entraînés à juger la direction des entités de la ligne K, ce qui améliore l’exactitude du jugement.
  2. Ajout de mécanismes d’arrêt adaptatifs, tels que des arrêts de trailing ou des arrêts basés sur la volatilité.
  3. L’analyse de l’émotion est associée à l’introduction d’un certain mécanisme de jugement de l’opinion médiatique, afin d’éviter que des informations négatives importantes n’affectent la stratégie.
  4. Ajout d’un module de gestion de position, comme l’introduction d’un ratio de position fixe ou d’un module de régulation de position basé sur la gestion des fonds.

Résumer

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.

Code source de la stratégie
/*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)

///////////////////////////////////////////////////////////////////////////////////////////