Strategi Stop Loss dan Take Profit Dinamis Berdasarkan VWAP dan Sinyal Jangka Waktu

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

img

Gambaran umum

Strategi ini menggunakan VWAP (Volume Weighted Average Price) dari kerangka waktu harian sebagai sinyal untuk masuk dan keluar dari perdagangan. Ketika harga penutupan melintasi di atas VWAP, ini memicu entri panjang dengan stop loss ditetapkan pada candles low sebelumnya jika di bawah VWAP, dan harga target ditetapkan 3 poin di atas harga masuk. Sebaliknya, ketika harga penutupan melintasi di bawah VWAP, ini memicu entri pendek dengan stop loss ditetapkan pada candles high sebelumnya jika di atas VWAP, dan harga target ditetapkan 3 poin di bawah harga masuk. Strategi ini tidak termasuk kondisi keluar, sehingga perdagangan tetap terbuka sampai sinyal yang berlawanan terjadi.

Prinsip Strategi

  1. Dapatkan data VWAP dari kerangka waktu harian, yang berfungsi sebagai dasar untuk penentuan tren dan sinyal perdagangan.
  2. Tentukan apakah harga penutupan saat ini melintasi di atas/di bawah VWAP, bertindak sebagai pemicu untuk entri panjang dan pendek, masing-masing.
  3. Untuk entri panjang, jika low candle sebelumnya berada di bawah VWAP, itu digunakan sebagai stop loss; jika tidak, VWAP itu sendiri digunakan.
  4. Setelah masuk ke posisi, tetapkan tingkat mengambil keuntungan 3 poin.
  5. Strategi terus berjalan sampai sinyal terbalik memicu posisi untuk menutup dan membuka yang baru.

Dengan menggunakan data VWAP lintas kerangka waktu untuk menentukan tren dan memanfaatkan stop loss dinamis dan mengambil keuntungan titik tetap, strategi dapat secara efektif menangkap tren pasar, mengendalikan risiko penarikan, dan mengunci keuntungan tepat waktu.

Analisis Keuntungan

  1. Kesederhanaan dan efektivitas: Logika strategi jelas, hanya menggunakan indikator VWAP untuk penentuan tren dan pemicu sinyal, membuatnya mudah diterapkan dan dioptimalkan.
  2. Stop loss dinamis: Dengan mengatur stop loss berdasarkan candle sebelumnya yang tinggi atau rendah, strategi ini dapat beradaptasi dengan lebih baik dengan fluktuasi pasar dan mengurangi risiko.
  3. Mengambil keuntungan pada titik tetap: Menetapkan harga target dengan jumlah poin tetap membantu untuk mengunci keuntungan dengan cepat dan menghindari erosi keuntungan.
  4. Stop loss dan take profit yang tepat waktu: Strategi ini segera menutup posisi ketika sinyal terbalik dipicu, mencegah kerugian tambahan pada keuntungan yang ada.

Analisis Risiko

  1. Optimasi parameter: Strategi menggunakan 3 poin tetap untuk mengambil keuntungan, yang mungkin memerlukan optimasi berdasarkan instrumen yang berbeda dan karakteristik pasar untuk memilih parameter optimal untuk perdagangan yang sebenarnya.
  2. Pasar yang bergolak: Dalam kondisi pasar yang bergolak, sering masuk dan keluar dapat menyebabkan biaya perdagangan yang lebih tinggi, mempengaruhi profitabilitas.
  3. Keberlanjutan tren: Strategi ini bergantung pada tren pasar. Jika pasar terbatas pada kisaran atau tidak memiliki keberlanjutan tren, mungkin ada lebih banyak sinyal perdagangan yang dihasilkan, memperkenalkan lebih banyak risiko.

Arahan Optimasi

  1. Penyaringan tren: Menggabungkan indikator tren lain seperti moving average, MACD, dll, untuk mengkonfirmasi tren dan meningkatkan keandalan sinyal.
  2. Dinamis mengambil keuntungan: Sesuaikan poin mengambil keuntungan secara dinamis berdasarkan volatilitas pasar, ATR, atau indikator lainnya untuk lebih beradaptasi dengan kondisi pasar.
  3. Ukuran Posisi: Sesuaikan secara dinamis ukuran posisi untuk setiap perdagangan berdasarkan ukuran akun, toleransi risiko, dan faktor lainnya.
  4. Pilihan sesi perdagangan: Pilih sesi perdagangan optimal berdasarkan karakteristik dan likuiditas instrumen untuk meningkatkan efisiensi strategi.

Ringkasan

Strategi ini menggunakan data VWAP lintas timeframe untuk penentuan tren dan pemicu sinyal sambil menggunakan stop loss dinamis dan mengambil keuntungan titik tetap untuk mengendalikan risiko dan mengunci keuntungan. Ini adalah strategi perdagangan kuantitatif yang sederhana dan efektif. Melalui optimalisasi dalam penyaringan tren, mengambil keuntungan dinamis, ukuran posisi, dan pemilihan sesi perdagangan, kekuatan strategi dan potensi keuntungan dapat ditingkatkan lebih lanjut. Namun, ketika menerapkan strategi dalam praktek, perhatian harus diberikan pada karakteristik pasar, biaya perdagangan, dan optimasi parameter untuk mencapai strategi kinerja 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 banyak