Stratégie de traversée des canaux de Mobile Vegas


Date de création: 2024-01-02 10:53:06 Dernière modification: 2024-01-02 10:53:06
Copier: 0 Nombre de clics: 1205
1
Suivre
1621
Abonnés

Stratégie de traversée des canaux de Mobile Vegas

L’idée centrale de cette stratégie est de juger la direction de la tendance à court et à long terme des actions en fonction de la moyenne des différents cycles, tels que l’EMA 36,143,169, en combinaison avec l’indicateur MACD pour émettre un signal de vente. Plus précisément, le court terme est jugé par l’EMA de 5 et 10 jours, le moyen terme par l’EMA de 20 et 60 jours, le long terme par l’EMA de 120 et 250 jours.

Les principaux principes de la stratégie du tunnel de Vegas:

  1. L’EMA36 et l’EMA43 sont utilisés pour les jugements de tendance à court terme, qui constituent le canal rouge;
  2. les estimations de tendance à moyen terme sont constituées par les estimations EMA144 et EMA169, qui constituent le canal vert;
  3. L’utilisation d’EMA576 et d’EMA676 pour la détermination des tendances à long terme, qui constituent le canal gris;
  4. Il est possible de faire plus lorsque le prix est au niveau de chaque EMA, puis d’envoyer un signal d’achat en combinant l’indicateur MACD avec une rupture vers le haut de l’axe 0;
  5. Il est possible de faire un short lorsque le prix tombe au-dessous de la moyenne des lignes EMA, puis d’émettre un signal de vente en combinant l’indicateur MACD avec une rupture vers le bas de l’axe 0.
  6. Trois stratégies de négociation, courtes et longues, correspondant respectivement à des périodes de détention différentes, sont décrites en fonction des périodes de courbe moyenne EMA traversées.

Les principaux avantages de cette stratégie sont les suivants:

  1. La direction de la tendance est déterminée par les trois canaux courts, moyens et longs, et est relativement stable.
  2. Les canaux de Vegas sont clairs et intuitifs, et il est facile de juger des tendances.
  3. La combinaison de l’indicateur MACD permet de mieux saisir les moments de vente et d’achat.
  4. Les trois stratégies, plus courtes et plus longues, permettent une plus grande flexibilité dans l’opération.

Les principaux risques de cette stratégie sont:

  1. L’EMA est en retard sur la moyenne lorsque les cours des actions fluctuent fortement, ce qui peut entraîner des erreurs de jugement.
  2. Il y a un risque d’erreur de manœuvre lorsque les trois voies ne sont pas cohérentes.
  3. La manipulation du chronomètre nécessite une forte résistance psychologique.

Comment réagir:

  1. Les cycles de l’EMA peuvent être adaptés de manière appropriée afin de mieux correspondre aux caractéristiques actuelles du marché.
  2. Ajustez le ratio de position avant la transaction pour contrôler les pertes individuelles.

La stratégie peut être optimisée:

  1. Les jugements de tendance des tunnels de Vegas ne suffisent pas et peuvent être introduits dans les jugements auxiliaires des tunnels de Bryn.
  2. L’indicateur MACD peut être remplacé par des indicateurs tels que KD, RSI et autres.
  3. Augmentation des stratégies de stop loss, comme l’arrêt actif lorsque le cours de clôture tombe au-dessus de l’EMA critique.
  4. Les actions A ont été fortement affectées par la baisse des cours, ce qui peut être considéré comme une couverture contre la sous-cotation des ETF.
Code source de la stratégie
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Vegas Tunnel strategy", overlay=true)
//-------------------------------------------
//-------------------------------------------
// Inputs
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="D")
//tfSet = input(title = "Time Frame", options=["Current","120", "240", "D", "W"], defval="D")
tfSet = useCurrentRes ? timeframe.period : resCustom
maPeriods2 = input(12, "12 EMA")
maPeriods6 = input(240, "240 SMA")
BBlength = input(20, title="BB Length", minval=1)
BBsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
sm2 = security(syminfo.tickerid, tfSet, ema(close, maPeriods2))
sm6 = security(syminfo.tickerid, tfSet, sma(close, maPeriods6))
p2 = plot(sm2, color=color.green, transp=30,  linewidth=2, title="SMA2")
p6 = plot(sm6, color=color.white, transp=30,  linewidth=2, title="SMA6")
//BB
basis = sma(BBsrc, BBlength)
dev = mult * stdev(BBsrc, BBlength)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)
//plot(basis, "Basis", color=color.blue,linewidth, offset = offset)
pBB1 = plot(upper, "Upper", color=color.blue, offset = offset)
pBB2= plot(lower, "Lower", color=color.blue, offset = offset)

