Artikel ini menjelaskan secara rinci strategi perdagangan kuantitatif yang menggabungkan teknik reversi rata-rata dan tren berikut.
I. Logika Strategi
Strategi ini terutama menggunakan indikator RSI dan Simple Moving Average untuk menghasilkan sinyal perdagangan:
Ketika harga di bawah SMA 200 periode, ia menilai pasar saat ini sebagai tren penurunan.
Ketika RSI di bawah 20, itu mengambil perdagangan reversi rata-rata kontra-tren.
Ketika harga di atas SMA 200 periode, ia menilai pasar saat ini sebagai tren naik.
Ketika harga melintasi SMA, dibutuhkan perdagangan trend-mengikuti.
Keluar dipicu ketika RSI melebihi 80 atau harga turun di bawah SMA dengan persentase tertentu.
Ukuran posisi untuk reversi rata-rata dan trend berikut dapat disesuaikan secara terpisah.
Strategi ini menggabungkan teknik pengembalian rata-rata dan mengikuti tren dan menerapkannya di berbagai tahap pasar.
II. Keuntungan dari Strategi
Keuntungan utama adalah:
Menggabungkan dua teknik meningkatkan kemampuan adaptasi strategi.
Ini dapat menemukan peluang perdagangan di pasar tren dan berkisar.
Risiko dapat dikendalikan dengan menyesuaikan ukuran posisi.
Pengaturan parameter sederhana membuatnya mudah diterapkan.
III. Potensi Risiko
Namun, risikonya adalah:
Indikator seperti SMA dan RSI rentan terhadap kebocoran palsu.
Berganti antara dua mode mungkin terlambat.
Penarikan tertentu harus ditoleransi untuk keuntungan jangka panjang.
IV. Ringkasan
Secara singkat, artikel ini telah menjelaskan strategi kuantitatif yang menggunakan teknik reversi rata-rata dan tren berikut. Ini dapat diperdagangkan di tahap pasar yang berbeda untuk meningkatkan daya adaptasi. Tetapi risiko seperti kegagalan indikator dan penundaan beralih mode perlu dikelola. Secara keseluruhan, ini memberikan pendekatan yang fleksibel untuk menggabungkan teknik yang berbeda.
/*backtest start: 2022-09-07 00:00:00 end: 2023-04-05 00:00:00 period: 1d basePeriod: 1h 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/ // © I11L //@version=5 strategy("Mean Reversion and Trendfollowing", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false) // Input for the starting date start_date = input(timestamp("1 Feb 2000 12:00"), title="Starting Date") enableMeanReversion = input.bool(true) enableTrendfollowing = input.bool(true) trendPositionFactor = input.float(1) meanReversionPositionFactor = input.float(0.5) // Convert the input string to a timestamp start_ts = timestamp(year(start_date), month(start_date), dayofmonth(start_date), 0, 0) // Check if the current bar's time is greater than or equal to the start timestamp start_condition = time >= start_ts var tradeOrigin = "" sma200 = ta.sma(close,200) rsi2 = ta.rsi(close,2) isMeanReversionMode = close < sma200 or not(enableTrendfollowing) isTrendfollowingMode = close > sma200 or not(enableMeanReversion) isRsiBuy = rsi2 < 20 and enableMeanReversion isRsiClose = rsi2 > 80 and enableMeanReversion isSmaBuy = close > sma200 and enableTrendfollowing isSmaClose = close < sma200 * 0.95 and enableTrendfollowing isBuy = (isMeanReversionMode and isRsiBuy) or (isTrendfollowingMode and isSmaBuy) positionSizeFactor = isSmaBuy ? trendPositionFactor : meanReversionPositionFactor // Only execute the strategy after the starting date if (start_condition) if (isBuy and strategy.opentrades == 0) tradeOrigin := isSmaBuy ? "SMA" : "RSI" strategy.entry("My Long Entry Id", strategy.long, qty=(strategy.equity / close) * positionSizeFactor, comment=str.tostring(positionSizeFactor)) isClose = tradeOrigin == "SMA" ? isSmaClose : isRsiClose if (isClose) strategy.exit("Exit", limit = close) plot(sma200) plot(sma200 * 0.95, color=color.orange)