Stratégie de suivi de tendance du canal à moyenne mobile sur plusieurs périodes


Date de création: 2024-02-20 13:45:42 Dernière modification: 2024-02-20 13:45:42
Copier: 2 Nombre de clics: 607
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance du canal à moyenne mobile sur plusieurs périodes

Aperçu

Cette stratégie est une stratégie de swing qui s’applique à des marchés tendanciels comme les crypto-monnaies et les actions, en utilisant un cadre de temps plus long, comme 8 heures. La stratégie utilise plusieurs moyennes mobiles, y compris SMA, EMA, VWMA, ALMA, SMMA, LSMA et VWMA, qui sont appliquées respectivement aux hauts et aux bas, formant deux canaux de moyennes.

Faire plus lorsque le prix de clôture est supérieur à la moyenne appliquée aux hauts points; Faire moins lorsque le prix de clôture est inférieur à la moyenne appliquée aux bas points.

Principe de stratégie

La stratégie utilise 7 types d’indicateurs de moyennes mobiles différents, notamment SMA, EMA, VWMA, ALMA, SMMA, LSMA et VWMA. Ces moyennes mobiles sont respectivement appliquées aux prix les plus élevés et les plus bas de la ligne K, générant deux moyennes.

La moyenne appliquée au prix le plus élevé est appelée avg_high et la moyenne appliquée au prix le plus bas est appelée avg_low. Les deux moyennes constituent un canal.

Lorsque le prix de clôture est supérieur à avg_high, faites plus; lorsque le prix de clôture est inférieur à avg_low, faites moins.

Le stop loss est avg_low et le stop loss est le prix de départ.(1+tp_long); le stop loss est avg_high et le stop loss est le prix d’ouverture(1-tp_short)。

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’utilisation d’une variété d’indicateurs de moyennes mobiles pour augmenter la probabilité de gagner. Les moyennes mobiles réagissent différemment aux prix selon les cycles et les méthodes de calcul, ce qui, combiné, permet de créer un signal de négociation plus fiable.

L’autre avantage est que le trading est effectué par canal. Le canal ascendant et descendant limite la portée du stop loss, réduit le risque et est plus adapté aux stratégies de swing.

Analyse des risques

Cette stratégie présente deux risques majeurs:

  1. Plusieurs combinaisons d’indicateurs de moyennes mobiles sont utilisées, les paramètres sont plus complexes et nécessitent beaucoup de tests et d’optimisation pour trouver la meilleure combinaison de paramètres.

  2. Cette stratégie est susceptible d’entraîner des pertes et de multiples signaux de rupture inefficaces sur les marchés à la traîne et sans tendance claire.

Pour réduire ces risques, il est nécessaire de choisir des variétés de transactions qui sont clairement tendances, tout en effectuant un retour d’expérience et une optimisation considérables des combinaisons de paramètres pour trouver le paramètre le mieux adapté à la situation actuelle du marché.

Direction d’optimisation

La stratégie doit également être optimisée dans les domaines suivants:

  1. Testez plus de types de moyennes mobiles pour trouver de meilleures combinaisons. Vous pouvez considérer les SMA, EMA, KAMA, TEMA, etc.

  2. Optimisation des paramètres de la longueur de la moyenne mobile et de la largeur du canal pour trouver les paramètres les plus appropriés.

  3. Tester différents paramètres de stop-loss. Des options telles que le trailing stop ou le stop-loss dynamique peuvent être envisagées.

  4. Combinez les indicateurs de jugement de tendance et évitez de négocier fréquemment sur des marchés sans tendance claire, tels que l’ADX, l’ATR, etc.

  5. Optimiser la logique d’entrée et de sortie, définir des conditions de filtrage supplémentaires et réduire les transactions invalides.

Résumer

Cette stratégie est une stratégie de suivi de tendance à oscillation. Elle s’applique aux variétés de transactions qui sont clairement tendance et qui ont de meilleurs résultats après optimisation des paramètres. Cependant, elle est susceptible de subir de plus grandes pertes lorsque le marché se transforme et nécessite une optimisation supplémentaire pour réduire les risques.

Code source de la stratégie
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 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/
// © exlux99

//@version=4

strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true)


fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//////
length_ma= input(defval=12, title="Length Moving averages", minval=1)

////////////////////////////////SETUP///////////////////////////////////////////

sma_high   = sma(high, length_ma)
ema_high   = ema(high, length_ma)
wma_high   = wma(high, length_ma)
alma_high  = alma(high,length_ma, 0.85, 6)
smma_high = rma(high,length_ma)
lsma_high = linreg(high, length_ma, 0)
vwma_high = vwma(high,length_ma)



avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7

///////////////////////////////////////////

sma_low   = sma(low, length_ma)
ema_low   = ema(low, length_ma)
wma_low   = wma(low, length_ma)
alma_low  = alma(low,length_ma, 0.85, 6)
smma_low = rma(low,length_ma)
lsma_low = linreg(low, length_ma, 0)
vwma_low = vwma(low,length_ma)



avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7

////////////////////////////PLOTTING////////////////////////////////////////////


plot(avg_high , title="avg", color=color.green, linewidth = 4)
plot(avg_low , title="avg", color=color.red, linewidth = 4)

long= close > avg_high
short = close < avg_low

tplong=input(0.06, title="TP Long", step=0.01)
sllong=input(0.05, title="SL Long", step=0.01)

tpshort=input(0.045, title="TP Short", step=0.01)
slshort=input(0.05, title="SL Short", step=0.01)

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
    strategy.close("long", when=crossunder(low,avg_low))
    
    
    strategy.entry("short",0,when=short)
    strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")
    strategy.close("short",when=crossover(high,avg_high))