Strategi pembalikan dua arah

Penulis:ChaoZhang, Tanggal: 2023-11-02 16:47:08
Tag:

img

Gambaran umum

Strategi reversal bidirectional adalah strategi perdagangan Bitcoin sederhana yang menetapkan stop-loss buy order berdasarkan kisaran perdagangan hari sebelumnya. Ide inti dari strategi ini adalah bahwa jika harga pembukaan pada hari saat ini lebih tinggi dari harga penutupan hari sebelumnya, tetapkan stop-loss buy dekat tinggi; jika harga pembukaan lebih rendah dari harga penutupan hari sebelumnya, tetapkan stop-loss buy dekat rendah.

Logika Strategi

Strategi ini pertama-tama menghitung kisaran perdagangan hari sebelumnya, yang merupakan harga tertinggi dikurangi harga terendah. Setelah pembukaan hari saat ini, strategi ini menilai apakah harga lebih tinggi atau lebih rendah daripada harga penutupan hari sebelumnya. Jika lebih tinggi, harga beli stop-loss ditetapkan pada harga pembukaan ditambah 0,6 kali kisaran hari sebelumnya. Jika lebih rendah, harga beli stop-loss ditetapkan pada harga pembukaan ditambah 1,8 kali kisaran hari sebelumnya. Strategi akan membuka posisi panjang ketika stop loss dipicu, dan menutup posisi sebelum akhir hari saat ini.

Secara khusus, strategi ini berisi dua aturan masuk:

  1. Jika harga pembukaan hari saat ini lebih tinggi dari harga penutupan hari sebelumnya (longCond1 terpenuhi), dan dalam jendela waktu backtest (window() terpenuhi, atur stop-loss buy pada harga pembukaan ditambah 0,6 kali kisaran hari sebelumnya (strategi.long1).

  2. Jika harga pembukaan hari saat ini lebih rendah dari harga penutupan hari sebelumnya (longCond2 terpenuhi), dan dalam jendela backtest, atur stop-loss buy pada harga pembukaan ditambah 1,8 kali kisaran hari sebelumnya (strategi.long2).

Strategi akan membuka posisi panjang ketika salah satu stop loss di atas dipicu, dan menutup posisi sebelum akhir hari menggunakan strategi.close_all (().

Analisis Keuntungan

Strategi pembalikan dua arah memiliki keuntungan berikut:

  1. Strategi ini mempertimbangkan baik ke atas dan ke bawah, menangkap reversal breakout di kedua arah.

  2. Risiko terkontrol dengan stop loss. Stop loss yang telah ditentukan secara efektif membatasi kerugian maksimum per perdagangan.

  3. Menghindari risiko overnight dengan menutup semua posisi setiap hari.

  4. Tingkat frekuensi perdagangan yang lebih tinggi untuk perdagangan jangka pendek.

  5. Logika yang sederhana dan jelas, mudah dipahami dan diterapkan.

Analisis Risiko

Namun, ada juga beberapa risiko yang harus diperhatikan untuk strategi:

  1. Jarak stop loss yang tidak tepat dapat menyebabkan stop loss dipukul.

  2. Frekuensi perdagangan yang tinggi dapat menimbulkan biaya transaksi yang signifikan. Pembukaan dan penutupan posisi harian dapat mengumpulkan biaya komisi yang cukup besar.

  3. Kemungkinan untuk berhenti di pasar yang bergelombang. Stop loss cenderung lebih sering dipicu dalam kondisi whipsaw.

  4. Strategi ini lebih cocok untuk pembalikan, tidak dapat menangkap keuntungan dari kelanjutan tren.

Peluang Peningkatan

Beberapa cara strategi dapat ditingkatkan:

  1. Mengoptimalkan jarak stop loss. Uji tingkat stop yang berbeda untuk menemukan titik stop loss yang optimal. Juga pertimbangkan stop dinamis berdasarkan volatilitas pasar.

  2. Tambahkan filter tren. Periksa tren jangka waktu yang lebih besar sebelum masuk untuk menghindari perdagangan yang bertentangan dengan tren.

  3. Perbaiki aturan entri. Pertimbangkan untuk menambahkan indikator volume atau momentum untuk meningkatkan presisi entri.

  4. Perkenalkan manajemen posisi. Uji trailing berhenti atau tren mengikuti keluar untuk naik tren menguntungkan.

  5. Uji produk yang berbeda. Strategi mungkin bekerja lebih baik dengan produk volatilitas yang lebih tinggi.

  6. Menggunakan teknik pembelajaran mesin. Mengoptimalkan parameter seperti berhenti dan entri menggunakan algoritma ML.

Kesimpulan

Secara keseluruhan, strategi pembalikan dua arah adalah konsep strategi jangka pendek yang sangat sederhana dan praktis. Ini dapat secara efektif menangkap peluang pembalikan dalam pergerakan naik dan turun. Namun, risiko seperti jarak stop loss dan aturan masuk perlu dioptimalkan untuk mengurangi risiko dan meningkatkan ketahanan. Dengan penyempurnaan kunci, strategi dapat menjadi alat perdagangan jangka pendek yang sangat berguna.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Simple strat", shorttitle="Simple Strat", overlay=true)

// X001TK R1 strategy
//
// 
// This strategy combines the special approach in previous daily range trading
//
// This strategy goes long on stop buy order which is calculated as previous day range
// multiplied by special number.
//
// This pure strategy does not have any
// stop loss or take profit money management logic.
//
// Exit rule is simple. We close the position on market close or next day open
//
// 
// 
//
// Input
length = input(10, minval=1)
stopLossPercent=input(1.1,"Stop Loss Percent")
profitPercent=input(9,"Profit Percent")


// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)
ses_cls = input(defval=true, title="End of Session Close Out?")


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


// === STRATEGY ===
// conditions
longCond1 = close>close[1]
longCond2 = close<close[1]


strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6)
strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8)
strategy.close_all(when=ses_cls)

// === /STRATEGY ===

Lebih banyak