Strategi Filter RSI Tanpa Deviasi Awan Ichimoku


Tanggal Pembuatan: 2023-11-07 15:31:06 Akhirnya memodifikasi: 2023-11-07 15:31:06
menyalin: 0 Jumlah klik: 474
1
fokus pada
1217
Pengikut

Strategi Filter RSI Tanpa Deviasi Awan Ichimoku

Ringkasan

Ini adalah strategi pelacakan tren yang menggunakan indikator awan keseimbangan sekilas untuk menilai tren, dan digabungkan dengan indikator RSI untuk memfilter. Strategi ini mengabaikan pergeseran pengamatan, dapat menangkap perubahan tren secara tepat waktu, dan memfilter terobosan palsu melalui indikator RSI untuk mengendalikan risiko perdagangan.

Prinsip Strategi

Strategi ini terutama didasarkan pada awan keseimbangan pertama (Ichimoku Cloud) untuk menentukan arah tren. Awan keseimbangan pertama terdiri dari garis konversi GC, garis acuan, garis panduan 1, garis panduan 2, dan garis penundaan. Strategi ini menggunakan awan keseimbangan pertama tanpa bias, yaitu garis konversi, garis acuan, dan lain-lain menggunakan nilai masa depan, sehingga menghindari keterlambatan penilaian tren akibat bias pengamatan.

Strategi pertama menilai apakah harga menembus garis awan, jika garis penundaan melewati garis awan, maka dianggap sebagai memulai tren naik; jika melewati garis awan, maka dianggap sebagai memulai tren turun. Setelah tren dimulai, strategi terus melacak hubungan harga dengan garis awan, untuk menilai arah tren yang berkelanjutan. Ketika garis penundaan terus bertahan di atas garis awan, dianggap sebagai tren naik; sebaliknya, dianggap sebagai tren turun.

Selain menilai tren, strategi ini juga akan menghasilkan sinyal beli ketika garis konversi dan garis acuan bersilang dengan emas, dan menghasilkan sinyal jual ketika persilangan mati. Sinyal perdagangan ini hanya akan digunakan jika sesuai dengan arah tren. Misalnya, persilangan emas yang melintasi garis acuan di garis konversi hanya akan diterima dalam tren naik.

Akhirnya, strategi ini juga memperkenalkan indikator RSI untuk memfilter sinyal. Hanya ketika RSI berada di bawah zona oversold, sinyal beli akan diterima; hanya ketika RSI berada di atas zona oversold, sinyal jual akan diterima. Ini dapat memfilter sinyal salah yang disebabkan oleh false breakout hingga batas tertentu.

Analisis Keunggulan

  • Menggunakan indikator awan keseimbangan tanpa bias, dapat menilai perubahan tren secara tepat waktu, tidak akan melewatkan waktu pembalikan
  • Multiple Conditional Integrated Judgment, yang efektif memfilter sinyal palsu yang dihasilkan oleh penembusan palsu
  • Pengenalan indikator RSI dapat menghindari masuk yang tidak diinginkan dalam kasus overbought dan oversold
  • Strategi ini dioptimalkan untuk data masa depan, dan juga untuk mendapatkan hasil yang lebih baik di dunia nyata.

Analisis risiko

  • Mengingat data masa depan akan menyebabkan kesalahan, kode harus dioptimalkan untuk digunakan di hard disk
  • Indikator awan keseimbangan pertama-tama lebih sensitif terhadap parameter, dan parameter perlu disesuaikan dengan varietas yang berbeda untuk mendapatkan hasil yang optimal
  • Perdagangan varietas tunggal akan lebih efektif, dan perdagangan varietas ganda harus mempertimbangkan hubungan antar varietas.
  • Ada lebih banyak aturan untuk menilai tren, yang membutuhkan periode pengujian ulang yang cukup untuk memverifikasi efeknya

Anda dapat menemukan kombinasi optimal dengan mengoptimalkan parameter. Anda dapat mempertimbangkan untuk hanya memperdagangkan varietas tertentu atau mengurangi jumlah pemain yang membuka posisi untuk mengontrol risiko di real time. Anda juga dapat memperkenalkan strategi stop loss untuk membatasi kerugian tunggal.

