
Strategi ini adalah strategi multiply/blank yang didasarkan pada perpaduan rata-rata bergerak sederhana (SMA). Strategi ini menggunakan dua siklus SMA yang berbeda untuk menghasilkan sinyal perdagangan. Strategi ini menggunakan konsep rebound, menyesuaikan ukuran posisi akun berdasarkan saldo akun saat ini dan keuntungan akumulator. Ini memungkinkan saldo akun tumbuh dari waktu ke waktu, sehingga meningkatkan profitabilitas strategi.
Prinsip inti dari strategi ini adalah menggunakan SMA untuk menghasilkan sinyal perdagangan. SMA adalah indikator pelacakan tren untuk menentukan arah harga secara keseluruhan dengan rata-rata harga penutupan selama beberapa waktu terakhir. Dengan menggunakan dua siklus SMA yang berbeda, strategi dapat menangkap perubahan tren pasar.
Strategi ini menggunakan konsep laba untuk mengelola ukuran posisi. Ini menghitung ukuran posisi berdasarkan saldo akun saat ini dan keuntungan akumulasi. Ini berarti bahwa strategi akan meningkatkan ukuran posisi sesuai dengan pertumbuhan saldo akun, sehingga memaksimalkan potensi keuntungan. Dengan menyesuaikan ukuran posisi secara dinamis, strategi dapat memanfaatkan sepenuhnya keuntungan dari pertumbuhan akun.
Sederhana: Strategi ini didasarkan pada SMA crossover dan merupakan strategi pelacakan tren yang sederhana dan mudah dimengerti. Strategi ini tidak memerlukan waktu pasar yang rumit atau penilaian subjektif, sehingga strategi ini mudah diterapkan dan dikelola.
Pelacakan tren: Dengan menggunakan SMA crossover, strategi ini dapat secara efektif menangkap tren pasar. Hal ini dapat melakukan perdagangan multihead dalam tren naik, perdagangan kosong dalam tren turun, sehingga memaksimalkan potensi keuntungan.
Manajemen Posisi Dinamis: Strategi ini menggunakan konsep laba untuk mengelola ukuran posisi. Dengan menyesuaikan ukuran posisi berdasarkan saldo akun dan dinamika laba akumulasi, strategi ini dapat memanfaatkan sepenuhnya keuntungan dari pertumbuhan akun, meningkatkan profitabilitas.
Adaptabilitas: Strategi ini dapat diterapkan di berbagai pasar dan kelas aset, seperti saham, valuta asing, komoditas, dll. Kesederhanaan dan fleksibilitasnya membuatnya menjadi strategi perdagangan umum.
Risiko pasar: Strategi ini bergantung pada kelangsungan tren pasar. Strategi ini dapat mengalami kerugian jika terjadi fluktuasi pasar atau pembalikan tren. Faktor-faktor seperti kejadian mendadak, publikasi data ekonomi dapat menyebabkan perubahan tren pasar, yang berdampak buruk pada strategi.
Risiko Parameter: Kinerja strategi tergantung pada pilihan siklus SMA. Kombinasi siklus yang berbeda dapat menghasilkan hasil yang berbeda. Pilihan parameter yang salah dapat menyebabkan kinerja strategi yang buruk atau kehilangan peluang perdagangan.
Over-trading: Seringnya SMA crossover dapat menyebabkan over-trading, meningkatkan biaya transaksi dan slippage, sehingga mempengaruhi kinerja strategi secara keseluruhan.
Risiko rebound: Meskipun rebound dapat meningkatkan profitabilitas strategi, tetapi juga meningkatkan risiko kerugian. Dalam kasus kerugian berturut-turut, saldo akun dapat menyusut dengan cepat, sehingga membatasi kemampuan strategi untuk pulih.
Optimasi parameter: mengoptimalkan siklus SMA untuk menemukan kombinasi parameter optimal untuk meningkatkan kinerja strategi. Kembali ke data historis dapat digunakan untuk melakukan pengujian dan menggunakan algoritma optimasi seperti pencarian grid atau algoritma genetik untuk menemukan parameter optimal.
Pengelolaan risiko: Memperkenalkan langkah-langkah pengelolaan risiko seperti stop loss dan stop loss untuk membatasi kerugian dan melindungi keuntungan dari satu transaksi. Tingkat stop loss dan stop loss dapat disesuaikan dengan dinamika volatilitas pasar untuk menyesuaikan dengan kondisi pasar yang berbeda.
Filter tren: selain SMA crossover, diperkenalkan indikator konfirmasi tren lainnya, seperti MACD atau ADX, untuk menyaring sinyal palsu dan meningkatkan kualitas sinyal. Untuk meningkatkan keandalan strategi, perdagangan dilakukan hanya ketika beberapa indikator mengkonfirmasi tren secara bersamaan.
Optimalisasi manajemen posisi: Aturan manajemen posisi untuk mengoptimalkan strategi profit dan loss, seperti memperkenalkan langkah-langkah kontrol risiko, membatasi risiko per transaksi tunggal. Anda dapat mempertimbangkan untuk menggunakan rumus Kelly atau persentase risiko tetap untuk menentukan ukuran posisi per transaksi, untuk menyeimbangkan risiko dan keuntungan.
Strategi ini adalah strategi pelacakan tren berbasis SMA silang yang menggunakan konsep laba untuk mengelola ukuran posisi. Keuntungannya adalah mudah dipahami, kemampuan pelacakan tren yang kuat, manajemen posisi yang dinamis dan adaptasi yang kuat. Namun, strategi ini juga menghadapi tantangan seperti risiko pasar, risiko parameter, risiko overtrading dan risiko laba. Untuk meningkatkan strategi, pertimbangan dapat diberikan untuk mengoptimalkan parameter, memperkenalkan langkah-langkah manajemen risiko, memfilter dan mengoptimalkan aturan manajemen posisi.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Umesh SMA Crossover Strategy", overlay=true)
// Input parameters
fast_length = input.int(9, title="Fast SMA Length")
slow_length = input.int(21, title="Slow SMA Length")
// Calculate SMAs
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)
// Plot SMAs
plot(fast_sma, color=color.blue, title="Fast SMA")
plot(slow_sma, color=color.red, title="Slow SMA")
// Strategy logic
longCondition = ta.crossover(fast_sma, slow_sma)
shortCondition = ta.crossunder(fast_sma, slow_sma)
// Initialize cumulative profit with netprofit
var float cumulative_profit = na
if (na(cumulative_profit))
cumulative_profit := strategy.netprofit
// // Initialize starting balance
// var float starting_balance = na
// if (na(starting_balance))
// starting_balance := strategy.equity
// Initialize starting balance
var float starting_balance = na
if (na(starting_balance))
starting_balance := 100000.0 // Initial balance
// Calculate profit or gains
if (strategy.opentrades != 0)
cumulative_profit := strategy.netprofit + (strategy.equity - starting_balance)
// Calculate position size based on current balance and cumulative profit
//position_size = 100000
position_size = starting_balance + cumulative_profit
// Entry conditions
if (longCondition)
strategy.entry("Long", strategy.long, qty = position_size / close)
if (shortCondition)
strategy.entry("Short", strategy.short, qty = position_size / close)
// // Entry conditions
// if (longCondition)
// strategy.entry("Long", strategy.long, qty = 100000 / close)
// if (shortCondition)
// strategy.entry("Short", strategy.short, qty = 100000 / close)
// Plot strategy.equity
plot(strategy.equity, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = strategy.equity, text = str.tostring(strategy.equity), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)
// Plot cumulative profit
plot(cumulative_profit, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = cumulative_profit, text = str.tostring(cumulative_profit), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)
// Plot cumulative profit
plot(position_size, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = position_size, text = str.tostring(position_size), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)