
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.
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.
Pertimbangkan:
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.
/*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 )