Arah optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:

  1. Mengoptimalkan parameter awan ekuilibrium untuk menemukan kombinasi optimal dari berbagai jenis transaksi

  2. Menambahkan strategi stop loss yang dapat mengendalikan kerugian tunggal dalam kisaran yang dapat ditanggung

  3. Meningkatkan strategi manajemen posisi untuk mengelola peluang risiko secara keseluruhan dengan penyesuaian skala posisi

  4. Memperkenalkan lebih banyak indikator untuk penilaian komprehensif, seperti indikator volatilitas, volume transaksi, dan lain-lain, untuk meningkatkan akurasi sinyal

  5. Optimalkan pilihan waktu masuk, dapat menggunakan konfirmasi terobosan atau panggilan kembali masuk

  6. Optimalkan langkah demi langkah, pilih parameter siklus beludru yang optimal sesuai dengan karakteristik varietas yang berbeda

Meringkaskan

Strategi ini secara keseluruhan adalah strategi pelacakan tren yang lebih kuat. Ini menggunakan arah arah tren yang ditentukan oleh indikator awan ekuilibrium pada pandangan pertama, kemudian menggabungkan garis konversi dan garis acuan untuk mengirimkan sinyal perdagangan, dan akhirnya melalui RSI untuk memfilter terobosan palsu. Ada banyak ruang untuk mengoptimalkan strategi, dan hasil yang lebih baik dapat diperoleh dengan pengoptimalan parameter tuning, strategi stop loss, dan manajemen posisi.

