
Strategi ini menggunakan Golden Cross dan Dead Hook pada Moving Average, yang dikombinasikan dengan penilaian RSI, untuk mengidentifikasi dan melacak tren. Strategi ini lebih khas untuk melacak tren dengan melakukan overline saat melintasi rata-rata jangka panjang di atas rata-rata jangka pendek, dan shorting saat melintasi rata-rata jangka panjang di bawah rata-rata jangka pendek.
Strategi ini didasarkan pada prinsip-prinsip berikut:
Menggunakan EMA rata-rata: lebih responsif terhadap perubahan harga terbaru dan lebih cepat bereaksi terhadap terobosan daripada SMA
Garis persimpangan dua rata-rata: Garis persimpangan periode pendek di atas garis persimpangan periode panjang sebagai sinyal beli, garis persimpangan periode pendek di bawah garis persimpangan periode panjang sebagai sinyal jual, menggunakan garis persimpangan emas dan prinsip terbalik untuk menilai pembalikan tren.
Indikator RSI membantu penilaian: jual saat RSI tinggi kembali, beli saat RSI rendah kembali, hindari false breakout.
Garis rata-rata periode yang berbeda ditumpuk: garis siklus 55 adalah garis sinyal untuk menentukan pergeseran tren jangka pendek, garis siklus 100 adalah garis sinyal untuk menentukan tren jangka menengah, dan garis siklus 200 adalah garis sinyal untuk menentukan tren jangka panjang.
Tetapkan Stop Loss: Tetapkan stop loss dan stop loss rasio yang masuk akal untuk mengontrol risiko.
Logika perdagangan strategi ini adalah sebagai berikut:
Bila 55 siklus EMA memakai 100 siklus EMA, dan 12 siklus EMA lebih tinggi dari 200 siklus EMA, lakukan over-entry.
Ketika 100 siklus EMA di bawah melewati 200 siklus EMA, kosong masuk.
Setelah trading masuk, atur kondisi stop loss dan stop loss untuk mengoptimalkan keuntungan.
Ketika indikator RSI menunjukkan sinyal overbought dan oversold, tutuplah pesanan berlebih dan kosong yang sesuai, untuk menghindari risiko reversal.
Melalui aplikasi superimposisi dari EMA periode yang berbeda, strategi ini memungkinkan untuk menilai tren dan mengkonfirmasi reversal sekaligus, melacak tren jangka menengah dan panjang, sekaligus menghindari kebocoran.
Strategi ini memiliki beberapa keuntungan:
Strategi yang jelas dan mudah dipahami dan diimplementasikan.
Dengan menggunakan EMA, Anda dapat lebih cepat menanggapi perubahan harga dan menangkap perubahan tren.
EMA periode multi-grup digunakan secara superimposed, dengan mempertimbangkan trend tracking dan identifikasi reversal.
Penggunaan indikator RSI untuk menghindari false breakout dan meningkatkan akurasi sinyal.
Pengaturan parameter Stop Loss By Default adalah wajar dan dapat mengontrol risiko perdagangan secara efektif.
Skalabilitas yang kuat, strategi dapat dioptimalkan sesuai dengan parameter garis rata-rata yang disesuaikan dengan pasar dan parameter stop loss.
Strategi ini memiliki risiko utama sebagai berikut:
Strategi rata-rata sensitif terhadap fluktuasi pasar dan mudah ditiru. Terlalu banyak transaksi tidak efektif dapat terjadi jika terjadi long-term market volatility.
Parameter default mungkin tidak dapat disesuaikan dengan karakteristik pasar untuk semua varietas dan siklus, dan perlu dioptimalkan untuk tujuan tersebut.
Indikator-indikator yang didorong oleh teknologi murni dapat dipengaruhi dengan mudah tanpa mempertimbangkan dasar-dasar dan dampak dari peristiwa-peristiwa besar pada pasar.
Strategi ini mungkin tidak menguntungkan ketika indeks naik tetapi pasar saham terbagi.
Ada risiko kehilangan sebagian besar keuntungan pasar karena “penundaan keluar terlalu cepat”.
Ada beberapa cara untuk mengoptimalkan dan memperbaiki risiko ini:
Dengan adanya filter seperti volume transaksi, kita bisa menghindari terjadinya penembusan palsu yang mengakibatkan kerugian.
Optimalkan pengukuran parameter agar lebih sesuai dengan karakteristik varietas tertentu.
Mempersingkat posisi dengan tepat, menghentikan stop loss tepat waktu, menghindari risiko pergerakan long-term.
Dengan kombinasi dari indikator-indikator dasar, kita bisa menghindari dampak dari peristiwa besar yang terjadi di masa depan.
Strategi ini dapat dioptimalkan dengan:
Mengoptimalkan parameter sistem linear, mencari kombinasi siklus linear jangka pendek, menengah dan panjang yang lebih cocok. Metode pengoptimalan parameter seperti Machine Learning dapat dicoba.
Uji banding antara harga close out dan harga tipikal dalam strategi tersebut.
Cobalah untuk menggunakan volume transaksi sebagai filter untuk menghasilkan sinyal transaksi hanya dalam jumlah besar.
Optimalkan kondisi stop loss agar lebih terfokus. Anda juga dapat mengatur stop loss dinamis untuk menyesuaikan stop loss secara proporsional.
Strategi komposit yang dibangun dalam kombinasi dengan indikator lain, seperti Stoch, MACD, dan Blink, meningkatkan efektivitas strategi.
Untuk mengevaluasi efektivitas strategi, dan untuk meningkatkannya, dilakukan pengulangan pada berbagai varietas, siklus, dan tahap pasar.
Optimalisasi parameter multidimensi dapat dipertimbangkan dengan bantuan algoritma pembelajaran mesin.
Strategi ini memiliki kelebihan seperti mudah diterapkan, default yang dapat diandalkan, dan kemampuan yang kuat untuk meningkatkan. Namun, ada juga risiko pasar tertentu, yang memerlukan optimasi parameter dan modul yang terus menerus berdasarkan hasil pengukuran ulang, untuk membuat strategi lebih stabil dan cerdas.
/*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)