Strategi Tren yang Didorong Likuiditas - Strategi Perdagangan Kuantitas Berdasarkan Indikasi Tren Aliran

Penulis:ChaoZhang, Tanggal: 2023-12-21 10:19:52
Tag:

img

Gambaran umum

Strategi ini disebut Liquidity Driven Trend Strategy. Ini bertujuan untuk mengidentifikasi arah tren harga di berbagai kerangka waktu dan membuat keputusan panjang atau pendek yang sesuai. Strategi ini menggunakan sistem rata-rata bergerak ganda untuk menentukan tren dan menggunakan perbedaan antara nilai Relative Strength Index (RSI) di beberapa kerangka waktu untuk merespons perubahan tren tepat waktu.

Logika Strategi

Logika inti dari strategi ini didasarkan pada indikator CHOP, di mana sistem rata-rata bergerak menilai arah tren keseluruhan. Secara khusus, strategi menghitung nilai RSI dari garis cepat (Length = 20) dan garis lambat (Length = 50) pada kerangka waktu yang lebih tinggi, dan menghitung perbedaan antara kedua garis RSI. Ketika RSI garis cepat melintasi di atas RSI garis lambat, itu menandakan tren naik dan memicu sinyal panjang. Sebaliknya, jika RSI garis cepat melintasi di bawah RSI garis lambat, itu menunjukkan tren menurun dan menghasilkan sinyal pendek. Perbedaan RSI yang bervariasi yang didorong oleh kenaikan harga dan dapat secara sensitif mengidentifikasi titik perubahan tren.

Strategi ini juga memperkenalkan mekanisme multi-frame waktu: itu menghitung perbedaan RSI pada kerangka waktu yang lebih tinggi (misalnya harian) untuk menentukan arah tren keseluruhan, dan kemudian mengeksekusi pesanan beli dan jual yang sebenarnya pada kerangka waktu yang lebih rendah (misalnya 5 menit) berdasarkan penilaian tren kerangka waktu yang lebih tinggi.

Keuntungan dari Strategi

  • Menangkap potensi pembalikan tren secara sensitif sebelum waktu menggunakan divergensi RSI
  • Menerapkan konsep multi-frame waktu untuk menentukan tren pada TF yang lebih tinggi dan mengeksekusi pesanan pada TF yang lebih rendah
  • RSI mencerminkan perubahan harga dan volume, menunjukkan likuiditas dan partisipasi pasar
  • Pengaturan parameter sederhana, mudah dimengerti, dijelaskan dan disetel

Risiko & Solusi

  • Pembebasan palsu mungkin terjadi dengan sistem MA ganda
  • Kegagalan melarikan diri dapat menyebabkan kerugian yang tidak perlu

Solusi:

  1. Sesuaikan parameter MA untuk mengurangi probabilitas pecah palsu
  2. Tambahkan filter untuk menghindari entri yang tidak perlu

Arahan Optimasi

  • Mengoptimalkan parameter RSI menggunakan algoritma Kalman Filter
  • Tambahkan MACD dan indikator lain untuk membantu penilaian
  • Menetapkan posisi keluar dinamis berdasarkan perubahan volume perdagangan

Kesimpulan

Strategi ini memanfaatkan divergensi RSI untuk menangkap titik balik potensial tren secara sensitif. Aplikasi multi-frame waktu memastikan menilai tren keseluruhan sambil menjaga eksekusi perdagangan tertentu fleksibel. Dibandingkan dengan strategi tren berikut lainnya, strategi ini lebih mudah, intuitif dalam penyesuaian parameter dan mudah dioptimalkan.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Flow Trend Indicator Strategy", "FlowTI", overlay=true, calc_on_every_tick=true)

isTimeFrame(timeFrame) =>
    timeFrame == timeframe.period ? true : false

Htf() =>
    isTimeFrame("12") ? "60" : isTimeFrame("60") ? "300" : isTimeFrame("300") ? "D" : isTimeFrame("D") ? "W" : isTimeFrame("W") ? "M" : isTimeFrame("M") ? "5M" : "D"

TrendIndication() =>
    trendFastLength = 20
    trendSlowLength = 50
    upFastHtf = request.security(syminfo.tickerid, Htf(), rma(max(change(close), 0), trendFastLength), barmerge.gaps_off, barmerge.lookahead_on)
    downFastHtf = request.security(syminfo.tickerid, Htf(), rma(-min(change(close), 0), trendFastLength), barmerge.gaps_off, barmerge.lookahead_on)
    rsiFastHtf = downFastHtf == 0 ? 100 : upFastHtf == 0 ? 0 : 100 - (100 / (1 + upFastHtf / downFastHtf))
    upSlowHtf = request.security(syminfo.tickerid, Htf(), rma(max(change(close), 0), trendSlowLength), barmerge.gaps_off, barmerge.lookahead_on)
    downSlowHtf = request.security(syminfo.tickerid, Htf(), rma(-min(change(close), 0), trendSlowLength), barmerge.gaps_off, barmerge.lookahead_on)
    rsiSlowHtf = downSlowHtf == 0 ? 100 : upSlowHtf == 0 ? 0 : 100 - (100 / (1 + upSlowHtf / downSlowHtf))
    rsiDiff = rsiFastHtf - rsiSlowHtf
    crossover(rsiDiff, 0) ? true : crossunder(rsiDiff, 0) ? false : na

if (TrendIndication() == true)
    strategy.entry("Long", strategy.long)

if (TrendIndication() == false)
    strategy.entry("Short", strategy.short)

Lebih banyak