Strategi ini menggunakan prinsip golden cross dan death cross dari moving average, dikombinasikan dengan indikator RSI untuk membantu dalam identifikasi dan pelacakan tren.
Strategi ini didasarkan pada prinsip-prinsip berikut:
Gunakan EMA alih-alih SMA untuk lebih mencerminkan perubahan harga terbaru dan bereaksi lebih cepat terhadap bursa.
Sistem crossover rata-rata bergerak ganda: EMA jangka pendek melintasi di atas EMA jangka panjang menandakan masuk panjang, sementara EMA jangka pendek melintasi di bawah EMA jangka panjang menandakan masuk pendek.
Indikator RSI membantu menyaring kegagalan palsu dengan memberi sinyal kondisi overbought/oversold.
Beberapa moving average ditumpuk bersama: 55 periode EMA untuk sinyal jangka pendek, 100 periode EMA untuk tren jangka menengah, dan 200 periode EMA untuk penyaringan tren jangka panjang.
Stop loss yang wajar dan mengambil pengaturan keuntungan untuk mengendalikan risiko.
Logika perdagangan utama adalah:
Masukkan panjang ketika EMA 55 periode melintasi EMA 100 periode, dan EMA 12 periode berada di atas EMA 200 periode.
Masuk short ketika EMA 100 periode melintasi EMA 200 periode.
Atur stop loss dan ambil keuntungan setelah masuk untuk mengoptimalkan pengembalian.
Tutup posisi panjang/pendek ketika RSI menunjukkan overbought/oversold untuk menghindari risiko pembalikan.
Kombinasi dari beberapa periode rata-rata bergerak menyumbang untuk melacak tren dan konfirmasi pembalikan, sehingga menghindari terjebak dalam konsolidasi yang berkepanjangan sambil mengikuti tren utama.
Keuntungan utama dari strategi ini adalah:
Logika sederhana berdasarkan crossover rata-rata bergerak, mudah dipahami dan diimplementasikan.
Reaksi yang lebih cepat terhadap perubahan harga dan pembalikan tren dengan menggunakan EMA.
Beberapa periode rata-rata bergerak menyumbang untuk pelacakan tren dan identifikasi pembalikan.
RSI menyaring keluar penyebaran palsu dan meningkatkan akurasi sinyal.
Parameter stop loss/take profit default secara efektif mengendalikan risiko perdagangan.
Sangat disesuaikan dengan penyesuaian periode rata-rata bergerak, stop loss/take profit ratio dll.
Risiko utama dari strategi ini adalah:
Cenderung untuk dicambuk dalam jangkauan, volatile pasar, menghasilkan sinyal yang berlebihan tidak aktif.
Parameter default mungkin tidak sesuai dengan semua produk dan kerangka waktu, yang membutuhkan optimasi.
Hanya sinyal teknis, rentan terhadap pergeseran fundamental dan risiko peristiwa.
Mungkin berkinerja buruk ketika indeks naik tetapi luas pasar berbeda.
Risiko mengambil keuntungan terlalu awal dan kehilangan sebagian besar gerakan tren.
Untuk mengatasi risiko ini, optimasi berikut dapat dilakukan:
Tambahkan filter seperti volume untuk menghindari kebocoran palsu.
Backtest untuk menemukan parameter optimal untuk setiap produk.
Stop loss dan profit taking yang lebih ketat untuk membatasi risiko whipsaw di berbagai pasar.
Masukkan filter dasar untuk menghindari sinyal sebelum peristiwa besar.
Strategi dapat dioptimalkan dalam aspek berikut:
Mengoptimalkan periode rata-rata bergerak untuk menemukan kombinasi jangka pendek, menengah dan panjang terbaik, melalui pembelajaran mesin dll.
Uji harga penutupan vs harga khas untuk kinerja.
Tambahkan filter volume untuk hanya menerima sinyal pada bar volume tinggi.
Mengoptimalkan stop loss / mengambil rasio keuntungan untuk presisi yang lebih tinggi atau mengatur stop dinamis berdasarkan persentase.
Membangun model komposit dengan indikator tambahan seperti Stochastics, MACD, Bollinger Bands untuk meningkatkan kinerja.
Backtest pada produk yang berbeda, kerangka waktu dan kondisi pasar untuk ketahanan.
Menggunakan pembelajaran mesin untuk optimasi parameter multidimensi.
Ini adalah strategi yang mudah dimengerti berdasarkan logika crossover rata-rata bergerak sederhana. Ini memiliki keuntungan seperti penerapan yang mudah, keandalan, dan potensi kustomisasi yang tinggi. Tetapi juga membawa risiko pasar yang melekat, yang membutuhkan optimasi terus-menerus dari parameter dan modul berdasarkan hasil backtest, untuk membuat strategi lebih kuat dan cerdas. Menggabungkan analisis teknis dengan penelitian mendasar dapat lebih meningkatkan kelengkapan dan keandalan.
/*backtest start: 2023-10-24 00:00:00 end: 2023-10-31 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © pernath //@version=5 strategy("TREND_CATCHER", overlay=true, commission_value=0.05, commission_type=strategy.commission.percent, initial_capital=1000) //#####variables############## profit_short=input(title='profit_short', defval=27) stop_short=input(title='stop_short', defval=2) stop_long=input(title='stop_long', defval=3) profit_long=input(title='profit_long', defval=35) media_1=input(title='media_1', defval=55) media_2=input(title='media_2', defval=100) resta_medias=input(title='resta_medias', defval=0) resta_medias2=input(title='resta_medias2', defval=0) RSI_periodos=input(title='RSI_periodos', defval=42) //###############VARIABLES################### //#####Alert##### id_bot = "" email_token = "" long_open ="" long_close ="" short_open ="" short_close ="" //# {{strategy.order.alert_message}} //############################# //############################# //###############EMA##############/ //plot(ta.ema(close, 1), title='ema 5', color=color.white) plot(ta.ema(close, 12), title='ema 12', color=color.white) plot(ta.ema(close, 25), title='ema 25', color=color.white) plot(ta.ema(close, 30), title='ema 30', color=color.white, linewidth=1) plot(ta.ema(close, 40), title='ema 40', color=color.white, linewidth=1) plot(ta.ema(close, 55), title='ema 55', color=color.orange, linewidth=1) plot(ta.ema(close, 100), title='ema 100', color=color.red, linewidth=1) plot(ta.ema(close, 200), title='ema 200', color=color.white, linewidth=3) //#############################/ //######VISUAL############# EMA50 = ta.ema(close, 55) EMA100 = ta.ema(close, 100) estado_medias=EMA50-EMA100 a = plot(EMA50, title="EMA(50)", color=color.orange, linewidth=1 ) b = plot(EMA100, title="EMA(100)", color=color.red, linewidth=1 ) var color col = na col := estado_medias>resta_medias ? color.green : color.red fill(a,b,color=col,transp=40) //######VISUAL############# Go_Short=(ta.crossunder(ta.ema(close,100),ta.ema(close,200))) Go_Long=((ta.crossover(ta.ema(close,55),ta.ema(close,100))and(ta.ema(close,12)>ta.ema(close,200)))) strategy.close("enter long", (Go_Short),alert_message=long_open) cancelar_short=((ta.crossunder(ta.ema(close,25),ta.ema(close,6)))) if Go_Short strategy.entry("enter short", strategy.short,1, alert_message=short_open) strategy.exit("cerrar short", "enter short", 1, profit=close*profit_short/100/syminfo.mintick, loss=close*stop_short/100/syminfo.mintick, alert_message=short_close) strategy.close("enter short", (Go_Long),alert_message=short_close) cancelar=((ta.crossunder(ta.ema(close,12),ta.ema(close,30)))) if Go_Long strategy.entry("enter long", strategy.long,1,alert_message=long_open) strategy.exit("cerrar long", "enter long", 1, profit=close*profit_long/100/syminfo.mintick, loss=close*stop_long/100/syminfo.mintick, alert_message=long_close) strategy.close("enter short", (cancelar_short),alert_message=short_close) strategy.close("enter long", (cancelar),alert_message=long_close) //posiciones abiertas bgcolor((strategy.position_size > 0 or strategy.position_size < 0) ? color.blue : na, transp=70)