
Strategi ini adalah sistem perdagangan otomatis yang didasarkan pada simpul moving average (SMA) crossover dan crossover filter. Ini menggunakan crossover SMA cepat dan lambat untuk menghasilkan sinyal masuk, sambil menggabungkan indikator crossover untuk mengkonfirmasi kekuatan tren. Strategi ini juga mencakup mekanisme stop loss dan stop loss yang dinamis, serta kondisi keluar berdasarkan waktu, yang bertujuan untuk mengoptimalkan manajemen risiko dan meningkatkan kemampuan profitabilitas.
Prinsip-prinsip inti dari strategi ini didasarkan pada beberapa komponen utama:
SMA sinyal silang:
Filter untuk jumlah pengiriman:
Stop loss dan stop loss:
Pengunduran diri berdasarkan waktu
Pengaturan selama pengamatan:
Mengikuti tren dengan mengkombinasikan momentum: Dengan menggabungkan SMA crossover dan penyaringan volume, strategi ini dapat menangkap tren yang kuat dan menghindari perdagangan yang sering terjadi di pasar yang lemah.
Manajemen risiko yang fleksibel: Mekanisme stop loss dan stop loss dinamis memungkinkan strategi untuk secara otomatis menyesuaikan eksposur risiko sesuai dengan volatilitas pasar, membantu melindungi keuntungan dan membatasi potensi kerugian.
Mencegah kepemilikan saham yang berlebihan: Pembatasan waktu maksimum memegang posisi membantu mencegah strategi untuk memegang posisi yang merugikan dalam jangka panjang dalam kondisi pasar yang tidak menguntungkan dan mendorong penggunaan dana yang efektif.
Kustomisasi: Beberapa parameter yang dapat disesuaikan (seperti siklus SMA, persentase stop loss, waktu maksimum memegang posisi, dll.) memungkinkan strategi untuk dioptimalkan sesuai dengan berbagai pasar dan gaya perdagangan.
Dukungan visual: Strategi memetakan garis SMA dan sinyal perdagangan pada grafik untuk memudahkan pemahaman dan analisis kinerja strategi secara intuitif.
Keterlambatan: Indikator SMA pada dasarnya tertunda, yang dapat menyebabkan keterlambatan masuk atau kehilangan peluang di pasar yang berbalik dengan cepat.
Risiko terobosan palsu: Dalam pasar horizontal, SMA crossover dapat menghasilkan sinyal penembusan palsu yang sering, yang menyebabkan overtrading dan meningkatkan biaya transaksi.
Jumlah penjualan tergantung pada: Terlalu mengandalkan indikator volume transaksi dapat menyesatkan strategi dalam kondisi pasar tertentu, terutama selama periode likuiditas rendah atau volume transaksi yang tidak biasa.
Persentase Stop Loss/Stop Stop: Stop loss dan stop loss dengan persentase tetap mungkin tidak cocok untuk semua kondisi pasar, terutama pada periode volatilitas yang sangat berubah.
Keterbatasan waktu untuk keluar: Waktu maksimum memegang posisi yang tetap dapat menyebabkan pelunasan posisi terlalu dini, yang mempengaruhi potensi keuntungan.
Pengaturan parameter dinamis: Memungkinkan penyesuaian dinamis dari siklus SMA, persentase stop loss, dan waktu maksimum memegang posisi untuk menyesuaikan dengan siklus dan volatilitas pasar yang berbeda.
Incorporate filter tambahan: Memperkenalkan indikator teknis lainnya (seperti RSI, MACD, dll.) sebagai syarat penyaringan tambahan untuk meningkatkan akurasi sinyal perdagangan.
Adaptasi terhadap penurunan volume transaksi: Mengembangkan mekanisme devaluasi volume transaksi yang disesuaikan secara dinamis untuk lebih menyesuaikan karakteristik volume transaksi pada fase pasar yang berbeda.
Meningkatkan mekanisme penarikan diri Menjelajahi mekanisme penarikan cerdas berdasarkan struktur pasar atau indikator momentum, menggantikan penarikan waktu tetap, meningkatkan fleksibilitas strategi.
Adaptasi Volatilitas: Adaptasi tingkat stop loss dan stop loss yang dinamis berdasarkan volatilitas pasar untuk mengelola risiko dan menangkap keuntungan dengan lebih baik.
Analisis multi-frame waktu: Mengintegrasikan analisis data dari beberapa kerangka waktu, meningkatkan kemampuan strategi untuk mengidentifikasi tren dan pembalikan pasar.
Optimalisasi Pembelajaran Mesin Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan parameter strategi secara dinamis untuk meningkatkan kinerja strategi dalam berbagai lingkungan pasar.
“Strategi Stop Loss Dinamis Adaptif dengan SMA Crossover dan Filter Volume” adalah sistem perdagangan komprehensif yang menggabungkan pelacakan tren, analisis volume dan manajemen risiko. Dengan memanfaatkan SMA Crossover dan Filter Volume, strategi ini bertujuan untuk menangkap tren pasar yang kuat, sementara mekanisme Stop Loss Dinamis dan fungsi Keluar Berbasis Waktu memberikan kontrol risiko yang fleksibel. Meskipun ada beberapa keterbatasan yang melekat, seperti lag sinyal dan ketergantungan pada parameter tetap, strategi ini menawarkan beberapa arah yang dapat dioptimalkan, termasuk penyesuaian dinamis parameter, pengenalan indikator teknis tambahan dan memanfaatkan teknologi pembelajaran mesin.
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true)
// INPUTS
dateStart_Year = input.int(2018, title="Start Year", minval=2000)
dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12)
dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input.int(2019, title="End Year", minval=2000)
dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31)
fast_SMA_input = input.int(7, title="SMA Fast")
slow_SMA_input = input.int(25, title="SMA Slow")
volume_SMA_input = input.int(20, title="Volume SMA")
stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100
take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1)
// INDICATORS
fast_SMA = ta.sma(close, fast_SMA_input)
slow_SMA = ta.sma(close, slow_SMA_input)
volume_SMA = ta.sma(volume, volume_SMA_input)
// STRATEGY
LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA
SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA
// TRIGGERS
testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day)
testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day)
timecondition = true
// Track bar index for entries
var int long_entry_bar_index = na
var int short_entry_bar_index = na
if timecondition
if LONG
strategy.entry(id="LONG", direction=strategy.long)
long_entry_bar_index := bar_index
if SHORT
strategy.entry(id="SHORT", direction=strategy.short)
short_entry_bar_index := bar_index
// Exit conditions for LONG
if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade
strategy.close("LONG")
long_entry_bar_index := na
// Exit conditions for SHORT
if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade
strategy.close("SHORT")
short_entry_bar_index := na
// Standard exits
if LONG
strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent))
if SHORT
strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent))
// PLOTS
plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA")
plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA")
plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA")
plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Uncomment the following lines for alerts
// alertcondition(LONG, title="LONG")
// alertcondition(SHORT, title="SHORT")