
Strategi ini menggunakan prinsip overbought dan oversold dari indikator RSI, untuk menilai dan melakukan operasi lintas-siklus. Strategi ini menilai sinyal overbought dan oversold berdasarkan pengaturan siklus RSI, dan menggunakan rata-rata bergerak RSI untuk memfilter, untuk menghindari sinyal yang salah. Ketika RSI naik melewati rata-rata bergeraknya, ia menghasilkan sinyal beli, dan ketika ia turun, ia menghasilkan sinyal jual, yang membentuk metode operasi silang rata-rata khas.
Strategi ini menghasilkan sinyal perdagangan terutama melalui penilaian overbought dan oversold dari indikator RSI. Indikator RSI mewakili indeks yang relatif kuat, dan rumus penghitungannya adalah: RSI = 100 - (100 / (1 + RS)), di mana RS sama dengan rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio.
Strategi ini mengatur satu parameter tinggi sobrecompra dan satu parameter rendah sobreventa, yang dinilai sebagai overbought ketika RSI lebih tinggi dari sobrecompra, dan dinilai sebagai oversold ketika RSI lebih rendah dari sobreventa. Strategi ini memiliki default sobrecompra 70 dan default sobreventa 30.
Untuk menghasilkan sinyal beli dan jual, strategi menggunakan filter rata-rata bergerak dari indikator RSI. Ketika indikator RSI melintasi rata-rata bergeraknya menghasilkan sinyal beli Es_compra, dan ketika melintasi rata-rata bergeraknya menghasilkan sinyal jual Es_venta.
Setelah menghasilkan sinyal beli dan jual, strategi membuka posisi untuk melakukan perdagangan overhead atau overhead. Selain itu, strategi juga mengatur stop loss dan stop loss, “%”, untuk mencegah kerugian berkembang dan mengunci keuntungan.
Menggunakan indikator RSI untuk menilai kondisi overbought dan oversold, hindari mengejar high dan low.
Aplikasi rata-rata bergerak dari indikator RSI untuk memfilter dan menghindari sinyal palsu.
Kombinasi pengaturan multi-siklus dari indikator RSI untuk sinyal perdagangan yang lebih stabil.
Menetapkan mekanisme penghentian kerusakan untuk mengontrol risiko secara efektif.
Strategi logisnya sederhana dan jelas, mudah dipahami dan dimodifikasi.
Parameter yang dapat disesuaikan untuk varietas dan siklus yang berbeda.
Indeks RSI terbelakang, mungkin melewatkan saat terbaik untuk membalikkan harga.
Rata-rata bergerak menyebabkan sinyal perdagangan terlambat dan tidak dapat menangkap pembalikan tren tepat waktu.
Pengaturan parameter overbought dan oversold yang tetap tidak cukup fleksibel, dan perlu disesuaikan dengan siklus dan varietas yang berbeda.
Stop loss yang tidak tepat dapat menyebabkan kerugian atau kehilangan keuntungan.
Posisi kosong multihead hanya dimiliki oleh satu orang dan tidak dapat memanfaatkan dana secara penuh untuk melakukan perdagangan diferensial.
Dalam kombinasi dengan indikator lain seperti MACD, KD dan lain-lain untuk menilai sinyal perdagangan.
Menggunakan Adaptive Moving Average untuk melacak tren.
Setting dynamic overbought and oversold parameter, disesuaikan dengan volatilitas pasar.
Mengoptimalkan algoritma stop loss seperti tracking stop loss.
Menambahkan mekanisme manajemen posisi, menyesuaikan posisi secara dinamis sesuai dengan skala dana.
Menambahkan filter tren untuk menghindari perdagangan yang sering terjadi di pasar yang bergejolak.
Melakukan pengujian ulang parameter optimasi dan memilih kombinasi parameter optimal.
Strategi ini didasarkan pada indikator RSI overbought oversold, menggunakan moving average untuk memfilter menghasilkan sinyal perdagangan, untuk mencapai metode perdagangan lintas siklus yang khas. Strategi ini memiliki struktur logis yang jelas dan pengaturan parameter, dapat diterapkan dengan menyesuaikan parameter untuk berbagai varietas dan periode, merupakan strategi perdagangan lintas siklus yang andal dan efektif. Namun, alat-alat seperti indikator RSI dan moving average juga memiliki keterbatasan tertentu, perlu dioptimalkan lebih lanjut untuk membuat parameter strategi lebih adaptif, filter lebih efektif, meminimalkan risiko dan meningkatkan keuntungan.
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
basePeriod: 1m
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/
// © samuelkanneman
//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)
//////Proceso///////
mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)
Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)
comprado= strategy.position_size > 0
vendido = strategy.position_size < 0
//time to test
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)
// long
if (not comprado and Es_compra and dateFilter )
// realizar long
cantidad = strategy.equity/hlc3
strategy.entry ("compra", strategy.long , cantidad)
SL := close*(1-(StopLoss/100))
TP := close*(1+(TakeProfit/100))
if close >= TP
strategy.close ("compra" , comment="Salto TP")
if (comprado and Es_venta )
strategy.close ("compra" , comment="Sobre Venta")
if close <= SL
strategy.close ("compra" , comment="Salto SL")
// short
if (not vendido and Es_venta and dateFilter )
// realizar short
cantidad = strategy.equity/hlc3
strategy.entry ("venta", strategy.short , cantidad)
SL := close*(1+(StopLoss/100))
TP := close*(1-(TakeProfit/100))
if close <= TP
strategy.close ("venta" , comment="Salto TP")
if (vendido and Es_compra )
strategy.close ("venta" , comment="Sobre Compra")
if close >= SL
strategy.close ("venta" , comment="Salto SL")
///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)
bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)
// 1d 70 22 5 4 3 15 6 meses
//1h 70 20 6 4 5 7 1 mese
//15m 70 20 5 4 4 7 1 semana