Stratégie de trading à moyenne mobile à double momentum


Date de création: 2024-02-19 14:36:37 Dernière modification: 2024-02-19 14:36:37
Copier: 1 Nombre de clics: 590
1
Suivre
1617
Abonnés

Stratégie de trading à moyenne mobile à double momentum

Aperçu

La stratégie de négociation en ligne uniforme à double dynamique est une stratégie qui utilise conjointement l’indicateur OTT et l’indicateur de l’oscillateur Wavetrend. Elle se combine avec l’indicateur OTT développé par le professeur Anıl Özekşi et l’indicateur de l’oscillateur Wavetrend de lonestar108 pour former un indicateur de négociation réussi. La stratégie peut être utilisée pour effectuer des opérations d’opérations de couverture en double.

Principe de stratégie

La stratégie de négociation en équilibre binaire calcule d’abord le milieu de la courbe de Brin, c’est-à-dire la moyenne mobile MAvg. Ensuite, en fonction de la portée et de la période de pourcentage définie par l’utilisateur, calcule le longStop et le shortStop.

Plus précisément, l’indicateur central de cette stratégie est l’indicateur OTT. L’indicateur OTT est composé d’une ligne moyenne et d’une ligne de bordure, et consiste à ajuster la position de la ligne de bordure en fonction de la volatilité du marché en fonction d’un certain algorithme. Lorsque le prix tombe en dessous de la ligne de bordure OTT, faites un short; lorsque le prix franchit la ligne de bordure OTT, faites plus.

La stratégie utilise simultanément l’indicateur Wavetrend pour déterminer la direction de la tendance des prix, en ne faisant que le short si la tendance est à la baisse; en ne faisant que le long si la tendance est à la hausse.

Analyse des avantages

La stratégie de négociation en ligne uniforme à double dynamique combine les avantages des moyennes mobiles, des bandes de broyage et des indicateurs OTT pour ajuster automatiquement la position de stop-loss et réduire la probabilité que le stop-loss soit activé. Elle est également associée à des indicateurs de jugement de tendance pour éviter d’être pris dans une tendance oscillante.

Plus précisément, les principaux avantages de cette stratégie sont les suivants:

  1. Il est possible d’ajuster automatiquement le Stop Loss et de contrôler efficacement le risque.
  2. Les indicateurs OTT permettent de déterminer plus précisément le point de basculement
  3. Les indicateurs de tendance et la prévention des marchés en crise
  4. Les règles sont relativement simples, claires et faciles à comprendre.

Analyse des risques

Les stratégies de négociation en ligne à double dynamique présentent également des risques, principalement concentrés sur les aspects suivants:

  1. Dans des conditions extrêmes, la ligne de stop-loss peut être franchie et entraîner des pertes importantes.
  2. Les signaux inversés de l’indicateur OTT ne sont pas forcément précis et peuvent provoquer des signaux de défaillance.
  3. Il est également possible de faire des erreurs dans le jugement des tendances et de faire des pertes importantes pendant la chute.
  4. Une mauvaise configuration des paramètres peut également affecter l’efficacité de la stratégie

Les principaux moyens de lutte sont les suivants:

  1. Laissez la marge de stop-loss suffisamment large pour s’assurer que la ligne de stop-loss ne soit pas facilement activée.
  2. Combiner les indicateurs pour juger de la fiabilité des signaux OTT et éviter les faux signaux
  3. Ajustement approprié des paramètres pour une meilleure fiabilité des jugements de tendances
  4. Optimiser les paramètres pour trouver la meilleure combinaison de paramètres

Direction d’optimisation

Il y a encore de la place pour optimiser davantage la stratégie de négociation en ligne de l’énergie binaire:

  1. Peut être envisagé en combinaison avec d’autres indicateurs pour améliorer l’exactitude des signaux de jugement
  2. Des algorithmes d’arrêt adaptatifs peuvent être étudiés pour que les lignes d’arrêt puissent être ajustées en fonction de la volatilité du marché
  3. Le volume des transactions peut être ajouté afin d’éviter de fausses ruptures à faible volume.
  4. Vous pouvez tester différentes sortes de moyennes mobiles pour trouver la moyenne qui correspond le mieux.
  5. Vous pouvez essayer des méthodes telles que l’apprentissage automatique pour optimiser les paramètres

Résumer

La stratégie de négociation en ligne de double dynamique intègre les avantages de plusieurs indicateurs, peut ajuster automatiquement le stop loss, juger les signaux de renversement et identifier la direction de la tendance. Elle présente des avantages tels que une forte capacité de contrôle des risques et une utilisation facile à comprendre.

Code source de la stratégie
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bugra trade strategy", shorttitle="Bugra trade strategy", overlay=true)

// Kullanıcı Girdileri
length = input(5, title="Period", minval=1)
percent = input(1, title="Sihirli Yüzde", type=input.float, step=0.1, minval=0)
mav = input(title="Hareketli Ortalama Türü", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"])
wt_n1 = input(10, title="Kanal Periyodu")
wt_n2 = input(21, title="Averaj Uzunluğu")
src = close

// Tarih Aralığı Girdileri
startDate = input(20200101, title="Başlangıç Tarihi (YYYYMMDD)")
endDate = input(20201231, title="Bitiş Tarihi (YYYYMMDD)")

// Tarih Filtresi Fonksiyonu
isDateInRange() => true
// Özel Fonksiyonlar
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = sum(vud1, length)
    vDD = sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    varResult = 0.0
    varResult := nz(valpha * abs(vCMO) * src + (1 - valpha * abs(vCMO)) * nz(varResult[1]))
    varResult

Wwma_Func(src, length) =>
    wwalpha = 1 / length
    wwma = 0.0
    wwma := wwalpha * src + (1 - wwalpha) * nz(wwma[1])
    wwma

Zlema_Func(src, length) =>
    zxLag = floor(length / 2)
    zxEMAData = src + (src - src[zxLag])
    zlema = ema(zxEMAData, length)
    zlema

Tsf_Func(src, length) =>
    lrc = linreg(src, length, 0)
    lrs = lrc - linreg(src, length, 1)
    tsf = lrc + lrs
    tsf

getMA(src, length) =>
    ma = mav == "SMA" ? sma(src, length) :
         mav == "EMA" ? ema(src, length) :
         mav == "WMA" ? wma(src, length) :
         mav == "TMA" ? sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) :
         mav == "VAR" ? Var_Func(src, length) :
         mav == "WWMA" ? Wwma_Func(src, length) :
         mav == "ZLEMA" ? Zlema_Func(src, length) :
         mav == "TSF" ? Tsf_Func(src, length) : na

// Strateji Hesaplamaları
MAvg = getMA(src, length)
fark = MAvg * percent * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200

plot(OTT, title="BugRA", color=color.rgb(251, 126, 9))

// Alım ve Satım Koşulları
longCondition = crossover(src, OTT) and isDateInRange()
shortCondition = crossunder(src, OTT) and isDateInRange()

// Strateji Giriş ve Çıkış Emirleri
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")