Strategi Stop Loss dan Take Profit Dinamik Berdasarkan VWAP dan Isyarat Jangka Masa Rentas

Penulis:ChaoZhang, Tarikh: 2024-03-08 17:37:21
Tag:

img

Ringkasan

Strategi ini menggunakan VWAP (Volume Weighted Average Price) dari jangka masa harian sebagai isyarat untuk memasuki dan keluar perdagangan. Apabila harga penutupan melintasi di atas VWAP, ia mencetuskan entri panjang dengan stop loss ditetapkan pada candles yang sebelumnya rendah jika ia di bawah VWAP, dan harga sasaran ditetapkan 3 mata di atas harga kemasukan. Sebaliknya, apabila harga penutupan melintasi di bawah VWAP, ia mencetuskan entri pendek dengan stop loss ditetapkan pada candles sebelumnya tinggi jika ia di atas VWAP, dan harga sasaran ditetapkan 3 mata di bawah harga kemasukan. Strategi ini tidak termasuk syarat keluar, jadi perdagangan tetap terbuka sehingga isyarat bertentangan berlaku.

Prinsip Strategi

  1. Dapatkan data VWAP dari jangka masa harian, yang berfungsi sebagai asas untuk penentuan trend dan isyarat perdagangan.
  2. Tentukan sama ada harga penutupan semasa melintasi di atas/di bawah VWAP, bertindak sebagai pencetus untuk entri panjang dan pendek, masing-masing.
  3. Untuk entri panjang, jika low candle sebelumnya berada di bawah VWAP, ia digunakan sebagai stop loss; jika tidak, VWAP itu sendiri digunakan.
  4. Selepas memasuki kedudukan, tetapkan tahap keuntungan 3 mata.
  5. Strategi terus dijalankan sehingga isyarat terbalik mencetuskan kedudukan untuk menutup dan membuka yang baru.

Dengan menggunakan data VWAP jangka masa yang berlainan untuk menentukan trend dan memanfaatkan kerugian berhenti dinamik dan keuntungan titik tetap, strategi dapat menangkap pasaran trend dengan berkesan, mengawal risiko pengeluaran, dan mengunci keuntungan tepat pada masanya.

Analisis Kelebihan

  1. Kesederhanaan dan keberkesanan: Logik strategi jelas, hanya menggunakan penunjuk VWAP untuk penentuan trend dan pemicu isyarat, menjadikannya mudah dilaksanakan dan dioptimumkan.
  2. Stop loss dinamik: Dengan menetapkan stop loss berdasarkan tinggi atau rendah lilin sebelumnya, strategi menyesuaikan diri dengan lebih baik dengan turun naik pasaran dan mengurangkan risiko.
  3. Nilai tetap mengambil keuntungan: Menetapkan harga sasaran dengan bilangan mata tetap membantu untuk mengunci keuntungan dengan segera dan mengelakkan hakisan keuntungan.
  4. Hentikan kerugian tepat pada masanya dan ambil keuntungan: Strategi ini segera menutup kedudukan apabila isyarat terbalik dicetuskan, mencegah kerugian tambahan pada keuntungan yang ada. Ia juga membuka kedudukan baru untuk menangkap pergerakan trend baru.

Analisis Risiko

  1. Pengoptimuman parameter: Strategi menggunakan titik 3 tetap untuk mengambil keuntungan, yang mungkin memerlukan pengoptimuman berdasarkan instrumen dan ciri pasaran yang berbeza untuk memilih parameter optimum untuk perdagangan sebenar.
  2. Pasaran yang bergelora: Dalam keadaan pasaran yang bergelora, kemasukan dan keluar yang kerap boleh membawa kepada kos perdagangan yang lebih tinggi, mempengaruhi keuntungan.
  3. Kelestarian trend: Strategi ini bergantung pada pasaran trend. Jika pasaran terikat julat atau kekurangan kelestarian trend, mungkin terdapat lebih banyak isyarat perdagangan yang dihasilkan, memperkenalkan lebih banyak risiko.

