Artikel ini menerangkan secara terperinci strategi perdagangan kuantitatif yang menggabungkan kedua-dua teknik pembalikan purata dan trend berikut.
I. Logik Strategi
Strategi ini terutamanya menggunakan purata bergerak mudah dan penunjuk RSI untuk menjana isyarat perdagangan:
Apabila harga di bawah SMA 200 tempoh, ia menilai pasaran semasa sebagai trend menurun.
Apabila RSI di bawah 20, ia mengambil perdagangan pembalikan purata kontra-trend.
Apabila harga melebihi SMA 200 tempoh, ia menilai pasaran semasa sebagai trend menaik.
Apabila harga melintasi di atas SMA, ia mengambil perdagangan trend-mengikut.
Keluar dipicu apabila RSI melebihi 80 atau harga jatuh di bawah SMA dengan peratusan tertentu.
Ukuran kedudukan untuk pembalikan purata dan trend berikut boleh diselaraskan secara berasingan.
Strategi ini menggabungkan teknik pembalikan purata dan trend berikut dan menerapkannya di peringkat pasaran yang berbeza.
II. Kelebihan Strategi
Kelebihan utama ialah:
Menggabungkan dua teknik meningkatkan kebolehsesuaian strategi.
Ia boleh mencari peluang perdagangan di pasaran trend dan pelbagai.
Risiko boleh dikawal dengan menyesuaikan saiz kedudukan.
Tetapan parameter mudah menjadikannya mudah dilaksanakan.
III. Risiko yang berpotensi
Walau bagaimanapun, risiko adalah:
Penunjuk seperti SMA dan RSI mudah terdedah kepada pecah palsu.
Peralihan antara dua mod mungkin terlambat.
Pengurangan tertentu perlu ditanggung untuk keuntungan jangka panjang.
IV. Ringkasan
Ringkasnya, artikel ini telah menerangkan strategi kuantitatif menggunakan teknik pembalikan purata dan trend berikut. Ia boleh berdagang di peringkat pasaran yang berbeza untuk meningkatkan daya adaptasi. Tetapi risiko seperti kegagalan penunjuk dan pemindahan mod tertunda perlu diurus. Secara keseluruhan, ia menyediakan pendekatan yang fleksibel untuk menggabungkan teknik yang berbeza.
/*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)