Stratégie de suivi des tendances du graphique en nuage à échelle équilibrée


Date de création: 2024-02-01 11:34:23 Dernière modification: 2024-02-01 11:34:23
Copier: 3 Nombre de clics: 634
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances du graphique en nuage à échelle équilibrée

Nom de la stratégie: Stratégie de suivi des tendances de l’échelle de nuage équilibrée

Deuxième vue d’ensemble de la stratégie

Cette stratégie utilise les différents signaux fournis par l’indicateur Equilibrium Cloud et a conçu une stratégie de suivi de tendance pure, qui vise à capturer les tendances à moyen et long terme, à filtrer les fluctuations de consolidation et à suivre la direction des tendances fortes.

Troisièmement, le principe de stratégie

La stratégie utilise les signaux principaux tels que les lignes de conversion, les lignes de référence et les lignes de retard dans les indicateurs de nuages à échelle équilibrée. En ce qui concerne les jugements de tendance à long terme, l’accent est mis sur la relation entre les changements ascendants et descendants des nuages avant et arrière pour juger de la tendance. Pour les sélections d’entrée et de sortie spécifiques, le croisement des lignes de conversion et des lignes de référence et les changements dans la relation entre les prix et les nuages sont la base principale.

Dans l’ensemble, la logique centrale de la stratégie est la suivante: confirmer la direction de la tendance à moyen et long terme - > attendre l’occasion d’un redémarrage de la tendance forte - > suivre les tendances d’entrée - > suivre les sorties de stop-loss.

Plus précisément, pour juger de la tendance à moyen et long terme, déterminer la relation de changement entre le nuage avant et le nuage arrière (si le nuage avant est en haut et vert, il représente la tendance à la hausse, au contraire, il représente la tendance à la baisse). Lorsque la tendance à moyen et long terme est confirmée, le jugement de la tendance est redémarré par le croisement de la ligne de conversion et de la ligne de référence et le signal de rupture du nuage de prix.

Ainsi, en filtrant les fluctuations à court et moyen terme, il est possible de saisir les opportunités de tendances fortes et d’obtenir des gains supplémentaires stables à long terme sur les marchés boursiers.

Quatrièmement, les avantages stratégiques

a) déterminer la direction des tendances à moyen et à long terme à l’aide d’une carte de nuage à échelle équilibrée, ce qui permet de localiser les principales directions;

(ii) La croisée des lignes de conversion et de référence et les variations de la relation entre les prix et le diagramme de nuages permettent de déterminer le moment d’entrée, de filtrer efficacement les oscillations et de capturer les tendances fortes

(iii) le suivi des mécanismes d’arrêt et de sortie des pertes, qui permettent de réaliser des gains de tendance générale et de contrôler efficacement les pertes individuelles;

(iv) synthèse de plusieurs signaux d’équilibrage de nuages, formation d’une stratégie systématique de suivi des tendances, une bonne performance stable

Cinquièmement, le risque stratégique.

(i) risque systémique d’erreur de jugement à moyen et long terme. Si la tendance à moyen et long terme est mal jugée, les opérations ultérieures courent le risque d’être dans la mauvaise direction.

(ii) Risques liés à une mauvaise sélection du moment de l’entrée.

(iii) suivre les risques liés à un arrêt trop rapproché. Si l’arrêt est trop rapproché, les situations extrêmes peuvent être dépassées et entraîner des pertes.

(iv) Le fardeau des frais de transaction causé par une fréquence de transaction trop élevée. Les frais de transaction augmentent également si les paramètres mal configurés rendent la fréquence de transaction trop élevée.

Sixièmement, optimiser les stratégies

(i) tester différentes combinaisons de paramètres de la période d’équilibre pour trouver le paramètre optimal

(ii) Optimiser les conditions d’admission et concevoir des filtres plus stricts pour assurer une admission efficace

(iii) Ajustement de la marge de manœuvre pour trouver le meilleur équilibre entre les risques et les bénéfices

(iv) l’ajout d’objectifs de prix de profit, combinés à la distance entre les prix et les indicateurs clés de l’équilibre, pour former un mécanisme de profit dynamique;

VII. Conclusion

Cette stratégie de suivi des tendances de l’équilibre de l’échelle de nuage d’équilibre, l’équilibre de l’échelle de nuage d’équilibre de plusieurs signaux de juger de la direction de la tendance, le moment de l’entrée, l’arrêt de la perte de sortie. La pratique a montré que la stratégie peut effectivement saisir la tendance à moyen et long terme, filtrer les oscillations, la stabilité d’obtenir des gains excessifs.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ichimoku trendfollowing", overlay=true, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.04, slippage=2)