Arahan pengoptimuman

  1. Penapisan trend: Sertakan penunjuk trend lain seperti purata bergerak, MACD, dll., Untuk mengesahkan trend dan meningkatkan kebolehpercayaan isyarat.
  2. Mengambil keuntungan dinamik: Sesuaikan mata mengambil keuntungan secara dinamik berdasarkan turun naik pasaran, ATR, atau penunjuk lain untuk menyesuaikan diri dengan keadaan pasaran.
  3. Ukuran kedudukan: Sesuaikan secara dinamik saiz kedudukan untuk setiap perdagangan berdasarkan saiz akaun, toleransi risiko, dan faktor lain.
  4. Pilihan sesi dagangan: Pilih sesi dagangan yang optimum berdasarkan ciri-ciri dan kecairan instrumen untuk meningkatkan kecekapan strategi.

Ringkasan

Strategi ini menggunakan data VWAP rentang masa untuk penentuan trend dan mencetuskan isyarat sambil menggunakan stop loss dinamik dan mengambil keuntungan titik tetap untuk mengawal risiko dan mengunci keuntungan. Ini adalah strategi perdagangan kuantitatif yang mudah dan berkesan. Melalui pengoptimuman penapisan trend, mengambil keuntungan dinamik, ukuran kedudukan, dan pemilihan sesi dagangan, kekuatan strategi dan potensi keuntungan dapat ditingkatkan lagi. Walau bagaimanapun, ketika menerapkan strategi dalam amalan, perhatian harus diberikan kepada ciri pasaran, kos dagangan, dan pengoptimuman parameter untuk mencapai strategi prestasi yang lebih baik.


/*backtest
start: 2024-03-06 00:00:00
end: 2024-03-07 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 200)
// Higher Time Frame
float sl = na
float tgt = na
posSize = 1
vwap_1d = request.security(syminfo.tickerid, "1D", ta.vwap(close))
// plot(vwap_1d)

// To avoid differences on historical and realtime bars, you can use this technique, which only returns a value from the higher timeframe on the bar after it completes:
// indexHighTF = barstate.isrealtime ? 1 : 0
// indexCurrTF = barstate.isrealtime ? 0 : 1
// nonRepaintingVWAP = request.security(syminfo.tickerid, "1D", close[indexHighTF])[indexCurrTF]
// plot(nonRepaintingVWAP, "Non-repainting VWAP")

enterLong = ta.crossover(close, vwap_1d)
exitLong  = ta.crossunder(close, vwap_1d)

enterShort = ta.crossunder(close, vwap_1d)
exitShort  = ta.crossover(close, vwap_1d)

if enterLong
    sl := low[1]>vwap_1d ?low[1]:vwap_1d
    tgt:=close+3
    strategy.entry("EL", strategy.long, qty=posSize)
    strategy.exit('exitEL', 'EL', stop=sl, limit=tgt)
if enterShort
    sl := high[1]<vwap_1d ?high[1]:vwap_1d
    tgt := close-3
    strategy.entry("ES", strategy.short, qty=posSize)
    strategy.exit('exitES', 'ES', stop=sl, limit=tgt)

// if exitLong
//     strategy.close("EL")
// if exitShort
//     strategy.close("ES")





// goLongCondition1 = ta.crossover(close, vwap_1d)
// timePeriod = time >= timestamp(syminfo.timezone, 2021, 01, 01, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
//     stopLoss = low[1]
//     takeProfit = close+3
//     strategy.entry('long', strategy.long)
//     strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
plot(close, color=color.new(#00c510, 0))
plot(vwap_1d, color=color.new(#f05619, 0))
plot(sl, color=color.new(#fbff00, 0))
plot(tgt, color=color.new(#00e1ff, 0))

Lebih lanjut