Strategi stop loss berdasarkan indikator MACD


Tanggal Pembuatan: 2023-10-26 15:51:34 Akhirnya memodifikasi: 2023-10-26 15:51:34
menyalin: 0 Jumlah klik: 709
1
fokus pada
1617
Pengikut

Strategi stop loss berdasarkan indikator MACD

Ringkasan

Strategi ini didasarkan pada indikator MACD yang dirancang untuk strategi perdagangan garis panjang yang dapat mengontrol risiko setiap perdagangan. Strategi ini lebih memfokuskan pada pengendalian risiko setiap perdagangan dibandingkan dengan strategi pembalikan forex tradisional. Strategi ini membatasi kerugian maksimum yang mungkin disebabkan oleh setiap perdagangan dengan menghitung harga stop loss dan harga stop loss, menetapkan ukuran posisi yang masuk akal, dan membatasi kerugian maksimum yang mungkin disebabkan oleh setiap perdagangan.

Prinsip

Strategi ini pertama-tama menghitung garis macd dan garis sinyal dari MACD. Ketika garis macd melintasi garis sinyal dari bawah ke atas, ini dianggap sebagai sinyal beli. Untuk memfilter pelanggaran palsu, strategi ini membutuhkan barssince ((crossover ((macd_line, signal_line)) <= 5, yaitu, penembusan terjadi dalam 5 garis K terbaru.

Untuk setiap transaksi, strategi menghitung harga stop loss yang wajar dan harga stop loss. Harga stop loss ditetapkan sebagai harga terendah dari 3 garis K terbaru. Harga stop loss ditetapkan sebagai harga beli ditambah harga stop loss hingga empat kali jarak harga beli.

Kuncinya adalah bahwa strategi menghitung posisi spesifik untuk setiap perdagangan berdasarkan risiko yang dapat ditanggung. Dengan parameter capital_risk, setel kerugian maksimum yang dapat ditanggung untuk setiap perdagangan sebagai persentase dari total modal.

Setiap perdagangan risiko dikendalikan dalam 1% dari total modal, dapat secara efektif mengontrol penarikan. Pada saat yang sama, posisi stop-loss yang lebih besar, dapat memperoleh keuntungan yang lebih tinggi.

Keunggulan

  • Pengendalian Risiko Pertama, Setiap Transaksi Dapat Dikendalikan
  • Mengoptimalkan ukuran posisi dan memanfaatkan dana secara maksimal
  • Strategi Stop Loss yang efektif untuk mengendalikan penarikan
  • Penghentian yang masuk akal, potensi keuntungan yang lebih besar

Risiko dan perbaikan

  • Indeks MACD terlambat, mungkin melewatkan tren yang berubah dengan cepat
  • Stop loss atau posisi stop loss yang tidak tepat dapat mengurangi keuntungan atau memperluas risiko
  • Frekuensi transaksi mungkin terlalu tinggi, biaya transaksi meningkat

Pertimbangkan:

  • Mengintegrasikan Indikator lain untuk menilai tren, menghindari masalah keterlambatan MACD
  • Optimalisasi algoritma stop loss untuk membuatnya lebih fleksibel
  • Frekuensi transaksi yang lebih fleksibel dan biaya transaksi yang lebih rendah

Meringkaskan

Strategi ini didasarkan pada indikator MACD untuk menentukan arah tren, mengendalikan risiko sebagai prioritas, menghitung posisi yang masuk akal untuk berdagang. Kuncinya adalah pengendalian risiko dan optimalisasi posisi, yang dapat menghasilkan keuntungan yang stabil dalam jangka panjang. Namun, indikator MACD memiliki kekurangan tertentu, dan mekanisme stop loss juga perlu dioptimalkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy( "McDonalds ", shorttitle="Ur Lovin' It", initial_capital=10000, default_qty_type=strategy.cash, currency=currency.USD )

capital_risk    = input( 1.0, "% capital risk per trade" ) / 100
r_exit          = input( 4.0, "Take Profit in 'R'" )
wma_length      = input( 150, 'WMA Bias Length' )

[macd_line, signal_line, hist ] = macd(close, 12, 26, 9)

w_line = wma( close, wma_length )

golong = barssince(crossover(macd_line, signal_line)) <= 5 and ( macd_line < 0 and signal_line < 0 ) and ( close > w_line ) and strategy.opentrades == 0

float stop = na
float tp = na

// For a stop, use a recent low 
stop := golong ? lowest(low, 3)[1] : stop[1]
range = abs(close - stop)
tp := golong ? close + (r_exit * range) : tp[1]


// This is the bit that calculates how much size to use so we only lose 1% of the `strategy.equity`
how_much_willing_to_lose = strategy.equity * capital_risk
// Spread the risk across the stop range 
position_size_in_usd = how_much_willing_to_lose / (range / close)
// Sized specified in base contract
position_size_in_contracts = position_size_in_usd / close

// Enter the position
if golong
    strategy.entry("long", strategy.long, qty=position_size_in_contracts)
    strategy.exit("long exit","long", stop=stop, limit=tp)

// experimental exit strategy
// hist_strength = hist >= 0 ? ( hist[1] < hist ? 'strong' : 'weak') : ( hist[1] < hist ? 'weak' : 'strong' )
// if hist < 0 and hist_strength == 'strong' and falling( hist, 8 )
//     strategy.close("long")


plot( strategy.equity,  color=strategy.equity > 10000 ? color.green : color.red, linewidth=2 )