Stratégie de rupture moyenne de la plage réelle avec ratio d'or

Auteur:ChaoZhang est là., Date: 2024-02-26 15:02:26 Le président de la République
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de rupture qui utilise l'indicateur ATR pour générer des signaux de trading. La stratégie utilise un système de moyenne mobile pour produire des signaux d'entrée et un canal ATR amplifié basé sur le ratio d'or pour construire des positions longues et courtes.

Principaux

Le code calcule l'ATR sur une période de prix de clôture, l'amplifie de 1,618 comme bande supérieure et de 2,618 comme bande inférieure. Combiné avec l'EMA, il forme un système de rupture du canal de Bollinger.

Les avantages

  1. L'indicateur ATR capte efficacement la volatilité du marché et construit des bandes de négociation adaptatives, en évitant le surajustement causé par des paramètres statiques.
  2. Les bandes ATR amplifiées par le ratio d'or augmentent le potentiel de profit sans augmenter la fréquence des transactions.
  3. Le système de moyenne mobile filtre les bruits à court terme et coopère avec le canal ATR pour identifier les tendances à moyen et long terme.

Les risques

  1. L'indicateur ATR peut être retardé dans des conditions de marché extrêmes.
  2. Les multiples de grossissement incorrects entraîneraient une fréquence de négociation excessivement élevée.
  3. Les signaux de commutation des moyennes mobiles à long terme présentent des délais.

Optimisation

  1. L'ATR peut incorporer le VIX ou régler le grossissement.
  2. Utiliser plusieurs EMA de temps pour construire des systèmes adaptatifs.
  3. Mettre en place des stop-loss pour limiter la perte maximale par transaction.

Résumé

Cette stratégie intègre le filtrage des moyennes mobiles, le suivi des canaux ATR et la méthodologie du ratio d'or, qui peut suivre efficacement les tendances à moyen et long terme avec une bonne stabilité.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)

Plus de