
Die Strategie basiert auf VWAP und EMA als Indikatoren, um die Richtung des Trends zu bestimmen, wobei VWAP den typischen Preis und EMA200 den mittleren langen Trend darstellt. Händler, die über VWAP und EMA200 handeln, sind im Trend, wenn der Preis über VWAP und EMA200 liegt.
Die Kernlogik der Strategie besteht darin, Preistrends anhand von VWAP und EMA zu bestimmen.
Die Strategie beginnt also damit, zu beurteilen, ob der Preis gleichzeitig über dem VWAP und dem EMA200 liegt, und wenn ja, dann mehr; wenn der Preis gleichzeitig unter dem VWAP und dem EMA200 liegt, dann nichts. Wie man sehen kann, stützt sich die Strategie hauptsächlich auf den VWAP und den EMA, um Kauf- und Verkaufsschlüsse zu treffen.
Darüber hinaus hat die Strategie auch einen Stop-Loss-Punkt festgelegt. Ein Stop-Loss nach dem Übertritt wurde auf 3,5% des Eintrittspreises gesetzt, ein Stop-Loss auf 1,4%; ein Stop-Loss nach dem Leerlauf wurde auf 2,5% des Eintrittspreises gesetzt, ein Stop-Loss auf 0,9% gesetzt. Dies verhindert übermäßige Verluste.
Der größte Vorteil dieser Strategie besteht darin, dass Trends mit VWAP und EMA sehr zuverlässig beurteilt werden können.
Daher ist die Kombination von VWAP und EMA sehr zuverlässig, um Trends zu beurteilen. Wenn die beiden Trends übereinstimmen, ist die Erfolgsrate der Operation hoch.
Darüber hinaus können Sie durch die Einrichtung eines Stop-Loss-Punktes zu hohe Einzelschäden vermeiden.
Das Hauptrisiko dieser Strategie besteht darin, dass VWAP und EMA falsche Signale abgeben könnten.
Darüber hinaus kann die Stop-Loss-Einstellung unzureichend sein, und es besteht das Risiko, dass ein einzelner Verlust zu groß ist.
Um die oben genannten Probleme zu lösen, können wir die Parameter-Einstellungen von VWAP und EMA optimieren, so dass sie besser den Beginn eines neuen Trends erkennen können. Zudem können wir einen adaptiven Stop-Loss einstellen, der den Stop-Loss an die Preisschwankungen anpasst.
Die Strategie kann vor allem in folgenden Bereichen optimiert werden:
Die Strategie insgesamt ist eine sehr zuverlässige Trend-Follow-Strategie. Sie nutzt VWAP und EMA, um die Richtung der Tendenz zu bestimmen. Die Idee ist klar und einfach, und die Erfolgswahrscheinlichkeit des Eintritts ist hoch, wenn beide einheitliche Signale senden.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//26m Binance BTCUSDTPERP
//@version=4
strategy("VWAP Trend Follower", initial_capital=100, overlay=true, commission_type=strategy.commission.percent, commission_value=0.04, default_qty_type = strategy.percent_of_equity, default_qty_value = 90, currency = currency.USD )
/// INITIALISE STRATEGY ///
price=close[1]
vprice=vwap(price)
trend=ema(price, 200)
/// RISK MANAGEMENT ///
long_tp_inp = input(3.5, title='Long Take Profit %',step=0.1)/100
long_sl_inp = input(1.4, title='Long Stop Loss %',step=0.1)/100
short_tp_inp = input(2.5, title='Short Take Profit %',step=0.1)/100
short_sl_inp = input(0.9, title='Short Stop Loss %',step=0.1)/100
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
short_take_level = strategy.position_avg_price * (1 - short_tp_inp)
short_stop_level = strategy.position_avg_price * (1 + short_sl_inp)
//long_trailing = input(5, title='Trailing Stop Long',step=0.1) / 100
//short_trailing = input(5, title='Trailing Stop short',step=0.1) / 100
/// STRATEGY CONDITIONS ///
aLong= price > trend and price > vprice
entry_long = aLong and aLong[2] and aLong[1]
aShort= price < trend and price < vprice
entry_short = aShort and aShort[2] and aShort[1]
//exit_long =
//exit_short =
//entry_price_long=valuewhen(entry_long,close,0)
//entry_price_short=valuewhen(entry_short,close,0)
/// PLOTTING ///
plot(vprice, color=#5875E1, linewidth=2)
plot(trend, color=#D965E1, linewidth=1)
plotshape(series=aLong, color=#71E181,style=shape.labelup)
plotshape(series=aShort, color=#E18BA5,style=shape.labeldown)
//plot(long_take_level, color=#00E676, linewidth=2)
//plot(long_stop_level, color=#FF5252, linewidth=1)
//plot(short_take_level, color=#4CAF50, linewidth=2)
//plot(short_stop_level, color=#FF5252, linewidth=1)
/// PERIOD ///
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
//// STRATEGY EXECUTION ////
if testPeriod()
if strategy.position_size == 0 or strategy.position_size > 0
strategy.entry(id="Long", long=true, when=entry_long, comment="Long")
strategy.exit("Take Profit/ Stop Loss","Long", limit=long_take_level, stop=long_stop_level,comment="Exit Long")//,trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
// strategy.close(id="Long", when=exit_long, comment = "Exit Long")
if strategy.position_size == 0 or strategy.position_size < 0
strategy.entry(id="Short", long=false, when=entry_short, comment = "Short")
strategy.exit("Take Profit/ Stop Loss","Short", limit=short_take_level , stop=short_stop_level,comment = "Exit Short")//, trail_points=entry_price_short * short_trailing / syminfo.mintick, trail_offset=entry_price_short * short_trailing / syminfo.mintick)
// strategy.close(id="Short", when=exit_short, comment = "Exit Short")