Les ressources ont été chargées... Je charge...

Stratégie SMA de rupture de canal

Auteur:ChaoZhang est là., Date: 23 octobre 2023 à 17h08:51
Les étiquettes:

img

Résumé

Cette stratégie est basée sur la rupture de canal et utilise le croisement de la moyenne mobile comme signal de sortie.

La logique de la stratégie

  1. Calculer le plus haut plus haut et le plus bas plus bas sur certaines périodes pour construire le canal supérieur et inférieur.

  2. Passez long lorsque le prix dépasse le canal supérieur; passez court lorsque le prix dépasse le canal inférieur.

  3. Calculer les lignes SMA rapides et lentes.

  4. Si long, fermer long lorsque la SMA rapide traverse la SMA lente; Si court, fermer court lorsque la SMA rapide traverse la SMA lente.

Analyse des avantages

  1. La combinaison du système des canaux et des moyennes mobiles peut améliorer la rentabilité.

  2. Le canal juge la rotation et la SMA juge l'épuisement de la tendance.

  3. Le filtre SMA évite les sabots et réduit les transactions inutiles.

  4. Une plage de canaux réglable s'adapte à différentes périodes et volatilités.

Analyse des risques

  1. Une portée de canal incorrecte peut manquer la rupture ou générer une fausse rupture.

  2. Les paramètres SMA incorrects peuvent être supprimés tôt ou tard.

  3. Besoin d'une position raisonnable pour limiter les pertes uniques.

  4. Attention à l'évasion, évitez de courir après les prix élevés.

Optimisation

  1. Paramètres d'essai pour optimiser la portée des canaux et les périodes SMA.

  2. Ajoutez un filtre de tendance pour améliorer le taux de réussite.

  3. Ajoutez la dimension de position telle que la fraction fixe et Martingale.

  4. Ajouter un stop loss pour contrôler une seule perte.

Résumé

Cette stratégie capitalise sur le canal et la SMA pour obtenir des gains réguliers dans des tendances fortes. Mais les pertes de ciseaux à ciseaux doivent être évitées et la dimensionnement de la position est essentielle.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 00:00:00
period: 1m
basePeriod: 1m
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/
// © anshuanshu333

//@version=4

// strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000)
length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7)
     
fastSMA = sma(close,9)
slowSMA = sma(close,21)

upBound = highest(high, length)
downBound = lowest(low, length)

boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open)
boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open)

u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1)
l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1)
plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2)
plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1)
fill(u,l, transp=95)
plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1)

     
if (boundLongEntry )
    strategy.entry("LE", long = true)
    
if (boundShortEntry)
    strategy.entry("SE", long = false)
    
SmaLongExit = crossunder(fastSMA,slowSMA)
SmaShortExit = crossover(fastSMA,slowSMA)

    
//Close TRades   
if (strategy.position_size > 0)
    strategy.close(id="LE",when= SmaLongExit)
if (strategy.position_size < 0)
    strategy.close(id="SE",when= SmaShortExit)

Plus de