Kode Sumber Strategi
/*backtest
start: 2022-10-31 00:00:00
end: 2023-02-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/
// © KryptoNight

//@version=4
// comment/uncomment Study/Strategy to easily switch modes
// study("Ichimoku Kinko Hyo Cloud - no offset - no repaint - RSI filter - alerts", shorttitle="IchiCloud + RSI - alerts", overlay=true)
// ============================================================================== Strategy mode - uncomment to activate
strategy("Ichimoku Kinko Hyo Cloud - no offset - no repaint - RSI filter - strategy", shorttitle="IchiCloud + RSI - Strategy Tester Mode", overlay=true, pyramiding = 0,
  currency = currency.USD, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100,
  calc_on_every_tick = true, calc_on_order_fills = true, commission_type = strategy.commission.percent, commission_value = 0.075)
// ==============================================================================

// ------------------------------------------------------------------------------

ichiCloud_offset   = input(false, title="Standard Ichimoku Cloud")                  // with the visual offset
ichiCloud_noOffset = input(true,  title="Ichimoku Cloud - no offset - no repaint")  // without the visual offset

conversion_prd = input(9, minval=1, title="Conversion Line Period - Tenkan-Sen")
baseline_prd   = input(26, minval=1, title="Base Line Period - Kijun-Sen")
baselineA_prd  = input(52, minval=1, title="Base Line Period - Kijun-Sen (auxiliary)")
leadingSpan_2prd = input(52, minval=1, title="Lagging Span 2 Periods - Senkou Span B")
displacement = input(26, minval=0, title="Displacement: (-) Chikou Span; (+) Senkou Span A")
extra_bars = input(1, minval=0, title="Displacement: additional bars")
laggingSpan_src = input(close, title="Lagging Span price source - Chikou-Span")

donchian(len) => avg(lowest(len), highest(len))
displ = displacement-extra_bars
// ------------------------------------------------------------------------------
// OFFSET:
conversion = donchian(conversion_prd)   // Conversion Line - Tenkan-Sen (9 Period)
baseline  = donchian(baseline_prd)      // Base Line - Kijun-Sen (26 Period)
baselineA = donchian(baselineA_prd)     // Base Line Period - Kijun-Sen (auxiliary)
leadingSpanA = avg(conversion, baseline)
leadingSpanB = donchian(leadingSpan_2prd)
laggingSpan = laggingSpan_src

// Color - bullish, bearish
col_cloud = leadingSpanA>=leadingSpanB ? color.green : color.red

// Cloud Lines
spanA = plot(ichiCloud_offset? leadingSpanA : na, offset=displ, title="Offset: Lead Line 1 - Senkou Span A cloud", color=color.green)
spanB = plot(ichiCloud_offset? leadingSpanB : na, offset=displ, title="Offset: Lead Line 2 - Senkou Span B cloud", color=color.red)
fill(spanA, spanB, color=col_cloud, transp=80, title="Offset: Ichimoku Cloud - Leading Span 1 & 2 based coloring")

// Other Lines
conversion_p = plot(ichiCloud_offset? conversion : na, title="Offset: Conversion Line - Tenkan-Sen", color=#0496ff)
standard_p = plot(ichiCloud_offset? baseline : na, title="Offset: Base Line - Kijun-Sen", color=#991515)
standardA_p = plot(ichiCloud_offset? baselineA : na, title="Offset: Base Line - Kijun-Sen (auxiliary)", color=color.teal)
lagging_Span_p = plot(ichiCloud_offset? laggingSpan : na, offset=-displ, title="Offset: Chikou Span (Lagging Span)", color=#459915)

// ------------------------------------------------------------------------------
// NO OFFSET:
conversion_noOffset = conversion[displ] // Conversion Line - Tenkan-Sen (9 Period)
baseline_noOffset  = baseline[displ]    // Base Line - Kijun-Sen (26 Period)
baselineA_noOffset = baselineA[displ]   // Base Line Period - Kijun-Sen (auxiliary)
leadingSpanA_noOffset = leadingSpanA[displ*2]
leadingSpanB_noOffset = leadingSpanB[displ*2]
laggingSpan_noOffset = laggingSpan[0]

// Color - bullish, bearish
col_cloud_noOffset = leadingSpanA_noOffset>=leadingSpanB_noOffset ? color.green : color.red

// Cloud Lines
spanA_noOffset = plot(ichiCloud_noOffset? leadingSpanA_noOffset : na, title="No offset: Lead Line 1 - Senkou Span A cloud", color=color.green, transp=0)
spanB_noOffset = plot(ichiCloud_noOffset? leadingSpanB_noOffset : na, title="No offset: Lead Line 2 - Senkou Span B cloud", color=color.red, transp=0)
fill(spanA_noOffset, spanB_noOffset, color=col_cloud_noOffset, transp=80, title="No offset: Ichimoku Cloud - Leading Span 1 & 2 based coloring")

// Other Lines
conversion_p_noOffset = plot(ichiCloud_noOffset? conversion_noOffset : na, title="No offset: Conversion Line - Tenkan-Sen", color=#0496ff, transp=0)
baseline_p_noOffset = plot(ichiCloud_noOffset? baseline_noOffset : na, title="No offset: Base Line - Kijun-Sen", color=#991515, transp=0)
baselineA_p_noOffset = plot(ichiCloud_noOffset? baselineA_noOffset : na, title="No offset: Base Line - Kijun-Sen (auxiliary)", color=color.teal, transp=0)
laggingSpan_p_noOffset = plot(ichiCloud_noOffset? laggingSpan_noOffset : na, title="No offset: Chikou Span (Lagging Span)", color=#459915, transp=0)

// ==============================================================================
// Conditions & Alerts (based on the lines without offset)

maxC = max(leadingSpanA_noOffset,leadingSpanB_noOffset)
minC = min(leadingSpanA_noOffset,leadingSpanB_noOffset)

// Trend start signals: crosses between Chikou Span (Lagging Span) and the Cloud (Senkou Span A, Senkou Span B)
uptrend_start   = crossover(laggingSpan_noOffset,maxC)
downtrend_start = crossunder(laggingSpan_noOffset,minC)

// Trends
uptrend   = laggingSpan_noOffset>maxC // Above Cloud
downtrend = laggingSpan_noOffset<minC // Below Cloud

// No trend: choppy trading - the price is in transition
notrend = maxC>=laggingSpan_noOffset and laggingSpan_noOffset>=minC

// Confirmations
uptrend_confirm   = crossover(leadingSpanA_noOffset,leadingSpanB_noOffset)
downtrend_confirm = crossunder(leadingSpanA_noOffset,leadingSpanB_noOffset)

// Signals - crosses between Conversion Line (Tenkan-Sen) and Base Line (Kijun-Sen)
bullish_signal = crossover(conversion_noOffset,baseline_noOffset)
bearish_signal = crossunder(conversion_noOffset,baseline_noOffset)

// Various alerts
alertcondition(uptrend_start,   title="Uptrend Started",   message="Uptrend Started")
alertcondition(downtrend_start, title="Downtrend Started", message="Downtrend Started")

alertcondition(uptrend_confirm,   title="Uptrend Confirmed",   message="Uptrend Confirmed")
alertcondition(downtrend_confirm, title="Downtrend Confirmed", message="Downtrend Confirmed")

alertcondition(bullish_signal, title="Buy Signal",  message="Buy Signal")
alertcondition(bearish_signal, title="Sell Signal", message="Sell Signal")

rsi_OBlevel = input(50, title="RSI Filter: Overbought level (0 = off)")
rsi_OSlevel = input(100,title="RSI Filter: Oversold level (100 = off)")
rsi_len = input(14,title="RSI Length")
rsi_src = input(close,title="RSI Price source")
rsi = rsi(rsi_src,rsi_len)

// Strategy -------------------------------
long_signal  = bullish_signal and uptrend   and rsi<=rsi_OSlevel // breakout filtered by the rsi
exit_long    = bearish_signal and uptrend
short_signal = bearish_signal and downtrend and rsi>=rsi_OBlevel // breakout filtered by the rsi
exit_short   = bullish_signal and downtrend

// Strategy alerts
alertcondition(long_signal, title="Long Signal - Uptrend",      message="Long Signal - Uptrend")
alertcondition(exit_long,   title="Long Exit Signal - Uptrend", message="Long Exit Signal - Uptrend")

alertcondition(short_signal, title="Long Signal - Downtrend",       message="Long Signal - Downtrend")
alertcondition(exit_short,   title="Short Exit Signal - Downtrend", message="Short Exit Signal - Downtrend")

// Plot areas for trend and transition
color_trend = uptrend? #00FF00 : downtrend? #FF0000 : notrend? color.new(#FFFFFF, 50) : na
fill(spanA_noOffset, spanB_noOffset, color=color_trend, transp=90, title="No offset: Ichimoku Cloud - Lagging Span & Cloud based coloring")

plotshape(ichiCloud_noOffset?uptrend_start:na, title="No offset: Uptrend Started", color=color.green, style=shape.circle, location=location.belowbar, size=size.tiny, text="Up")
plotshape(ichiCloud_noOffset?downtrend_start:na, title="No offset: Downtrend Started", color=color.red, style=shape.circle,location=location.abovebar, size=size.tiny, text="Down")

plotshape(ichiCloud_noOffset?uptrend_confirm:na, title="No offset: Uptrend Confirmed", color=color.green, style=shape.circle, location=location.belowbar, size=size.small, text="Confirm Up")
plotshape(ichiCloud_noOffset?downtrend_confirm:na, title="No offset: Downtrend Confirmed", color=color.red, style=shape.circle, location=location.abovebar, size=size.small, text="Confirm Down")

plotshape(ichiCloud_noOffset?long_signal:na, title="No offset: Long Signal", color=#00FF00, style=shape.triangleup, location=location.belowbar, size=size.small, text="Long")
plotshape(ichiCloud_noOffset?exit_long:na, title="No offset: Exit Long Signal", color=color.fuchsia, style=shape.triangledown, location=location.abovebar, size=size.small, text="Exit long")

plotshape(ichiCloud_noOffset?short_signal:na, title="No offset: Short Signal", color=#FF0000, style=shape.triangledown, location=location.abovebar, size=size.small, text="Short")
plotshape(ichiCloud_noOffset?exit_short:na, title="No offset: Exit Short Signal", color=color.fuchsia, style=shape.triangleup, location=location.belowbar, size=size.small, text="Exit short")

// ============================================================================== Strategy Component - uncomment to activate
if (long_signal)
    strategy.entry("Long",strategy.long)
if (exit_long)
    strategy.close("Long")
if (short_signal)
    strategy.entry("Short",strategy.short)
if (exit_short)
    strategy.close("Short")
// ==============================================================================