//***************************
//  INPUT BACKTEST RANGE    *
//***************************
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000) 
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

//***************
//*  ICHIMOKU   *
//***************
//inizializzazione parametri,,
tenkanPeriods = input(9, minval=1, title="Tenkan-Sen")
kinjunPeriods = input(26, minval=1, title="Kinjun-Sen")
senkouSpanBPeriods = input(52, minval=1, title="Senkou Span B")
displacement = input(26, minval=1, title="-ChinkouSpan/+SenkouSpan A")

//definizione Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line)
averageHighLow(period) => avg(lowest(period), highest(period))
tenkan= averageHighLow(tenkanPeriods)
kinjun = averageHighLow(kinjunPeriods)
senkouSpanA = avg(tenkan, kinjun)
senkouSpanB = averageHighLow(senkouSpanBPeriods)

//definisco il colore della kumo in base al trend.
senkouSpan1Above = senkouSpanA >= senkouSpanB ? 1 : na
senkouSpan2Below = senkouSpanA <= senkouSpanB ? 1 : na

span1plotU = senkouSpan1Above ? senkouSpanA : na
span2plotU = senkouSpan1Above ? senkouSpanB : na
span1plotD = senkouSpan2Below ? senkouSpanA : na
span2plotD = senkouSpan2Below ? senkouSpanB : na

col = senkouSpanA >= senkouSpanB ? lime : red

//plots Ichimoku
plot(tenkan, title = 'Tenkan-Sen', linewidth=1, color=blue)
plot(kinjun, title = 'Kinjun-Sen', linewidth=1, color=red)
plot(close, title = 'Chinkou Span', linewidth=1, offset = -displacement, color=aqua)
plot( senkouSpanA, title = 'Senkou Span A', style=line, linewidth=1, offset = displacement, color=lime)
plot(senkouSpanB, title = 'Senkou Span B', style=line, linewidth=1, offset = displacement, color=red)

//Cloud Lines Plot 
p1 = plot(span1plotU ? span1plotU  : na, title = 'Senkou Span A Above Senkou Span B', style=linebr, linewidth=1, offset = displacement, color=col)
p2 = plot(span2plotU ? span2plotU  : na, title = 'Senkou Span B (52 Period) Below Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p3 = plot(span1plotD ? span1plotD  : na, title = 'Senkou Span A (26 Period) Below Span B Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p4 = plot(span2plotD ? span2plotD  : na, title = 'Senkou Span B (52 Period) Above Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
//Fills that color cloud based on Trend.
fill(p1, p2, color=lime, transp=70, title='Kumo (Cloud)')
fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)')

//***********************************************
//*     condizioni ingresso ed uscita mercato   *
//***********************************************
isKumoRialzista = senkouSpanA >= senkouSpanB ? true : false
isSopraKumo = (close > max(senkouSpanA[displacement], senkouSpanB[displacement]))
isSottoKumo = (close < min(senkouSpanA[displacement], senkouSpanB[displacement]))
isChinkouSpanSopra = high[displacement]<close
isChinkouSpanSotto = low[displacement]>close

filtroLong=isSopraKumo and isChinkouSpanSopra
filtroShort=isSottoKumo and isChinkouSpanSotto

//rimbalzato su kijun quando i prezzi stavano ritracciando e il trend era già in atto(tenkan >kijun x entrare long
isPullBackLijunEntryLong = kinjun<tenkan and low<kinjun and (close>kinjun) 
isPullBackLijunEntryShort =kinjun>tenkan and high>kinjun and  (close<kinjun) 

//Breackout Kumo
isBreackoutKumoEntryLong =  crossover(close, max(senkouSpanA[displacement], senkouSpanB[displacement])) and (close>tenkan) and (close>kinjun) 
isBreackoutKumoEntryShort =  crossunder(close, min(senkouSpanA[displacement], senkouSpanB[displacement])) and (close<tenkan) and (close<kinjun)

ConditionEntryLong = (isPullBackLijunEntryLong or isBreackoutKumoEntryLong ) and filtroLong
ConditionEntryShort = (isPullBackLijunEntryShort or isBreackoutKumoEntryLong ) and filtroShort

isExitLong = close<kinjun
isExitShort = close>kinjun

//ingressi ed uscite Mercato
strategy.entry ("Long",long=true, when = window() and ConditionEntryLong)
strategy.entry ("Short",long=false, when = window() and ConditionEntryShort)

strategy.close(id="Long", when=isExitLong)
strategy.close(id="Short", when=isExitShort)
strategy.close_all(when=not window())