Stratégie de trading de moyenne mobile Momentum Breakout


Date de création: 2023-12-18 18:01:59 Dernière modification: 2023-12-18 18:01:59
Copier: 0 Nombre de clics: 630
1
Suivre
1621
Abonnés

Stratégie de trading de moyenne mobile Momentum Breakout

Aperçu

Cette stratégie est une stratégie de suivi de tendance combinant un indicateur de volume et un indicateur de moyenne. Elle utilise les moyennes mobiles de l’indice comme principal outil de jugement de tendance et, combinée à un volume de transactions élevé, envoie des signaux d’achat et de vente.

Principe de stratégie

  1. L’EMA de 34 cycles est utilisé comme principal outil de jugement de tendance. Il est un signal de hausse lorsque le prix est en hausse de l’EMA et un signal de baisse lorsque le prix est en baisse de l’EMA.

  2. Comparez la moyenne mobile de 21 jours des transactions avec une moyenne de 1,5 fois plus récente. Si le volume de transactions actuel est supérieur à 1,5 fois la moyenne, il est considéré comme élevé.

  3. Un signal d’achat n’est émis que lorsque le prix forme une fourche avec l’EMA et est élevé; un signal de vente n’est émis que lorsque le prix forme une fourche avec l’EMA et est élevé.

  4. Réglage de stop loss et stop loss après ouverture de la position, réglage personnalisable

Il prend en compte de nombreux facteurs tels que la tendance, la dynamique et le contrôle des risques, ce qui est plus complet et plus stable.

Analyse des avantages

  1. L’EMA permet de déterminer la direction des principales tendances du marché et de suivre efficacement les tendances à long terme.

  2. En combinant un volume de transactions élevé avec un FILTER, vous pouvez éviter d’être induit en erreur par une fausse percée.

  3. La mise en place d’un ratio de stop-loss et de stop-stop permet de contrôler efficacement le risque d’une seule transaction.

  4. La stratégie de détention des positions sur les lignes moyennes et longues est à l’abri du bruit du marché à haute fréquence et est stable.

Risques et solutions

  1. La solution est d’ajouter la vérification du volume de transaction.

  2. La solution consiste à contrôler correctement la taille de la position.

  3. La stratégie de négociation en ligne moyenne peut être en retard et ne pas saisir les opportunités de courte ligne. La solution est de combiner d’autres signaux de courte ligne.

  4. Il est possible d’avoir des pertes importantes en cas de secousse importante. La solution consiste à définir une position de stop appropriée.

Direction d’optimisation

  1. Tester les avantages et les inconvénients des différents paramètres de la période EMA pour trouver le paramètre optimal.

  2. Les paramètres des différents ratios de stop-loss et stop-loss sont testés pour déterminer l’impact de la stratégie sur la rentabilité et la résistance au risque.

  3. Essayez de combiner ces indicateurs avec d’autres, comme le MACD, le KDJ, etc. pour déterminer les chances de court-circuit.

  4. Optimiser les stratégies de gestion de fonds, telles que le contrôle des positions, le stop loss dynamique et autres.

Résumer

Cette stratégie est globalement une stratégie de détention de positions à moyen et long terme stable en valeur. Elle permet de suivre efficacement les principales tendances du marché et d’utiliser des indicateurs quantitatifs pour filtrer les signaux trompeurs.

Code source de la stratégie
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
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/
// © TradingSignalHub

//@version=5
strategy("Di strategy ", overlay=true)

//date setting
fromDay = input(defval = 1, title = "Ngày bắt đầu", group = "Cài đặt thời gian")
fromMonth = input(defval = 1, title = "Tháng bắt đầu", group = "Cài đặt thời gian")
fromYear = input(defval = 2023, title = "Năm bắt đầu", group = "Cài đặt thời gian")

toDay = input(defval = 31, title = "Đến ngày", group = "Cài đặt thời gian")
toMonth = input(defval = 12, title = "Đến tháng", group = "Cài đặt thời gian")
toYear = input(defval = 2033, title = "Đến năm", group = "Cài đặt thời gian")

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond() => 
    time >= startDate and time <= finishDate ? true : false

//snr setting
price = close
ema34     = input.int(34, minval=2, title="EMA 34", group = "Cài đặt EMA")
pacC        = ta.ema(close,ema34)
pacL        = ta.ema(low,ema34)
pacH        = ta.ema(high,ema34)
L =plot(pacL, color=color.rgb(3, 139, 251), linewidth=1, title="High EMA 34")
H =plot(pacH, color=color.rgb(3, 137, 247), linewidth=1, title="Low EMA 34")
C =plot(pacC, color=color.rgb(4, 138, 248), linewidth=1, title="Close EMA 34")
fill(L,H, color=color.rgb(33, 149, 243, 85),title="Fill dãi EMA 34")

//EMA full setting
ema89 =ta.ema(close,89)
DIema= ta.ema(close,458)
plot(DIema,title="DI_ema",color=color.rgb(247, 214, 3),linewidth=2)
plot(ema89,title="EMA 89",color=color.orange,linewidth=1)
//ema200= ta.ema(close,200)
//ema610= ta.ema(close,610)
//ema144= ta.ema(close,144)
//ema258= ta.ema(close,258)
//plot(ema200,title="EMA 200",color=color.purple,linewidth=2)
//plot(ema610,title="EMA 610",color=color.white,linewidth=2)
//plot(ema144,title="144Banker",color=color.green,linewidth=1)
//plot(ema258,title="258Banker",color=color.yellow,linewidth=1)

EMAbuy = ta.crossover(price, DIema)
EMAsell = ta.crossunder(price, DIema)

//volume setting
vol = (volume)
length = input(21, "Đường Trung Bình Vol", group = "Cài đặt Volume" )
div = input(1.5, "Mức trung bình", group = "Cài đặt Volume" )
up = close > open 
down = open>close
Volhigh = volume> (ta.ema(volume, length)*div)

//Cài đặt lệnh
longCondition = EMAbuy and Volhigh
if time_cond()
    if (longCondition)
        strategy.entry("Long", strategy.long)

shortCondition = EMAsell and Volhigh
if time_cond()
    if (shortCondition)
        strategy.entry("Sell", strategy.short)


stopPer = input.float(1.0, title="Stop Loss %", group = "Cài đặt TP & SL %" ) / 100
takePer = input.float(2.0, title="Take Profit %", group = "Cài đặt TP & SL %" ) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Đóng Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Đóng Sell", stop=shortStop, limit=shortTake)

alertcondition(longCondition, title = "Tín hiệu BUY", message = "Tín hiệu BUY")
alertcondition(shortCondition, title = "Tín hiệu SELL", message = "Tín hiệu SELL")
//PLOT FIXED SLTP LINE
//plotshape(strategy.position_size > 0 ? longStop : na, shape.labelup, color=color.rgb(34, 249, 6, 50), linewidth=1, title="Long SL")
//plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_circles, color=color.rgb(250, 8, 8, 50), linewidth=1, title="Short SL")
//plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.rgb(59, 248, 7), linewidth=1, title="Long TP")
//plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.rgb(247, 7, 7), linewidth=1, title="Short TP")