Strategie zur Fortsetzung des starken Trends

Schriftsteller:ChaoZhang, Datum: 2024-01-29 16:57:01
Tags:

img

Übersicht

Diese Strategie basiert auf gleitenden Durchschnitten und geht lange nach einer kurzfristigen Korrektur in einem Aufwärtstrend vor.

Strategieprinzip

Diese Strategie verwendet 3 EMA-Linien mit unterschiedlichen Perioden. Die EMA1-Linie mit kürzerer Periode wird verwendet, um den kurzfristigen Trend zu beurteilen. Die EMA2- und EMA3-Linien mit längeren Perioden werden verwendet, um den mittelfristigen langfristigen Trend zu bestimmen, wobei EMA3 die längste Periode hat. Wenn die kurzfristige EMA1-Linie nach oben geht, zeigt sie an, dass sie in einem kurzfristigen Aufwärtstrend ist. Wenn EMA2 über EMA3 liegt, bedeutet dies, dass der mittelfristige auch im Aufwärtstrend ist, so ist dies ein gutes Timing für einen langen Einstieg. Insbesondere wird das Handelssignal erzeugt, wenn der Preis über die EMA1-Linie überschreitet. Um die Stabilität des Trends weiter zu überprüfen, erfordert es, dass EMA2 und EMA3 nach oben zeigen und die letzte Bar in der Filter-Signal-Bar auch steigt, was Signale vor kurzfristigen falschen Korrekturen hilft.

Die Stop-Loss-Linie und die Take-Profit-Linie sind so eingestellt, dass sie Gewinne und Verluste einfangen.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie den mittelfristigen und langfristigen Aufwärtstrend wirksam erfassen und gleichzeitig die kurzfristige Korrektur berücksichtigen kann, was die Haltedauer und den Gewinnspielraum erheblich macht.

Darüber hinaus macht die Einstellung von Stop-Loss und Take-Profit das Risiko auch kontrollierbar.

Risikoanalyse

Das größte Risiko dieser Strategie besteht darin, dass sie den Trendumkehrpunkt nicht bestimmen kann. Wenn sich der mittelfristige Trend umkehrt, während der kurzfristige Trend immer noch steigt, wird ein falsches Long-Signal zum Markteintritt erzeugt, was zu größeren Verlusten führen kann.

Darüber hinaus können auch auf den Märkten mit Bandbreite unnötige Handelsverluste auftreten.

Optimierungsrichtlinien

Es sollte in Betracht gezogen werden, die Zyklusparameter der EMA anhand der Merkmale bestimmter Handelssorten anzupassen, um sie besser an den mittleren Zyklus der Sorte anzupassen.

Die Kombination mit anderen Indikatoren zur Bestimmung des Endes von kurzfristigen Anpassungen kann eine falsche Eintragung vermeiden.

Überlegen Sie, ob Sie den Stoppverlustkoeffizienten anhand des ATR-Wertes anpassen und die Stoppverlustdistanz bei hoher ATR angemessen lockern.

Schlussfolgerung

Im Allgemeinen ist diese Strategie ein mittelfristiger langfristiger Trend, der einer Strategie folgt, die gut funktioniert. Sie bestimmt die Trendrichtung durch gleitende Durchschnitte, den Eintrittszeitpunkt durch Pullback-Signale und sperrt Gewinne und Verluste durch Stop-Loss- und Take-Profit-Einstellungen.


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



Mehr