Strategi mengikuti tren berbasis VWAP


Tanggal Pembuatan: 2024-02-29 15:26:56 Akhirnya memodifikasi: 2024-02-29 15:26:56
menyalin: 0 Jumlah klik: 944
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berbasis VWAP

Ringkasan

Strategi ini didasarkan pada VWAP dan EMA sebagai indikator untuk menentukan arah tren, dengan VWAP mewakili harga khas dan EMA200 mewakili tren garis panjang tengah. Melakukan over jika harga lebih tinggi dari VWAP dan EMA200 dan short jika harga lebih rendah dari VWAP dan EMA200 adalah strategi mengikuti tren yang khas.

Prinsip Strategi

Logika inti dari strategi ini adalah menggunakan VWAP dan EMA untuk menilai tren harga.

  • VWAP adalah harga yang mewakili harga, yang dapat mencerminkan biaya rata-rata peserta pasar. Jika harga lebih tinggi dari VWAP, itu mewakili peningkatan kekuatan pembeli, melakukan lebih banyak; Jika harga lebih rendah dari VWAP, itu mewakili peningkatan kekuatan penjual, dan harus kosong.
  • EMA200 mewakili harga garis tengah panjang tren ke arah. Harga di atas EMA200 mewakili garis tengah panjang bullish, harus dilakukan lebih banyak; harga di bawah EMA200 mewakili garis tengah panjang bearish, harus dilakukan.

Oleh karena itu, strategi ini pertama-tama menilai apakah harga secara bersamaan lebih tinggi dari VWAP dan EMA200, dan jika demikian, lakukan lebih banyak; jika harga secara bersamaan lebih rendah dari VWAP dan EMA200, maka kosong.

Selain itu, strategi ini juga menetapkan titik stop loss. Setelah melakukan over, atur stop loss menjadi 3,5% dari harga masuk, stop loss menjadi 1,4%; setelah melakukan short, atur stop loss menjadi 2,5% dari harga masuk, stop loss menjadi 0,9% . Ini dapat menghindari kerugian yang terlalu besar.

Keunggulan Strategis

Keuntungan terbesar dari strategi ini adalah bahwa penggunaan VWAP dan EMA untuk menilai tren sangat dapat diandalkan.

  • VWAP dapat secara akurat mencerminkan biaya rata-rata para peserta pasar, yang merupakan indikator yang sangat baik untuk menilai tren;
  • EMA200 dapat dengan jelas mencerminkan tren garis tengah dan panjang, dan dapat diandalkan untuk menentukan arah tren besar dengan sangat akurat.

Oleh karena itu, kombinasi menggunakan VWAP dan EMA untuk menilai tren sangat dapat diandalkan. Ketika keduanya menilai tren secara konsisten, keberhasilan operasi sangat tinggi.

Selain itu, pengaturan stop loss stop loss dapat mencegah kerugian tunggal yang terlalu besar.

Risiko Strategis

Risiko utama dari strategi ini adalah bahwa VWAP dan EMA dapat mengirimkan sinyal yang salah.

  • Ketika pasar bergejolak, harga bisa keluar dari VWAP untuk sementara waktu, dan mengirimkan sinyal yang salah.
  • Ketika tren baru baru saja dimulai, EMA mungkin tertinggal dari perubahan harga, membuat strategi kehilangan waktu terbaik untuk masuk.

Selain itu, pengaturan stop loss mungkin tidak tepat, dan risiko kerugian tunggal yang terlalu besar tetap ada.

Untuk mengatasi masalah di atas, kita dapat mengoptimalkan pengaturan parameter VWAP dan EMA sehingga mereka lebih baik mengidentifikasi awal dari tren baru. Selain itu, Anda dapat mengatur stop loss yang dapat disesuaikan sehingga stop loss dapat disesuaikan dengan fluktuasi harga.

Arah optimasi strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  • Optimalkan parameter VWAP untuk menemukan kombinasi parameter VWAP yang lebih stabil untuk menilai tren.
  • Mengoptimalkan siklus EMA untuk menemukan parameter EMA yang lebih akurat untuk menilai tren.
  • Menambahkan indikator lain untuk tren penilaian, seperti Brin Belt, KDJ dan lain-lain dengan kombinasi VWAP dan EMA, untuk meningkatkan akurasi penilaian.
  • Setel Stop Loss Adaptif. Sesuai dengan aturan, tingkat Stop Loss disesuaikan dengan fluktuasi harga untuk menghindari Stop Loss yang terlalu tinggi.
  • Bergabung dengan manajemen posisi. Mengatur ukuran posisi berdasarkan indikator seperti penarikan, jumlah kerugian beruntun, dan strategi pengendalian risiko keseluruhan.

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi trend follow yang sangat handal. Strategi ini menggunakan VWAP dan EMA untuk menentukan arah tren, ide yang jelas dan sederhana, dan peluang masuk yang sukses sangat tinggi ketika keduanya memberikan sinyal yang konsisten. Dengan pengaturan stop loss yang masuk akal, risiko dapat dikendalikan.

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