Stratégie de négociation de Bugra basée sur une moyenne mobile cinétique double

Auteur:ChaoZhang est là., Date: le 19 février 2024 14:36:37
Les étiquettes:

img

Résumé

La stratégie de trading Bugra est une stratégie qui combine l'indicateur OTT développé par mon cher professeur Anıl Özekşi et l'indicateur Wavetrend Oscillator par lonestar108.

Principe de stratégie

La stratégie de trading Bugra calcule d'abord la ligne médiane des bandes de Bollinger, qui est la ligne moyenne mobile MAvg. Ensuite, basée sur la plage en pourcentage et la période définie par l'utilisateur, elle calcule le long stop loss longStop et le short stop loss shortStop. Lorsque le prix traverse le rail supérieur, passez long. Lorsqu'il traverse le rail inférieur, passez court. Le signal de clôture est lorsque le prix revient autour de la moyenne mobile.

L'indicateur OTT consiste en une moyenne mobile et des lignes limites. Il ajuste la position des lignes limites en fonction de la volatilité du marché basée sur certains algorithmes. Lorsque le prix franchit la ligne limite inférieure OTT, allez court. Quand il franchit la ligne limite supérieure OTT, allez long.

Cette stratégie utilise également l'indicateur Wavetrend pour déterminer la direction de la tendance des prix. Si elle est jugée comme une tendance à la baisse, ne courez que court, pas long. Si elle est jugée comme une tendance à la hausse, ne courez que long, pas court.

Analyse des avantages

La stratégie de trading Bugra combine les avantages des moyennes mobiles, des bandes de Bollinger et des indicateurs OTT. Elle peut ajuster automatiquement les positions de stop loss et réduire la probabilité d'un stop loss déclenché.

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

  1. Il peut ajuster automatiquement les positions stop loss pour contrôler efficacement les risques.
  2. L'indicateur OTT peut déterminer avec une précision relative les points de renversement.
  3. En incorporant des indicateurs de jugement de tendance, il évite d'être pris au piège des marchés oscillants.
  4. Ses règles sont relativement simples et claires, faciles à comprendre et à appliquer.

Analyse des risques

La stratégie commerciale de Bugra comporte également certains risques, principalement dans les aspects suivants:

  1. Dans des conditions de marché violentes, le stop loss peut être rompu, provoquant des pertes plus importantes.
  2. Les signaux d'inversion jugés par l'indicateur OTT peuvent ne pas être exacts et des signaux défectueux peuvent apparaître.
  3. Les jugements de tendance peuvent également être erronés.
  4. Des paramètres incorrects affecteront également les performances de la stratégie.

Les contre-mesures sont essentiellement les suivantes:

  1. Détailler de manière appropriée la plage d'arrêt des pertes afin de s'assurer que les lignes d'arrêt des pertes ne s'activent pas facilement.
  2. Combiner avec d'autres indicateurs pour juger de la fiabilité des signaux OTT afin d'éviter les faux signaux.
  3. Ajuster les paramètres de manière appropriée pour rendre les jugements de tendance plus fiables.
  4. Optimisez les paramètres pour trouver la meilleure combinaison de paramètres.

Directions d'optimisation

Il reste encore des possibilités d'optimisation de la stratégie de négociation de la moyenne mobile cinétique double:

  1. Considérez la combinaison avec d'autres indicateurs pour améliorer la précision du jugement du signal.
  2. Étudier les algorithmes d'arrêt de perte adaptatifs afin que les lignes d'arrêt de perte puissent être ajustées en fonction de la volatilité du marché.
  3. Ajouter des indicateurs de volume de négociation pour éviter les fausses ruptures avec un faible volume.
  4. Testez différents types de moyennes mobiles pour trouver la moyenne mobile la plus appropriée.
  5. Essayez l'apprentissage automatique et d'autres méthodes pour optimiser automatiquement les paramètres.

Résumé

La stratégie de trading de la moyenne mobile cinétique double intègre les avantages de plusieurs indicateurs. Elle peut ajuster automatiquement les positions de stop loss, juger les signaux d'inversion et identifier les directions de tendance. Elle présente des avantages tels que de fortes capacités de contrôle des risques et est facile à comprendre et à utiliser. Mais elle comporte également des risques tels que le fait d'être piégé et des signaux inexacts. Cette stratégie peut être optimisée en combinant avec d'autres indicateurs, en étudiant des algorithmes adaptatifs, etc. En général, la stratégie de trading de la moyenne mobile cinétique double est une stratégie de trading de rupture pratique.


/*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")


Plus de