Momentum Durchbruch Moving Average Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-18 18:01:59
Tags:

img

Übersicht

Diese Strategie ist eine Trend-Tracking-Strategie, die Momentum-Indikatoren und gleitende Durchschnitte kombiniert. Sie verwendet exponentielle gleitende Durchschnitte als das wichtigste Trendbeurteilungswerkzeug und gibt Kauf- und Verkaufssignale in Kombination mit hohem Handelsvolumen aus.

Strategieprinzipien

  1. Verwenden Sie die 34-Perioden-EMA als Hauptwerkzeug für die Beurteilung des Trends. Wenn der Preis über die EMA geht, ist dies ein bullisches Signal, und wenn er darunter geht, ist es ein bärisches Signal.

  2. Vergleichen Sie den 21-Tage- gleitenden Volumendurchschnitt mit dem 1,5-fachen des jüngsten Durchschnitts.

  3. Kaufsignale werden nur ausgegeben, wenn der Preis die EMA nach oben überschreitet und das Volumen hoch ist. Verkaufssignale werden nur ausgegeben, wenn der Preis die EMA nach unten überschreitet und das Volumen hoch ist.

  4. Nach der Eröffnung einer Position setzen Sie die Stop-Loss- und Take-Profit-Verhältnisse, die angepasst werden können.

Durch die umfassende Berücksichtigung von Faktoren wie Trends, Dynamik und Risikokontrolle ist sie relativ umfassend und stabil.

Analyse der Vorteile

  1. Die Verwendung der EMA zur Bestimmung der Haupttrendrichtung des Marktes kann mittelfristige und langfristige Trends effektiv verfolgen.

  2. Die Kombination mit einem hohen Handelsvolumen FILTER kann verhindern, dass Sie durch falsche Ausbrüche irregeführt werden.

  3. Die Einstellung von Stop-Loss- und Take-Profit-Ratio kann das Risiko einzelner Trades wirksam kontrollieren.

  4. Die Einführung von mittelfristigen und langfristigen Holding-Strategien wird nicht durch hohe Frequenzmarktlärm beeinflusst und ist stetig profitabel.

Risiken und Lösungen

  1. Die Lösung besteht darin, die Überprüfung des Transaktionsvolumens hinzuzufügen.

  2. Mittelfristige und langfristige Beteiligungen erhöhen die Kapitalbeschäftigung.

  3. Die Lösung besteht darin, andere kurzfristige Signale zu kombinieren.

  4. Die Lösung besteht darin, die entsprechende Stop-Loss-Position festzulegen.

Optimierungsrichtlinien

  1. Testen Sie die Stärken und Schwächen verschiedener EMA-Zyklusparameter, um die optimalen Parameter zu finden.

  2. Test der Auswirkungen verschiedener Stop-Loss- und Gewinnquotenparameter auf die Strategierendite und die Risikobereitschaft.

  3. Versuchen Sie, andere Indikatoren wie MACD und KDJ zu kombinieren, um kurzfristige Chancen zu ermitteln.

  4. Optimierung von Kapitalmanagementstrategien wie Positionskontrolle und dynamische Stop-Loss-Methoden.

Zusammenfassung

Insgesamt ist diese Strategie eine stabile mittel-langfristige Holding-Strategie. Sie kann die wichtigsten Markttrends effektiv verfolgen und Volumenindikatoren verwenden, um irreführende Signale zu filtern. Zur gleichen Zeit werden geeignete Stop-Loss- und Take-Profit-Methoden angewendet, um das Risiko einzelner Trades zu kontrollieren. Sie kann als stabile und leichte Trend-Trading-Arbeit beschrieben werden. Mit der richtigen Optimierung glaube ich, dass sie eine idealere Strategie-Rendite erzielen kann.


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


Mehr