Strategi ini menggabungkan PSAR untuk menilai tren harga, ADX untuk menilai kekuatan tren, RSI untuk menemukan zona overbought dan oversold, dan CMF untuk menilai arus dana untuk membangun strategi perdagangan kuantitatif intraday yang mengikuti tren di seluruh siklus. Ini dapat dengan cepat menemukan arah tren baru ketika harga keluar dari konsolidasi dan membentuk tren baru, dan terus melacak tren setelahnya.
Aturan utama penilaian strategi ini adalah:
Gunakan indikator PSAR untuk menilai apakah harga berada dalam tren naik. penurunan PSAR
Memerlukan RSI untuk berada di atas titik tengah 50 untuk menyaring breakout palsu yang terjadi di zona oversold.
Memerlukan ADX berada di atas garis EMA, menunjukkan sinyal yang berkelanjutan dalam analisis tren.
Memerlukan CMF lebih besar dari 0, menilai peningkatan dana yang mengalir.
Sinyal beli dihasilkan ketika semua empat kondisi di atas terpenuhi. Kondisi jual terjadi ketika PSAR naik di atas harga, RSI turun di bawah 50, ADX turun di bawah EMA dan CMF menjadi kurang dari 0.
Strategi ini secara komprehensif mempertimbangkan arah tren harga, kekuatan tren, keadaan overbought/oversold dan arus dana saat menetapkan aturan perdagangan. Dengan menetapkan aturan logis yang ketat saat menghasilkan sinyal perdagangan, pecah palsu dapat secara efektif disaring dan arah tren yang berkelanjutan dengan probabilitas tinggi dapat ditangkap.
Keuntungan utama dari strategi ini meliputi:
Menggabungkan beberapa indikator dalam menetapkan aturan perdagangan dapat secara efektif mencegah pecah palsu dan memastikan kualitas sinyal.
Dengan cepat menemukan arah tren yang sedang berkembang dan melacak memungkinkan untuk menangkap sebagian besar keuntungan tren.
Menetapkan kondisi penyaringan proses dapat secara efektif mengendalikan risiko dan memastikan efektivitas pelacakan.
Mempertimbangkan kekuatan tren membantu menghindari kemacetan jangkauan perdagangan.
Risiko utama dari strategi ini meliputi:
Akumulasi strategi tunggal menimbulkan risiko portofolio, yang membutuhkan ukuran posisi yang tepat.
Perhatikan perubahan kondisi penyaringan selama pelacakan untuk menghindari kerugian saat dibatalkan.
Strategi jangka menengah/panjang ini dapat terganggu jangka pendek oleh fluktuasi dan menimbulkan risiko stop loss.
Langkah-langkah manajemen risiko yang sesuai meliputi: mengoptimalkan aturan ukuran posisi, menetapkan garis peringatan risiko dan memperluas jarak berhenti dll.
Ruang pengoptimalan meliputi:
Optimasi parameter melalui pembelajaran mesin mengingat pengaturan subjektif saat ini.
Tambahkan modul pengukuran posisi yang secara dinamis mengukuran berdasarkan risiko.
Meningkatkan mekanisme berhenti, misalnya, berhenti di belakang, berhenti waktu atau berhenti keluar.
Strategi ini menggabungkan indikator terbukti efektif dalam dengan cepat menemukan dan melacak tren baru, memvalidasi perdagangan kuantitatif berdasarkan beberapa dimensi seperti tren dan dana. Sebagai dasar, dapat diindeks di seluruh siklus. Dengan penyesuaian parameter dan peningkatan modular, juga dapat menjadi strategi jangka menengah / panjang yang stabil.
/*backtest start: 2023-11-14 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("psar+ adx + cmf + rsi Strategy", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 ) start = input(1.02) increment = input(1.02) maximum = input(1.2) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) //rsi strat length = input( 50 ) middle_RSI=input(49) price = close vrsi = rsi(price, length) //cmf lengthCMF = input(20, minval=1) ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume mf = sum(ad, lengthCMF) / sum(volume, lengthCMF) //ADX adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) ema_length=input(10) ema_sig= ema(sig,ema_length) long = not uptrend and vrsi > middle_RSI and sig > ema_sig and mf>0 short= uptrend and vrsi < middle_RSI and sig<ema_sig and mf<0 strategy.entry("long",1,when=long) strategy.close('long',when=short)