Les ressources ont été chargées... Je charge...

Stratégie de la ligne d'équilibre Ichimoku

Auteur:ChaoZhang est là., Date: 2023-12-26 16h13h42
Les étiquettes:

img

Résumé

La stratégie Ichimoku Balance Line est une stratégie de suivi de tendance qui détermine la direction de la tendance en calculant les moyennes mobiles combinées à l'indicateur Ichimoku Kinko Hyo pour le trading de tendance à faible risque.

Principe de stratégie

La stratégie utilise principalement l'indicateur Ichimoku Kinko Hyo pour déterminer la direction de la tendance. Ichimoku Kinko Hyo, également connu sous le nom de Ichimoku Cloud, se compose du Tenkan-sen (ligne de conversion), Kijun-sen (ligne de base), Senkou Span A (ligne de conversion A) et Senkou Span B (ligne de conversion B). Il forme une zone d'équilibre entre l'avant et l'arrière appelée le Kumo Cloud. Lorsque le prix est au-dessus du nuage, il signale une tendance à la hausse.

La stratégie combine la relation de prix avec les moyennes mobiles pour déterminer la direction de la tendance. Elle génère un signal d'achat lorsque le prix traverse au-dessus de la ligne de base et de la ligne de conversion. Un signal de vente est généré lorsque le prix dépasse le nuage. Cette combinaison aide à filtrer les fausses ruptures et à verrouiller la direction de la tendance.

Analyse des avantages

  • Utilise Ichimoku Kinko Hyo pour déterminer la tendance et éviter les fausses ruptures dans les marchés variés
  • Paramètres de moyenne mobile personnalisables pour une optimisation entre les périodes
  • La combinaison avec les moyennes mobiles aide à fixer efficacement la direction de la tendance
  • Les bandes nuageuses permettent une négociation de tendance à faible risque

Analyse des risques

  • Prédisposé à générer de faux signaux dans des conditions de marché instables
  • Des paramètres mal réglés peuvent entraîner des signaux commerciaux trop fréquents ou retardés
  • Réglage manuel de la direction de la tendance et ajustement des paramètres requis

Directions d'optimisation

La stratégie peut être optimisée de plusieurs façons:

  1. Optimiser les paramètres Ichimoku pour s'adapter à plus de délais
  2. Incorporer le stop loss pour limiter les pertes par transaction
  3. Ajoutez des indicateurs pour mesurer les tendances fortes et faibles afin d'éviter les échecs
  4. Ajouter plus de conditions d'entrée pour éviter d'ouvrir des positions dans des conditions de marché extrêmes

Conclusion

En conclusion, la stratégie de ligne de balance Ichimoku utilise le nuage Ichimoku pour déterminer la direction de la tendance, verrouiller les tendances efficacement et générer des signaux de trading en combinant la relation de prix avec les moyennes mobiles, permettant un trading de tendance à faible risque.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit for the initial code to nathanhoffer - I simply added the ability to select a time period
//
strategy("Cloud Breakout", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Component Code Start ///////////////
testStartYear = input(2016, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

Ten = input(18, minval=1, title="Tenkan")
Kij = input(60, minval=1, title="Kijun")
LeadSpan = input(30, minval=1, title="Senkou B")
Displace = input(52, minval=1, title="Senkou A")
SpanOffset = input(52, minval=1, title="Span Offset")

sts = input(true, title="Show Tenkan")
sks = input(true, title="Show Kijun")
ssa = input(true, title="Show Span A")
ssb = input(true, title="Show Span B")
sc = input(true, title="Show Chikou")

source = close

//Script for Ichimoku Indicator
donchian(len) => avg(lowest(len), highest(len))
TS = donchian(Ten)
KS = donchian(Kij)
SpanA = avg(TS, KS)
SpanB = donchian(LeadSpan)

CloudTop = max(TS, KS)

Chikou = source[Displace]
SpanAA = avg(TS, KS)[SpanOffset]
SpanBB = donchian(LeadSpan)[SpanOffset]

//Kumo Breakout (Long)
SpanA_Top = SpanAA >= SpanBB ? 1 : 0
SpanB_Top = SpanBB >= SpanAA ? 1 : 0

SpanA_Top2 = SpanA >= SpanB ? 1 : 0
SpanB_Top2 = SpanB >= SpanA ? 1 : 0

SpanA1 = SpanA_Top2 ? SpanA : na
SpanA2 = SpanA_Top2 ? SpanB : na

SpanB1 = SpanB_Top2 ? SpanA : na
SpanB2 = SpanB_Top2 ? SpanB : na

//plot for Tenkan and Kijun (Current Timeframe)
p1= plot(sts and TS ? TS : na, title="Tenkan", linewidth = 2, color = gray)
p2 = plot(sks and KS ? KS : na, title="Kijun", linewidth = 2, color = black)
//p5 = plot(sc and KS ? KS : na, title="Chikou", linewidth = 2, color = orange)
p5 = plot(sc and Displace ? close: na, title="Chikou", linewidth = 2, offset=-Displace, color = orange)

//Plot for Kumo Cloud (Dynamic Color)
p3 = plot(ssa and SpanA ? SpanA : na, title="SpanA", linewidth=2, offset=Displace, color=green)
p4 = plot(ssb and SpanB ? SpanB : na, title="SpanB", linewidth=2, offset=Displace, color=red)

p8 = plot(ssa and SpanA1 ? SpanA1 : na, title="Span A1 above", style=linebr, linewidth=1, offset=Displace, color=green)
p9 = plot(ssa and SpanA2 ? SpanA2 : na, title="Span A2 above", style=linebr, linewidth=1, offset=Displace, color=green)
p10 = plot(ssb and SpanB1 ? SpanB1 : na, title="Span B1 above", style=linebr, linewidth=1, offset=Displace, color=red)
p11 = plot(ssb and SpanB2 ? SpanB2 : na, title="Span B2 above", style=linebr, linewidth=1, offset=Displace, color=red)

fill(p8, p9, color = lime, transp=70, title="Kumo Cloud Up")
fill (p10, p11, color=red, transp=70, title="Kumo Cloud Down")

LongSpan = (SpanA_Top and source[1] < SpanAA[1] and source > SpanAA) or (SpanB_Top and source[1] < SpanBB[1] and source > SpanBB) ? 1 : 0
cupSpan = LongSpan  == 1 ? LongSpan : 0

Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))

ShortSpan = (SpanB_Top and source[1] > SpanAA[1] and source < SpanAA) or (SpanA_Top and source[1] > SpanBB[1] and source < SpanBB) ? 1 : 0
cdnSpan = ShortSpan == 1 ? ShortSpan : 0

Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))

//Kumo Twist
Kumo_Twist_Long = SpanA[1] < SpanB[1] and SpanA > SpanB ? 1 : 0
Kumo_Twist_Short = SpanA[1] > SpanB[1] and SpanA < SpanB ? 1 : 0

cupD = Kumo_Twist_Long == 1 ? Kumo_Twist_Long : 0
cdnD = Kumo_Twist_Short == 1 ? Kumo_Twist_Short : 0

Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

long = (cross(TS, SpanA) or cross(TS, SpanB)) and TS>SpanA and TS>SpanB and TS>=KS
short = cross(TS, KS) and KS >= TS

if testPeriod()
    strategy.entry("long", strategy.long, when=Long_Breakout)
    strategy.entry("short", strategy.short, when=Short_Breakout)

Plus de