//MACD
fast_ma = ema(close, 48)
slow_ma = ema(close, 56)
macd = fast_ma - slow_ma

//vagas隧道
f1=ema(close, 36)
f2=ema(close, 43)
f3=ema(close, 144)
f4=ema(close, 169)
f5=ema(close, 576)
f6=ema(close, 676)
f7=ema(close,2304)
z1=plot(f1,color=color.red, title="ema36",transp=100)
z2=plot(f2,color=color.red, title="ema43",transp=100)
z3=plot(f3,color=color.green, title="ema144",transp=100)
z4=plot(f4,color=color.green, title="ema169",transp=100)
z5=plot(f5,color=color.white, title="ema576",transp=100)
z6=plot(f6,color=color.white, title="ema676",transp=100)
fill(z1, z2, color=color.red,transp=60)
fill(z3, z4, color=color.green,transp=60)
fill(z5, z6, color=color.gray,transp=60)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2018, minval=1800, maxval=2100)
endDate = input(title="End Date", type=input.integer,
     defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=11, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2030, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange =  true

//波段多
if (inDateRange and crossunder(f3,f1))// 
    strategy.entry("buy", strategy.long,1, when=macd>0, comment = "買Long-term")
buyclose=crossunder(f3,f5) 
strategy.close("buy", when = buyclose, comment = "關Long-term")
//多策略1
if (inDateRange and crossover(low , f3) and macd>0 and f3>f6)
    strategy.entry("buy1", strategy.long,100, comment = "買Mid-term")
buyclose1=crossunder(close,upper*0.999) 
if (macd<0 or f3<f6)
    strategy.close("buy1", comment = "關Mid-term")
//strategy.close("buy1",when=cross(basis,close), comment = "關M",qty_percent=50)
strategy.close("buy1", when = buyclose1, comment = "關Mid-term",qty_percent=100)
//多策略3
if (inDateRange and  (macd>0) and crossunder(low,f1) and f1>f4) // 
    strategy.entry("buy3", strategy.long,1, comment = "買Short-term")
buyclose3=crossunder(close,upper*0.999)
if (macd<0 or f1<f4)
    strategy.close("buy3", comment = "關Short-term")
strategy.close("buy3", when = buyclose3, comment = "關Short-term")
//多策略4
if (inDateRange and  (macd>0) and crossunder(low,f5) and f4>f5) // 
    strategy.entry("buy4", strategy.long,1, comment = "買Long-term")
buyclose4=crossunder(close,upper*0.999)
if (macd<0 or f4<f6)
    strategy.close("buy4", comment = "關Long-term")
strategy.close("buy4", when = buyclose4, comment = "關Long-term")
    
//空策略1
if (inDateRange and  (macd<0) and crossunder(high,f1) and f1<f3 and f3<f6) // 
    strategy.entry("sell1", strategy.short,1, comment = "空Short-term")
sellclose1=crossunder(lower*0.999,close)
if (macd>0 or f1>f4)
    strategy.close("sell1", comment = "關空Short-term")
strategy.close("sell1", when = sellclose1, comment = "關空Short-term")
//空策略2
if (inDateRange and  (macd<0) and crossunder(high,f4) and f4<f6) // 
    strategy.entry("sell2", strategy.short,1, comment = "空Mid-term")
sellclose2=crossunder(lower,close)
if (macd>0 or f4>f6)
    strategy.close("sell2", comment = "關空Mid-term")
strategy.close("sell2", when = sellclose2, comment = "關Mid-term")
//空策略3
if (inDateRange and (macd<0) and crossunder(high,f6)) // 
    strategy.entry("sell3", strategy.short,1, comment = "空Long-term")
sellclose3=crossunder(lower,close)
if (macd>0 or f6>f7)
    strategy.close("sell3", comment = "關空Long-term")
strategy.close("sell3", when = sellclose3, comment = "關空Long-term")