Sumber daya yang dimuat... Pemuatan...

Strategi Pembalikan Momentum

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

img

Gambaran umum

Strategi ini adalah strategi pembalikan momentum berdasarkan rata-rata bergerak dan indeks kekuatan relatif (RSI).

Logika Strategi

Strategi ini menggunakan rata-rata bergerak 14 hari sebagai garis sinyal cepat dan rata-rata bergerak 28 hari sebagai garis lambat.

Ketika MA 14 hari melintasi di atas MA 28 hari dan RSI di bawah 30 atau RSI di bawah 13, itu menandakan pembalikan momentum ke atas, mendorong masuk panjang. Ketika MA 14 hari melintasi kembali di bawah MA 28 hari, itu menandakan kegagalan pembalikan momentum yang mendorong keluar keuntungan parsial.

Selain itu, strategi ini memiliki mekanisme mengambil keuntungan parsial. Ketika keuntungan dari posisi terbuka mencapai tingkat mengambil keuntungan yang ditetapkan (default 8%), itu akan mengambil keuntungan parsial (default menjual 50%).

Analisis Keuntungan

Strategi ini menggabungkan keuntungan dari rata-rata bergerak sambil menghindari kerugian whipsaw.

  1. Menggunakan rata-rata bergerak cepat dan lambat menyaring beberapa kebisingan.

  2. Indikator RSI menunjukkan tingkat overbought dan oversold, menghindari mengejar level tertinggi baru.

  3. Keuntungan parsial mengunci beberapa keuntungan dan mengurangi risiko.

Analisis Risiko

  1. Strategi ini menggunakan RSI untuk memberikan konfirmasi tambahan, menyaring beberapa sinyal whipsaw.

  2. Tingkat mengambil keuntungan dapat disesuaikan untuk menyeimbangkan risiko versus imbalan.

Arahan Optimasi

  1. Uji kombinasi parameter yang berbeda dari rata-rata bergerak untuk menemukan pengaturan optimal.

  2. Uji batas RSI yang berbeda.

  3. Sesuaikan tingkat mengambil keuntungan parsial dan rasio penjualan untuk menyeimbangkan risiko / imbalan.

Kesimpulan

Secara keseluruhan ini adalah strategi reversi rata-rata yang khas. Ini menggunakan penyeberangan MA cepat / lambat untuk menentukan perubahan pasar yang dilengkapi dengan RSI untuk menyaring sinyal. Ini juga menerapkan pengambilan keuntungan parsial untuk mengunci beberapa keuntungan. Strategi ini sederhana namun praktis. Parameter dapat disesuaikan agar sesuai dengan kondisi pasar yang berbeda.


/*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 banyak