Strategi Stop-Loss-Take-Profit Bidirectional Berdasarkan Stokastik Crossover

Penulis:ChaoZhang, Tanggal: 2024-03-08 15:12:42
Tag:

img

Gambaran umum

Strategi ini menggunakan sinyal crossover dari Stochastic Oscillator untuk memicu operasi beli dan jual. Ketika garis %K melintasi di atas garis %D dan nilai %K di bawah 20, ia membuka posisi panjang; ketika garis %K melintasi di bawah garis %D dan nilai %K di atas 80, ia membuka posisi pendek. Selain itu, strategi set mengambil keuntungan dan jarak stop loss untuk mengelola posisi dan mencegah perluasan kerugian. Selain itu, strategi juga menetapkan kondisi logis untuk menutup posisi. Ketika Stochastic Oscillator menunjukkan sinyal crossover berlawanan dengan sinyal pembukaan, ia akan menutup posisi panjang atau pendek yang sesuai bahkan jika harga take profit atau stop loss belum tercapai.

Prinsip Strategi

  1. Hitung nilai %K dan %D dari 14 periode Stochastic Oscillator dan rata-rata dengan menggunakan rata-rata bergerak sederhana.
  2. Tentukan apakah garis % K dan garis % D telah bersilang:
    • Ketika garis %K melintasi di atas garis %D dan nilai %K di bawah 20, ini memicu sinyal beli dan membuka posisi panjang.
    • Ketika garis %K melintasi di bawah garis %D dan nilai %K di atas 80, ini memicu sinyal jual dan membuka posisi pendek.
  3. Atur jarak mengambil keuntungan dan stop loss (dalam Ticks) untuk mengelola posisi terbuka:
    • Untuk posisi panjang, atur harga TP mengambil keuntungan di atas harga masuk dan harga stop loss SL di bawah harga masuk.
    • Untuk posisi pendek, tetapkan harga TP mengambil keuntungan di bawah harga masuk dan harga SL stop loss di atas harga masuk.
    • Ketika harga mencapai harga take profit atau stop loss, tutup posisi yang sesuai.
  4. Tetapkan kondisi logis untuk menutup posisi:
    • Ketika garis %K melintasi di bawah garis %D dan nilai %K kurang dari atau sama dengan 80, tutup semua posisi panjang.
    • Ketika garis %K melintasi di atas garis %D dan nilai %K lebih besar atau sama dengan 20, tutup semua posisi pendek.

Analisis Keuntungan

  1. Strategi ini menggunakan Stochastic Oscillator sebagai indikator sinyal perdagangan utama, yang banyak digunakan dalam perdagangan kuantitatif dan dapat secara efektif menangkap kondisi pasar yang terlalu banyak dibeli dan terlalu banyak dijual.
  2. Strategi menetapkan baik mengambil keuntungan / menghentikan kerugian dan kondisi logis untuk menutup posisi, yang dapat mengendalikan risiko sampai batas tertentu dan menghindari ekspansi kerugian.
  3. Logika strategi jelas, mudah dimengerti dan diimplementasikan, cocok untuk pemula untuk belajar dan menggunakan.

Analisis Risiko

  1. Stochastic Oscillator dapat menghasilkan banyak sinyal palsu di pasar yang bergolak, yang menyebabkan frekuensi perdagangan yang tinggi dan peningkatan biaya transaksi.
  2. Strategi ini tidak menyesuaikan posisi secara dinamis, dan jarak mengambil keuntungan dan stop loss yang tetap mungkin tidak secara efektif mengendalikan risiko selama fluktuasi pasar yang parah.
  3. Parameter dalam strategi (seperti periode Stochastic Oscillator, mengambil keuntungan dan jarak stop loss, dll.) tetap dan tidak dioptimalkan untuk kondisi pasar yang berbeda, yang dapat mempengaruhi kemampuan adaptasi strategi.

Arah Optimalisasi

  1. Pertimbangkan untuk memperkenalkan indikator teknis lain atau indikator sentimen pasar yang akan digunakan bersama dengan Stochastic Oscillator untuk meningkatkan keandalan sinyal perdagangan dan mengurangi sinyal palsu.
  2. Mengoptimalkan manajemen posisi dengan menyesuaikan jarak mengambil keuntungan dan stop loss secara dinamis berdasarkan kondisi volatilitas pasar, atau mengadopsi metode manajemen uang yang lebih maju seperti Kriteria Kelly.
  3. Menggunakan metode optimasi seperti algoritma genetik dan pencarian grid untuk mengoptimalkan parameter strategi dan menemukan kombinasi parameter optimal yang beradaptasi dengan kondisi pasar yang berbeda.
  4. Pertimbangkan untuk menambahkan kondisi penyaringan, seperti periode waktu perdagangan dan volatilitas instrumen perdagangan, untuk mengurangi perdagangan di bawah kondisi pasar yang tidak menguntungkan.

Ringkasan

Strategi stop-loss take-profit bidirectional berdasarkan crossover Stochastic adalah strategi perdagangan kuantitatif yang sederhana dan mudah dipahami. Ini memicu operasi beli dan jual melalui sinyal crossover dari Stochastic Oscillator dan mengatur mengambil keuntungan / stop loss dan kondisi logis untuk menutup posisi untuk mengelola risiko. Keuntungan dari strategi ini adalah bahwa logika jelas dan cocok untuk pemula untuk belajar dan menggunakan; namun, juga memiliki beberapa risiko, seperti Stochastic Oscillator dapat menghasilkan banyak sinyal palsu di pasar yang bergolak, dan metode manajemen posisi tetap mungkin tidak beradaptasi dengan kondisi pasar yang berbeda. Untuk meningkatkan kinerja strategi, kita dapat memperkenalkan indikator lain, mempertimbangkan manajemen posisi, pengoptimalan parameter, dan menambahkan template penyaringan. Secara umum, strategi ini dapat berfungsi sebagai strategi perdagangan dasar, dan melalui pengoptimalan dan peningkatan berkelanjutan, diharapkan dapat mencapai hasil yang baik dalam perdagangan.


/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("How to force strategies fire exit alerts not reversals", initial_capital = 1000, slippage=1, commission_type = strategy.commission.cash_per_contract, commission_value = 0.0001, overlay=true) 
// disclaimer: this content is purely educational, especially please don't pay attention to backtest results on any timeframe/ticker

// Entries logic: based on Stochastic crossover
k = ta.sma(ta.stoch(close, high, low, 14), 3)
d = ta.sma(k, 3)
crossover = ta.crossover(k,d)
crossunder = ta.crossunder(k,d)

if (crossover and k < 20)
	strategy.entry("Buy", strategy.long, alert_message="buy")
if (crossunder and k > 80)
	strategy.entry("Sell", strategy.short, alert_message="sell")

// StopLoss / TakeProfit exits:
SL = input.int(600, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(1200, title="TakeProfit Distance from entry price (in Ticks)")
strategy.exit("xl", from_entry="Buy", loss=SL, profit=TP, alert_message="closebuy")
strategy.exit("xs", from_entry="Sell", loss=SL, profit=TP, alert_message="closesell")

// logical conditions exits:
if (crossunder and k <= 80)
	strategy.close("Buy", alert_message="closebuy")
if (crossover and k >= 20)
	strategy.close("Sell", alert_message="closesell")

Lebih banyak