- Persegi
- Strategi MACD Lanjutan dengan Martingale Terbatas
Strategi MACD Lanjutan dengan Martingale Terbatas
Penulis:
ChaoZhang, Tanggal: 2024-06-03 10:43:00
Tag:
MACDATR
Gambaran umum
Strategi ini menggabungkan indikator MACD dan metode manajemen uang Martingale untuk menangkap pergerakan pasar tren sambil mengendalikan risiko. Strategi ini menggunakan persilangan garis cepat MACD dan garis lambat sebagai sinyal perdagangan, dan mengadopsi sejumlah pendekatan Martingale terbatas untuk mengendalikan ukuran posisi. Ketika terjadi perdagangan yang kalah, strategi akan menggandakan jumlah kontrak untuk perdagangan berikutnya, hingga maksimal tiga kali, untuk memulihkan kerugian sebelumnya. Pada saat yang sama, strategi menetapkan kondisi mengambil keuntungan dan stop-loss untuk mengendalikan risiko lebih lanjut.
Prinsip Strategi
- Gunakan penyeberangan garis cepat MACD (periode default 12) dan garis lambat (periode default 26) sebagai sinyal perdagangan. Pergi panjang ketika garis cepat melintasi garis lambat, dan pergi pendek ketika garis cepat melintasi di bawah garis lambat.
- Jumlah awal kontrak adalah 0.02. Ketika terjadi perdagangan yang kalah, dua kali lipat jumlah kontrak untuk perdagangan berikutnya, hingga maksimal tiga kali. Jika profitabilitas tidak tercapai setelah tiga perkalian, atur ulang jumlah kontrak ke nilai awal 0.02.
- Tetapkan kondisi mengambil keuntungan: Untuk posisi panjang, tutup posisi ketika harga naik 1,5% di atas harga masuk; untuk posisi pendek, tutup posisi ketika harga turun 1% di bawah harga masuk.
- Tetapkan kondisi stop-loss: Untuk posisi panjang, tutup posisi ketika harga turun 1% di bawah harga masuk; untuk posisi pendek, tutup posisi ketika harga naik 1% di atas harga masuk.
Keuntungan Strategi
- Dengan menggabungkan indikator MACD trend-following dan metode manajemen uang Martingale, strategi dapat mendapatkan keuntungan dari tren pasar sambil mengendalikan penarikan.
- Strategi ini menggunakan pendekatan Martingale yang terbatas, menghindari risiko leverage yang tidak terbatas.
- Kondisi mengambil keuntungan dan stop loss yang jelas ditetapkan, mengendalikan risiko lebih lanjut.
- Logika kode jelas dan mudah dipahami dan diimplementasikan.
Risiko Strategi
- Meskipun metode Martingale membatasi jumlah leverage, masih ada risiko leverage yang berlebihan, yang mengarah pada kerugian besar.
- Indikator MACD dapat menyimpang dari harga, menyebabkan sinyal perdagangan menjadi tidak valid.
- Rasio take-profit dan stop-loss yang tetap mungkin tidak dapat beradaptasi dengan kondisi pasar yang berbeda, sehingga menghasilkan pengambilan keuntungan atau menghentikan kerugian yang lebih dini.
Arah Optimasi Strategi
- Pertimbangkan untuk menyesuaikan secara dinamis rasio leverage Martingale dan jumlah kali berdasarkan volatilitas pasar saat ini dan toleransi risiko akun.
- Gabungkan indikator teknis lainnya seperti RSI dan Bollinger Bands dengan sinyal MACD untuk membentuk sinyal perdagangan yang lebih dapat diandalkan.
- Mengadopsi metode adaptatif untuk mengambil keuntungan dan menghentikan kerugian, seperti mengambil keuntungan dan menghentikan kerugian berdasarkan ATR, atau menyesuaikan rasio mengambil keuntungan dan menghentikan kerugian secara dinamis berdasarkan tren pasar dan volatilitas.
- Memperkenalkan modul manajemen posisi untuk menyesuaikan secara dinamis ukuran posisi dari setiap perdagangan berdasarkan faktor-faktor seperti saldo rekening dan toleransi risiko.
Ringkasan
Dengan menggabungkan indikator MACD dan metode manajemen uang Martingale, strategi ini bertujuan untuk mendapatkan keuntungan dari pasar tren sambil mengendalikan risiko. Logika strategi jelas dan mudah diterapkan, tetapi masih ada risiko yang terkait dengan leverage Martingale dan keterbatasan rasio fixed take-profit dan stop-loss.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Advanced MACD Strategy with Limited Martingale", overlay=true, initial_capital=500)
// MACD 설정 변경
fastLength = 15
slowLength = 30
signalSmoothing = 9
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// 계약수 및 이전 거래 결과 기록
var float contractSize = 0.02 // 계약 수를 0.05로 시작
var int martingaleCount = 0 // 마틴게일 카운트
var float lastTradeResult = 0
// 매수 및 매도 조건
longCondition = ta.crossover(macdLine, signalLine)
shortCondition = ta.crossunder(macdLine, signalLine)
// 매수 신호
if (longCondition)
strategy.entry("Long", strategy.long, qty=contractSize)
lastTradeResult := strategy.netprofit
// 매도 신호
if (shortCondition)
strategy.entry("Short", strategy.short, qty=contractSize)
lastTradeResult := strategy.netprofit
// 익절 및 손절 조건
strategy.close("Long", when=(close / strategy.position_avg_price >= 1.015))
strategy.close("Short", when=(strategy.position_avg_price / close >= 1.01))
strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99))
strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99))
// 마틴게일 전략 적용
if (strategy.netprofit < lastTradeResult)
if (martingaleCount < 3)
contractSize := contractSize * 2
martingaleCount := martingaleCount + 1
else
contractSize := 0.02 // 리셋 할 때 0.05로 리셋
martingaleCount := 0
else
contractSize := 0.02 // 초기화
martingaleCount := 0
// 매수, 매도 포인트 화살표로 표시
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")
Berkaitan
Lebih banyak