Stratégie d'arbre de décision multi-indicateur: IMACD, EMA et première table d'équilibre


La date de création: Je vous en prie. La dernière modification: Je vous en prie.
Je suis désolée. 0 est 0. Le nombre de clics: 341
1
Attention
1105
Les personnes concernées

多指标决策树策略:IMACD、EMA和一目均衡表

Résumé

Cette stratégie utilise de nombreux indicateurs techniques tels que l'IMACD, l'EMA et le tableau de l'équilibre initial pour construire un modèle d'arbre de décision complet pour envoyer des signaux d'achat et de vente.

Les principes stratégiques

  1. IMACD: MACD amélioré, pour mieux capturer les tendances du marché avec ImpulseMACD et ImpulseHisto
  2. Tableau d'équilibre de première vue: tracer les lignes de changement, les lignes de référence, les lignes de précurseur A, B, etc., détecter les niveaux de support et de résistance
  3. EMA 40: aide à déterminer les tendances
  4. Émettre des signaux de plus et de moins en fonction de la relation spécifique entre l'IMACD, le composant de la carte des nuages et l'EMA 40

Multiplier les signaux: Multiplier lorsque l'IMACD est en couleur pour certaines conditions et que l'EMA 40 est supérieur à celui du graphique des nuages

Signal de décrochage: décrochage lorsque l'IMACD est en rouge et que l'EMA 40 est inférieure à la trajectoire du tableau des nuages

Analyse des avantages

  1. Combinaison de plusieurs indicateurs, évaluation intégrée des tendances du marché, amélioration de l'exactitude des décisions
  2. Les modèles d'arbres de décision sont clairement classés et les signaux de transaction sont générés de manière claire
  3. La longueur de l'EMA est réglable, ce qui permet une plus grande souplesse de jugement.
  4. Combiné à des graphiques de nuages et des indicateurs de tendance pour mieux identifier les supports et les résistances

L'analyse des risques

  1. Combinaison de plusieurs indicateurs, paramètres plus complexes
  2. La longueur de l'EMA n'est pas réglée correctement, ce qui peut entraîner de faux signaux de trading.
  3. Il est plus difficile de travailler sur plusieurs indicateurs en même temps.

Résolution des risques: optimisation des paramètres, ajustement de la longueur de l'EMA et simplification des processus opérationnels.

Optimisation

  1. Optimiser les paramètres pour améliorer la stabilité des stratégies
  2. Augmenter les stratégies d'arrêt des pertes pour contrôler les pertes monétaires
  3. Des retouches basées sur des données massives améliorent la qualité du signal
  4. Des algorithmes d'apprentissage automatique pour créer des arbres de décision adaptatifs

Résumé

Cette stratégie utilise des tendances d'identification de plusieurs indicateurs pour construire des modèles d'arbres de décision pour produire des signaux de trading. Les avantages sont la haute qualité des signaux, une grande précision et une optimisation progressive. Il est nécessaire de se concentrer sur l'optimisation des paramètres et les stratégies de stop-loss pour contrôler les risques de trading afin d'obtenir des rendements stables à long terme.

Le code source de la stratégie
                
                    /*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Decision Tree Strategy: IMACD, EMA and Ichimoku [cryptoonchain]", overlay=true)

lengthMA = input(34, title="Length MA")
lengthSignal = input(9, title="Length Signal")
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
emaLength = input(40, title="EMA Length")  // Added user-configurable EMA length

calc_smma(src, len) =>
    smma = float(na)
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len
    smma

calc_zlema(src, length) =>
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    d = ema1 - ema2
    ema1 + d

src = ohlc4
hi = calc_smma(high, lengthMA)
lo = calc_smma(low, lengthMA)
mi = calc_zlema(src, lengthMA)

md = (mi > hi) ? (mi - hi) : (mi < lo) ? (mi - lo) : 0
sb = ta.sma(md, lengthSignal)
sh = md - sb
mdc = src > mi ? (src > hi ? color.rgb(128, 255, 0, 26) : color.green) : (src < lo ? color.red : color.orange)

colorCondition = color.rgb(128, 255, 0, 26)

conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods))

// Use user-configurable length for EMA
ema40 = ta.ema(close, emaLength)

ebc = input(false, title="Enable bar colors")
barcolor(ebc ? mdc : na)

conversionLinePlot = plot(conversionLine, color=#2962FF, title="Conversion Line", display=display.none)
baseLinePlot = plot(baseLine, color=#B71C1C, title="Base Line", display=display.none)
laggingSpanPlot = plot(close, offset=-displacement + 1, color=#43A047, title="Lagging Span", display=display.none)
leadLine1Plot = plot(leadLine1, offset=displacement - 1, color=#A5D6A7, title="Leading Span A", display=display.none)
leadLine2Plot = plot(leadLine2, offset=displacement - 1, color=#EF9A9A, title="Leading Span B", display=display.none)
kumoCloudUpperLinePlot = plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset=displacement - 1, title="Kumo Cloud Upper Line", display=display.none)
kumoCloudLowerLinePlot = plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset=displacement - 1, title="Kumo Cloud Lower Line", display=display.none)
fill(kumoCloudUpperLinePlot, kumoCloudLowerLinePlot, color=leadLine1 > leadLine2 ? color.green : color.red)

a = (leadLine1 > leadLine2 ? leadLine1 : leadLine2) 
b = (leadLine1 < leadLine2 ? leadLine1 : leadLine2)  

if mdc == colorCondition and ema40 > a[displacement - 1]
    strategy.entry("Long", strategy.long)

if mdc == color.red and ema40 < b[displacement - 1]
    strategy.entry("Short", strategy.short)

                
            
En savoir plus