Stratégie de croisement à trois moyennes mobiles


Date de création: 2023-11-06 09:48:33 Dernière modification: 2023-11-06 09:48:33
Copier: 0 Nombre de clics: 661
1
Suivre
1617
Abonnés

Stratégie de croisement à trois moyennes mobiles

Aperçu

La stratégie de croisement triangulaire est une stratégie de suivi de tendance qui utilise la croisée de moyennes mobiles de différentes périodes de temps comme signal d’achat et de vente. La stratégie utilise trois moyennes mobiles, y compris les moyennes mobiles à court terme, moyennes mobiles à moyen terme et moyennes mobiles à long terme, pour former un signal de transaction en fonction de leur croisement.

Principe de stratégie

La stratégie calcule d’abord les moyennes mobiles à court terme (default 7 jours), moyennes mobiles à moyen terme (default 25 jours) et moyennes mobiles à long terme (default 99 jours), puis génère un signal de transaction selon les règles suivantes:

  1. Un signal d’achat est généré lorsque les moyennes mobiles à court terme traversent les moyennes mobiles à moyen terme.

  2. Un signal de vente est généré lorsque la moyenne mobile intermédiaire passe sous la moyenne mobile à court terme.

  3. Un signal d’achat rapide est généré lorsque les moyennes mobiles à court terme sont croisées avec les moyennes mobiles à long terme.

  4. Un signal de vente rapide est généré lorsque la moyenne mobile à court terme est traversée par la moyenne mobile à long terme.

La stratégie considère que la traversée de la moyenne mobile intermédiaire au-dessus de la moyenne mobile à court terme indique que la tendance du marché est en hausse, ce qui génère un signal d’achat; et la traversée de la moyenne mobile intermédiaire en dessous de la moyenne mobile à court terme indique que la tendance du marché est en baisse, ce qui génère un signal de vente. De même, la croisée de la moyenne mobile à court terme avec la moyenne mobile à long terme génère également un signal de transaction rapide pour capturer les changements de tendance de la ligne plus longue.

Analyse des avantages

  • La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre.
  • L’analyse des cycles multiples permet de capturer efficacement les changements de tendance du marché.
  • Les paramètres de la stratégie peuvent être optimisés en ajustant la périodicité des moyennes mobiles.
  • Des signaux croisés visualisés, qui reflètent intuitivement les changements de tendance.

Analyse des risques

  • Les moyennes mobiles sont en retard et risquent de manquer le point de basculement.
  • Dans les marchés à capitaux multiples, il peut y avoir trop de faux signaux sur les lignes courtes.
  • Il y a peut-être trop de faux signaux sur les lignes longues sous les lignes courtes sur les marchés à ciel ouvert.
  • Les signaux d’achat et de vente rapides peuvent être trop sensibles, augmentant le nombre de transactions et les frais de traitement.

Il est possible d’optimiser et de réduire les faux signaux en ajustant le cycle des moyennes mobiles ou en ajoutant des conditions de filtrage. Il est également possible de raccourcir le cycle des transactions rapides et de réduire la fréquence des transactions.

Direction d’optimisation

  • Ajouter des conditions de filtrage, par exemple, pour générer un signal lorsque le volume de transactions est supérieur à un certain pourcentage ou lorsque le prix change.
  • Le filtrage est combiné avec d’autres indicateurs, tels que MACD, KDJ, etc., pour éviter de faire des erreurs de trading en l’absence de tendance claire.
  • Optimisation de la combinaison des cycles des moyennes mobiles pour réduire les faux signaux.
  • Distinguer les marchés à capitaux multiples et les marchés à capitaux vides, optimiser les paramètres d’achat et de vente.
  • Il faut prendre en compte le coût des transactions, ajuster les paramètres de transaction rapide et contrôler la fréquence des transactions.

Résumer

L’ensemble de la stratégie d’intersection de trois équilibres est relativement simple et direct, déterminant la direction de la tendance par l’intersection d’équilibres de différentes périodes de temps pour produire un signal de négociation. La stratégie est facile à mettre en œuvre, l’ajustement des paramètres est flexible et permet de capturer les changements de tendance.

Code source de la stratégie
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dadashkadir

//@version=4
strategy("Üç Hareketli Ortalama Str.", overlay=true, initial_capital=10000, commission_value=0.047, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_order_fills=true)

kisa = input(title = "Kısa Vade - Gün", defval = 7,  minval = 1)
orta = input(title = "Orta Vade - Gün", defval = 25, minval = 1)
uzun = input(title = "Uzun Vade - Gün", defval = 99, minval = 1)

sma7  = sma(close, kisa)
sma25 = sma(close, orta)
sma99  = sma(close, uzun)

alTrend  = plot (sma7, color=#2323F1, linewidth=2, title="Har.Ort. Kısa Vade", transp=0)
satTrend = plot (sma25, color=#FF0C00, linewidth=3, title="Har.Ort. Orta Vade", transp=0)
ort99    = plot (sma99, color=#DFB001, linewidth=3, title="Har.Ort. Uzun Vade", transp=0)

zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")

al  = crossover (sma7, sma25) and zamanaralik <= year
sat = crossover (sma25, sma7) and zamanaralik <= year

hizlial = crossover (sma7, sma99) and zamanaralik <= year
hizlisat = crossover (sma99, sma7) and zamanaralik <= year

alkosul  = sma7 >= sma25
satkosul = sma25 >= sma7

hizlialkosul  = sma7 >= sma99
hizlisatkosul = sma99 >= sma7

plotshape(al,  title = "Buy",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Sell", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

plotshape(hizlial,  title = "Hızlı Al",  text = 'Hızlı Al',  style = shape.labelup,   location = location.belowbar, color= color.blue, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlisat, title = "Hızlı Sat", text = 'Hızlı Sat', style = shape.labeldown, location = location.abovebar, color= #6106D6 , textcolor = color.white, transp = 0, size = size.tiny)

fill (alTrend, satTrend, color = sma7 >= sma25? #4DFF00 : #FF0C00, transp=80, title="Al-Sat Aralığı")
//fill (ort99, satTrend, color = sma7 >= sma25? #6106D6 : color.blue, transp=80, title="Hızlı Al-Sat Aralığı")

if (al)
    strategy.entry("LONG", strategy.long)
if (sat)
    strategy.entry("SHORT", strategy.short)
//if (hizlial)
//    strategy.entry("My Short Entry Id", strategy.long)
//if (hizlisat)
//    strategy.entry("My Short Entry Id", strategy.short)