Stratégie d'oscillation aléatoire

Auteur:ChaoZhang est là., Date: 2023-11-06 09:30:27 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie d'oscillation aléatoire intègre plusieurs indicateurs techniques, y compris Ichimoku Kinko Hyo, MACD et Hull Moving Average, pour former un système de décision de trading systématique.

La logique de la stratégie

Tout d'abord, le Tenkan-sen et le Kijun-sen d'Ichimoku Kinko Hyo sont adoptés. Le Tenkan-Sen est calculé comme la moyenne du plus haut plus haut et du plus bas plus bas au cours des 9 dernières périodes.

Deuxièmement, l'indicateur MACD est incorporé comme un important indicateur de dynamique de suivi de tendance. Il montre la relation entre deux EMA de prix. Les croisements du MACD et de sa ligne de signal génèrent des signaux de trading.

Troisièmement, la moyenne mobile de Hull est introduite pour améliorer l'émission en retard des moyennes mobiles et augmenter la sensibilité à la capture des renversements de prix.

Enfin, la stratégie combine tous les indicateurs ci-dessus pour former un système de négociation robuste.

Les avantages

  • La diversification par l'intermédiaire de plusieurs indicateurs réduit l'échec d'un seul point.

  • L'intégration fournit un pouvoir de décision plus fort grâce à un modèle holistique.

  • Diminution des faux signaux, chaque signal étant vérifié par d'autres.

  • Amélioration de l'efficacité en agissant uniquement sur des signaux à forte conviction.

  • Paramètres personnalisables pour adapter la stratégie à l'évolution des marchés.

  • Réduit le retard et une réponse plus rapide de la moyenne mobile de la coque.

Les risques

  • Un risque plus élevé dans les marchés volatiles avec une augmentation des faux signaux.

  • Inefficace si les paramètres des indicateurs ne sont pas correctement optimisés.

  • Peut manquer les mouvements de tendance en se concentrant sur les revers.

  • Le Hull MA est relativement nouveau et non prouvé sur le long terme.

  • Les échanges peu fréquents pourraient manquer certaines opportunités.

Amélioration

  • L'ajout de plus d'indicateurs comme les bandes de Bollinger pourrait encore optimiser le système.

  • Paramètre de réglage pour trouver la combinaison optimale pour différents actifs et délais.

  • Introduire des arrêts dynamiques pour contrôler les pertes d'une seule transaction.

  • Incorporer des filtres de tendance pour éviter de manquer des courses de tendance.

  • Optimiser la taille des positions en ajustant la fréquence et la taille en fonction des conditions du marché.

Conclusion

La stratégie d'oscillation aléatoire combine plusieurs techniques d'analyse technique pour saisir les opportunités sur les marchés à plage. Elle offre les avantages de l'intégration des indicateurs, de la réduction des faux signaux et d'une efficacité améliorée. Mais elle comporte également des risques inhérents qui nécessitent une optimisation et une adaptation supplémentaires.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Ichimoku Kinko Hyo + HULL-MA_X + MacD", shorttitle="@m", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

keh=input(title="Double HullMA",defval=12, minval=1)

n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
LS=close, offset = -displacement

MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(24)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
p1=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
p2=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

closelong = n1<n2 and close<n2 and (MACD<aMACD or TenkanSen<KijunSen or close<KijunSen)
if (closelong)
    strategy.close("Long")

closeshort = n1>n2 and close>n2 and (MACD>aMACD or TenkanSen>KijunSen or close>KijunSen)
if (closeshort)
    strategy.close("Short")

longCondition = n1>n2 and close>n2 and MACD>aMACD and (TenkanSen>KijunSen or close>KijunSen) 
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = n1<n2 and close<n2 and MACD<aMACD and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)

Plus de