
Die Strategie basiert auf einem Moving Average und ist ein Trend-Tracking-Strategien, bei dem ein Trend aufgegangen ist und nach einer kurzfristigen Umkehrung mehr Positionen eröffnet werden.
Die Strategie verwendet 3 EMA-Linien mit unterschiedlichen Perioden, EMA1 für die Ermittlung von kurzfristigen Trends, die kürzer sind als die anderen beiden EMA-Linien; EMA2 und EMA3 für die Ermittlung von mittleren langfristigen Trends, von denen die EMA3-Linien am längsten sind. Wenn die kurzfristige EMA1-Linie aufgeht, ist die Aussage im kurzfristigen Aufwärtstrend, die EMA2-Linie über der EMA3-Linie zeigt, dass die mittlere Langfristige auch im Aufwärtstrend ist, so dass dies ein guter Überstundenpunkt ist.
Die Stop-Loss- und Stop-Loss-Linien sind so eingerichtet, dass die Verluste verringert werden können. Insbesondere bewegt sich die Stop-Loss-Linie nach den Werten des ATR, und die Stop-Loss-Linie ist ebenfalls nach den Werten des ATR eingerichtet.
Der größte Vorteil dieser Strategie besteht darin, dass sie die mittleren und langen Anstiegstrends effektiv erfasst und auch kurzfristige Anpassungen berücksichtigt, was ihre Haltedauer und ihren Gewinnraum beträchtlich macht.
Die Einrichtung von Stop-Loss- und Stop-Stop-Mechanismen ermöglicht es, das Risiko zu kontrollieren.
Die größte Gefahr dieser Strategie besteht darin, dass man nicht in der Lage ist, den Trendwendepunkt zu bestimmen, und wenn der Mittel-Langstrecken-Trend sich umkehrt und kurzfristig noch steigt, kann dies zu einem falschen Mehrfachsignal führen, was zu einem größeren Verlust führen kann.
Außerdem kann es zu unnötigen Handelsverlusten bei der Bilanzierung kommen.
Es kann in Erwägung gezogen werden, die Periodiparameter der EMA an die Merkmale der jeweiligen Handelsart anzupassen, um sie besser an die mittellange Periode dieser Sorte anzupassen.
Das Ende der kurzfristigen Anpassung kann in Kombination mit anderen Indikatoren beurteilt werden, um Fehlinterventionen zu vermeiden.
Es kann in Betracht gezogen werden, den Stop-Loss-Faktor an die Größe des ATR-Wertes anzupassen und die Stop-Loss-Distanz bei einem höheren ATR angemessen zu lockern.
Die Strategie ist eine gute Trendbeobachtung für die mittlere und lange Linie. Die Trendbeobachtung wird durch die Beurteilung der Richtung des Trends durch den Moving Average, die Rückmeldung von Signalen zur Ermittlung des Einstiegszeitpunkts und die Stop-Loss-Einstellung durchgeführt.
/*backtest
start: 2024-01-21 00:00:00
end: 2024-01-28 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Trend Continuation', shorttitle='Trend_Continuation', overlay=true)
// Input
price = input(close)
MA1_Length = input.int(50, step=1, title='EMA 1 Length')
MA2_Length = input.int(80, step=1, title='EMA 2 Length')
MA3_Length = input.int(200, step=1, title='EMA 3 Length')
numberOfCandles = input(1)
slATRFactor = input(3.5)
tpATRFactor = input(3.5)
ATRLength = input(14)
// switch1=input(true, title="Show Bar Color?")
// switch2=input(true, title="Show Moving Averages?")
// Calculation
MA1 = ta.ema(price, MA1_Length)
MA2 = ta.ema(price, MA2_Length)
MA3 = ta.ema(price, MA3_Length)
prev_price = close[numberOfCandles]
// Strategy
allPositive = true
for i = 0 to numberOfCandles - 1 by 1
if close[i] < close[i + 1] or close[i] < MA1
allPositive := false
break
long = MA2 > MA3 and price > MA1 and ta.crossunder(prev_price, MA1) and allPositive
// short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1) and change(MA2)<0 )
if long
strategy.entry('Long', strategy.long, comment='Long')
bought = strategy.position_size[0] > strategy.position_size[1]
atrAtLong = ta.valuewhen(bought, ta.atr(ATRLength), 0)
// Stop loss and take profit
slPrice = strategy.position_avg_price - slATRFactor * atrAtLong
tpPrice = strategy.position_avg_price + tpATRFactor * atrAtLong
SL = plot(slPrice, title='SL', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0))
if price >= tpPrice and price < MA1
strategy.close('Long')
if price < strategy.position_avg_price
strategy.exit('Stop Loss', 'Long', stop=slPrice)
// Strategy Alert
alertcondition(long, title='Long Alert', message='Go Long!')
// alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!')
// MA trend bar color
// up = change(MA2)>0 and change(MA3)>0
// dn = change(MA2)<0 and change(MA3)<0
// bar_color = up?green:dn?red:blue
// barcolor(switch1?bar_color:na)
// MA trend output color
change_1 = ta.change(MA2)
MA2_color = ta.change(MA2) > 0 ? color.lime : change_1 < 0 ? color.red : color.blue
change_2 = ta.change(MA3)
MA3_color = ta.change(MA3) > 0 ? color.lime : change_2 < 0 ? color.red : color.blue
// MA output
// EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color)
// EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color)
// fill(EMA2, EMA3, color=silver, transp=50)
color_1 = MA2 > MA3 ? color.green : color.red
EMA1 = plot(MA1, title='EMA 1', style=plot.style_linebr, linewidth=1, color=color_1)
// EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=2, color=blue)
// EMA3 = plot(MA3, title="EMA 3", style=linebr, linewidth=3, color=red)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)