Strategi ini dinamakan
Inti strategi ini adalah menggunakan penunjuk Supertrend untuk menentukan trend harga semasa. Supertrend menggabungkan purata bergerak dan ATR, yang berkesan dalam menilai arah trend harga. Apabila arah Supertrend membuat pembalikan, ia menandakan bahawa trend harga berubah.
Secara khusus, strategi ini mula-mula mengira arah Supertrend, RSI dan ADX. Apabila Supertrend berubah ke bawah, dan RSI menunjukkan bahawa trend menaik semakin memudar, ia membuat entri pendek. Apabila Supertrend muncul lagi, ia menutup kedudukan pendek.
Kelebihan terbesar strategi ini adalah bahawa ia dapat mengenal pasti trend harga secara automatik dan membuat entri dan keluar berdasarkan trend, tanpa penilaian manual.
Risiko terbesar adalah bahawa Supertrend itu sendiri tidak sangat tepat dalam menilai trend harga, yang mungkin menghasilkan isyarat yang salah.
Pengoptimuman boleh dibuat dengan menyesuaikan parameter Supertrend dan menambah kerugian berhenti untuk mengurangkan risiko.
Beberapa aspek strategi ini boleh dioptimumkan:
Mengoptimumkan parameter Supertrend untuk meningkatkan ketepatan
Tambah kerugian hentian ke kawalan setiap kerugian perdagangan
Tambah lebih banyak penapis seperti Bollinger Bands, KDJ untuk meningkatkan keuntungan
Membangunkan peraturan masuk dan keluar yang sama untuk membuat strategi lengkap
Kesimpulannya, ini adalah strategi perdagangan automatik yang menilai trend berdasarkan Supertrend. Kelebihannya adalah tahap automatik yang tinggi dan pengesanan trend automatik. Kelemahannya adalah ketepatan Supertrend itu sendiri yang rendah dan tidak ada stop loss. Penyesuaian parameter, penambahan penapis, dan stop loss dapat meningkatkan keuntungan dan kawalan risiko.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Strategy", overlay=true) atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) [_, direction] = ta.supertrend(factor, atrPeriod) adxlen = input(7, title="ADX Smoothing") dilen = input(7, title="DI Length") dirmov(len) => up = ta.change(high) down = -ta.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 = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) adx sig = adx(dilen, adxlen) if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20 strategy.entry("My Long Entry Id", strategy.long) if ta.change(direction) > 0 strategy.close("My Long Entry Id") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)