Strategi Pembalikan Momentum

Penulis:ChaoZhang, Tarikh: 2024-01-03 17:14:15
Tag:

img

Ringkasan

Strategi ini adalah strategi pembalikan momentum berdasarkan purata bergerak dan indeks kekuatan relatif (RSI). Ia menggunakan persilangan purata bergerak cepat dan perlahan bersama dengan isyarat overbought dan oversold untuk menentukan entri dan keluar.

Logika Strategi

Strategi ini menggunakan purata bergerak 14 hari sebagai garis isyarat cepat dan purata bergerak 28 hari sebagai garis perlahan. Ia juga menggabungkan penunjuk RSI untuk mengukur sama ada pasaran terlalu banyak dibeli atau terlalu banyak dijual.

Apabila MA 14 hari melintasi di atas MA 28 hari dan RSI di bawah 30 atau RSI di bawah 13, ia menandakan pembalikan momentum ke atas, mendorong masuk panjang.

Di samping itu, strategi ini mempunyai mekanisme mengambil keuntungan sebahagiannya. Apabila keuntungan kedudukan terbuka mencapai tahap mengambil keuntungan yang ditetapkan (default 8%), ia akan mengambil keuntungan sebahagiannya (default menjual 50%).

Analisis Kelebihan

Strategi ini menggabungkan kelebihan purata bergerak sambil mengelakkan kerugian whipsaw.

  1. Menggunakan purata bergerak pantas dan perlahan menapis beberapa bunyi bising.

  2. Indeks RSI menunjukkan tahap overbought dan oversold, mengelakkan mengejar paras tertinggi baru.

  3. Pengambilan keuntungan separa mengunci beberapa keuntungan dan mengurangkan risiko.

Analisis Risiko

  1. Perpindahan purata bergerak berganda boleh menghasilkan whipsaws, membawa kepada kerugian. Strategi ini menggunakan RSI untuk memberikan pengesahan tambahan, menapis beberapa isyarat whipsaw.

  2. Mengambil keuntungan separa boleh mengakibatkan kehilangan pergerakan yang lebih besar.

Arahan pengoptimuman

  1. Uji kombinasi parameter purata bergerak yang berbeza untuk mencari tetapan optimum.

  2. Uji tahap ambang RSI yang berbeza.

  3. Sesuaikan tahap mengambil keuntungan separa dan nisbah jual untuk mengimbangi risiko / ganjaran.

Kesimpulan

Secara keseluruhan, ini adalah strategi pembalikan purata biasa. Ia menggunakan persilangan MA cepat / perlahan untuk menentukan perubahan pasaran ditambah dengan RSI untuk menapis isyarat. Ia juga melaksanakan mengambil keuntungan separa untuk mengunci beberapa keuntungan. Strategi ini mudah namun praktikal. Parameter boleh diselaraskan untuk memenuhi keadaan pasaran yang berbeza.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "14/28 SMA and RSI", shorttitle = "14/28 SMA and RSI", overlay = false, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD)
src = close, len = input(14, minval=1, title="Length")
take_Profit=input(8, title="Take Profit")
quantityPercentage=input(50, title="Percent of Quantity to Sell")
closeOverbought=input(true, title="Close Overbought and Take Profit")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
longCondition = 0
sellCondition = 0
takeProfit = 0
quantityRemainder = 100
smaSignal = input(14, title="SMA Signal Period")
smaLong = input(28, title="SMA Longer Period")
if ((sma(close, smaSignal) >= sma(close, smaLong) and rsi<= 30) or (rsi<=13)) and strategy.position_size==0
    longCondition:=1

if longCondition==1
    strategy.entry("Buy", strategy.long)
    
profit = ((close-strategy.position_avg_price)/strategy.position_avg_price) * 100

if sma(close, smaSignal) <= sma(close, smaLong) and strategy.position_size>1
    sellCondition := 1

if strategy.position_size>=1
    if closeOverbought == true
        if profit>=take_Profit and takeProfit == 0
            strategy.exit("Take Profit", profit=take_Profit, qty_percent=quantityPercentage)
            takeProfit:=1
            quantityRemainder:=100-quantityPercentage
    if sellCondition == 1 and quantityRemainder<100
        strategy.close("Buy")

    if closeOverbought == false and rsi>70
        strategy.close("Take Profit")
        
plot(longCondition, "Buy Condition", green)
plot(takeProfit, "Partial Sell Condition", orange)
plot(sellCondition, "Sell Condition", red)

Lebih lanjut