Strategi ini adalah sistem perdagangan otomatis yang didasarkan pada simplistic moving average (SMA) crossing dan penyaringan transaksi. Strategi ini menggunakan crossing SMA cepat dan lambat untuk menghasilkan sinyal masuk, dan juga menggabungkan indikator perdagangan untuk mengkonfirmasi intensitas tren. Strategi ini juga mencakup mekanisme stop loss dan stop loss yang dinamis, serta kondisi keluar berbasis waktu, yang dirancang untuk mengoptimalkan manajemen risiko dan meningkatkan profitabilitas.
Pada dasarnya, strategi ini didasarkan pada beberapa komponen penting:
Sinyal silang SMA:
Perdagangan yang disaring:
Pencegahan dan penghentian kerusakan dinamis:
Timer dasar keluar:
Setel selama retesting:
Di sini Anda akan menemukan beberapa tips yang dapat Anda gunakan. Dengan menggabungkan penyeberangan SMA dan penyaringan volume transaksi, strategi dapat menangkap pasar tren yang kuat, sementara menghindari perdagangan yang sering terjadi di pasar yang lemah.
Manajemen Risiko Fleksibel: Mechanisme stop loss dan stop loss dinamis memungkinkan strategi untuk menyesuaikan secara otomatis eksposur risiko sesuai dengan volatilitas pasar, membantu melindungi keuntungan dan membatasi potensi kerugian.
Untuk mencegah over-holding: Pembatasan waktu pemegang maksimal membantu mencegah strategi memegang posisi kerugian dalam jangka panjang dalam kondisi pasar yang tidak menguntungkan dan mendorong penggunaan dana yang efektif.
Ada banyak cara yang bisa Anda lakukan untuk mendapatkannya. Berbagai parameter yang dapat disesuaikan (seperti siklus SMA, persentase stop loss stop loss, waktu penyimpanan maksimum, dll.) memungkinkan strategi untuk dioptimalkan sesuai dengan pasar dan gaya perdagangan yang berbeda.
Bantuan visual: Strategi menggambar garis SMA dan sinyal perdagangan pada grafik untuk memudahkan pemahaman dan analisis kinerja strategi secara intuitif.
Keterlambatan Indikator SMA secara inheren lambat, yang dapat menyebabkan keterlambatan masuk atau kesempatan yang hilang di pasar reversal yang cepat.
Pernyataan ini diungkapkan oleh seorang wartawan. Dalam pasar horizontal, penyeberangan SMA dapat menghasilkan sinyal terobosan palsu yang sering, yang menyebabkan perdagangan berlebihan dan peningkatan biaya transaksi.
Jumlah transaksi tergantung pada: Kepercayaan yang berlebihan pada indikator volume transaksi dapat menyesatkan strategi dalam kondisi pasar tertentu, terutama pada saat likuiditas rendah atau volume perdagangan yang tidak biasa.
Perbandingan stop loss / stop loss tetap: Menggunakan 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: Penetapan waktu penyimpanan maksimum yang tetap dapat menyebabkan penghentian awal saat tren menguntungkan belum berakhir, yang mempengaruhi potensi keuntungan.
Peraturan parameter dinamis: Membuat penyesuaian dinamis pada siklus SMA, persentase stop loss stop loss dan waktu penyimpanan maksimum untuk menyesuaikan diri dengan siklus dan volatilitas pasar yang berbeda.
Incorporate filter tambahan: Memperkenalkan indikator teknis lain (seperti RSI, MACD, dll) sebagai kondisi penyaringan tambahan untuk meningkatkan akurasi sinyal perdagangan.
Adaptif terhadap ambang transaksi: Mengembangkan mekanisme pembatasan volume transaksi yang disesuaikan secara dinamis untuk lebih menyesuaikan dengan karakteristik volume transaksi pada tahap pasar yang berbeda.
Perbaikan mekanisme keluar: Menjelajahi mekanisme keluar yang cerdas berdasarkan struktur pasar atau indikator momentum, menggantikan keluar pada waktu yang tetap, dan meningkatkan fleksibilitas strategi.
Peraturan volatilitas: Mengimplementasikan penyesuaian stop loss dan stop profit secara dinamis berdasarkan volatilitas pasar untuk mengelola risiko dan menangkap keuntungan yang lebih baik.
Analisis Kerangka Waktu Berbilang: Mengintegrasikan analisis data dari beberapa kerangka waktu untuk meningkatkan kemampuan strategi untuk mengidentifikasi tren dan pembalikan pasar.
Optimisasi pembelajaran mesin: Menggunakan algoritma pembelajaran mesin untuk secara dinamis mengoptimalkan parameter strategi, meningkatkan kinerja strategi dalam lingkungan pasar yang berbeda.
Strategi stop-loss dinamis adaptif dengan penyaringan SMA silang dengan penyaringan transaksi adalah sistem perdagangan yang komprehensif yang menggabungkan pelacakan tren, analisis transaksi, dan manajemen risiko. Dengan memanfaatkan penyaringan SMA silang dan penyaringan transaksi, 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 inheren, seperti keterlambatan sinyal dan ketergantungan pada parameter tetap, strategi ini menawarkan beberapa arah yang dapat dioptimalkan, termasuk penyesuaian tren parameter, pengenalan indikator teknis tambahan, dan memanfaatkan teknologi pembelajaran mesin. Dengan optimasi dan perbaikan yang berkelanjutan, strategi ini berpotensi menjadi alat perdagangan otomatis yang sangat fleksibel dan cocok untuk berbagai kondisi dan gaya perdagangan pasar.
/*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")