Strategi pullback purata bergerak mengesan persimpangan purata bergerak harga, dan mengenal pasti peluang pullback untuk membuat perdagangan kontra-trend apabila persimpangan emas berlaku.
Inti strategi ini melibatkan dua purata bergerak - EMA 14 hari dan SMA 56 hari. Ia mencetuskan isyarat beli apabila EMA 14 hari melintasi di atas SMA 56 hari dari bawah. Selepas itu, strategi melihat ke belakang 20 hari untuk mencari swing rendah sebagai sokongan. Digabungkan dengan harga penutupan pada titik persimpangan, garis tarik balik Fibonacci digambarkan, dengan 1.272 garis tarik balik sebagai pintu masuk dan 0.618 sebagai pintu keluar. Oleh itu, strategi menetapkan titik masuk untuk pergi pendek selepas salib emas, dan mengambil keuntungan jika harga benar-benar menarik kembali ke garis 0.618.
Langkah-langkah utama strategi ini ialah:
Di atas menjelaskan aliran kerja utama dan logik di sebalik strategi penarikan ini.
Kelebihan utama strategi pulback purata bergerak ini adalah:
Ringkasnya, ini sangat sesuai untuk perdagangan gaya pembalikan purata jangka pendek. Ia menangkap peluang mundur untuk keuntungan. Strategi ini juga mudah dan mudah dilaksanakan.
Walaupun ada kebaikan, terdapat juga risiko tertentu untuk diperhatikan untuk strategi ini:
Untuk mengurangkan risiko, kita boleh menetapkan jangka masa stop loss yang pendek untuk mengawal kerugian; juga mengoptimumkan julat garis tarik balik untuk menyasarkan sasaran keuntungan yang munasabah.
Masih banyak ruang untuk mengoptimumkan strategi pulback purata bergerak ini:
Uji tetapan parameter yang berbeza pada item seperti tempoh purata bergerak, hari melihat kembali, kelipatan Fibonacci dan lain-lain untuk mencari optimum;
Tambahkan mekanisme stop loss seperti stop berbilang atau trailing stop untuk mengawal risiko dengan lebih baik;
Memperkenalkan penunjuk lain sebagai FILTER untuk mengelakkan keadaan pasaran yang tidak sesuai;
Mengoptimumkan ukuran kedudukan dan peraturan pengurusan risiko.
Melalui ujian dan pengoptimuman yang ketat, peningkatan yang ketara dapat dicapai untuk strategi perdagangan ini.
Strategi pulback purata bergerak adalah strategi perdagangan jangka pendek yang sangat praktikal. Ia menangkap peluang membalikkan purata apabila harga menarik balik dalam jangka pendek. Idea strategi adalah mudah dan mudah difahami. Masih ada risiko yang perlu ditangani melalui pengoptimuman dan kawalan risiko. Secara keseluruhan ini adalah strategi kuantitatif yang menjanjikan yang layak untuk penyelidikan dan penerapan lanjut.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MAC Pullback", overlay=true) // Setting up timeperiod for testing startPeriodYear = input(2014, "Backtest Start Year") startPeriodMonth = input(1, "Backtest Start Month") startPeriodDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0) stopPeriodYear = input(2035, "Backtest Stop Year") stopPeriodMonth = input(12, "Backtest Stop Month") stopPeriodDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0) // Moving Averages ema14 = ema(close, 14) ema28 = ema(close, 28) sma56 = sma(close, 56) // Plot plot(ema14, title="ema14", linewidth=2, color=green) plot(ema28, title="ema28", linewidth=2, color=red) plot(sma56, title="sma56", linewidth=3, color=blue) // Strategy goLong = cross(ema14, sma56) and ema14 > ema28 goShort = cross(ema14, sma56) and ema14 < ema28 // Locate Swing Lows leftBars = input(20) rightBars=input(20) swinglow = pivotlow(close, leftBars, rightBars) plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars) if goLong == true and time >= testPeriodStart and time <= testPeriodStop // We try to make sure that we're catching the first Pullback after the crossover if ema14[12] < sma56[12] pivotpoint = lowest(40)[0] //lowest value of the month as our swing low // We calculate a Fib 1.272 extension (from the previous swing low to // the crossover long entry's open) and use this as our entry target to short the Pullback extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget) // I would like to use a trailing stop but for know we just hope to get // filled if the pullback reaches all the way down to the 0.618. // We also place a tight stop loss since we trying to short an uptrend strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)