Pertukaran purata bergerak berganda digabungkan dengan RSI Indikator Strategi Dagangan Kuantitatif

Penulis:ChaoZhang, Tarikh: 2023-11-21 12:09:50
Tag:

img

Ringkasan

Strategi ini menggabungkan crossover purata bergerak berganda dan penunjuk RSI untuk mengenal pasti arah trend dan situasi overbought / oversold. Ia pergi lama apabila syarat membeli dipenuhi dan menutup kedudukan apabila syarat jual dicetuskan. Matlamatnya adalah untuk menggunakan crossover purata bergerak untuk menentukan arah trend sambil menggunakan penunjuk RSI untuk mengelakkan membeli secara salah di puncak dan menjual di bawah, dengan itu menjana keuntungan yang lebih baik.

Logika Strategi

Apabila purata bergerak 9 tempoh yang cepat melintasi di atas purata bergerak 50 tempoh yang perlahan, ia menandakan trend menaik dalam jangka masa yang lebih pendek bertindih dengan trend menaik dalam jangka masa yang lebih lama, yang merupakan isyarat bullish biasa. Sementara itu, jika RSI lebih besar daripada tempoh sebelumnya sebanyak 5 mata dan kurang dari 70, ia bermakna aset itu mendekati tetapi belum berada di wilayah yang terlalu banyak dibeli, menjadikannya waktu yang baik untuk pergi lama.

Apabila purata bergerak 9 tempoh yang cepat melintasi di bawah purata bergerak 50 tempoh yang perlahan, ia menandakan permulaan pasaran menurun dan kedudukan panjang yang sedia ada harus ditutup.

Analisis Kelebihan

  • Purata bergerak berganda membantu menentukan arah pasaran secara keseluruhan dan mengelakkan pecah palsu
  • Indikator RSI menghalang pergerakan yang salah pada titik perubahan
  • Fleksibiliti dalam menyesuaikan tempoh purata bergerak untuk memenuhi simbol dan jangka masa yang berbeza
  • Strategi stop loss yang boleh dikawal

Analisis Risiko

  • Isyarat crossover mungkin kelewatan dan menyebabkan beberapa kerugian
  • Tetapan parameter RSI yang tidak betul mungkin terlepas masa kemasukan terbaik
  • Perlu menonton jumlah dagangan untuk melihat jika ia menyokong pergerakan harga
  • Peristiwa Black Swan memerlukan campur tangan manual

Arahan pengoptimuman

  • Mengoptimumkan parameter RSI untuk hasil yang terbaik
  • Menggabungkan jumlah dagangan untuk mengelakkan isyarat palsu
  • Uji tempoh purata bergerak optimum berdasarkan simbol dan jangka masa
  • Loloskan stop loss untuk mengelakkan berhenti lebih awal

Ringkasan

Strategi ini menggunakan crossover purata bergerak berganda untuk menentukan arah dan RSI untuk mengelakkan mengejar atas dan bawah. Ia boleh dengan berkesan menunggang trend jangka menengah hingga panjang untuk keuntungan yang mantap. Tetapi sifat yang tertinggal dari isyarat crossover dan penyesuaian parameter RSI harus diperhatikan. Juga perlu menghubungkan harga dengan jumlah. Dengan ujian dan pengoptimuman berterusan, strategi ini menunjukkan janji untuk hasil yang lebih baik.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 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/
// © joshuajcoop01

//@version=5
strategy("Bitpanda Coinrule Template",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)





Lebih lanjut