Strategi pertukaran mata uang RSI berosilasi panjang dan pendek


Tanggal Pembuatan: 2023-12-25 13:49:48 Akhirnya memodifikasi: 2023-12-25 13:49:48
menyalin: 0 Jumlah klik: 607
1
fokus pada
1623
Pengikut

Strategi pertukaran mata uang RSI berosilasi panjang dan pendek

Ringkasan

Strategi pertukaran mata uang RSI yang bergeser adalah strategi perdagangan kuantitatif yang digunakan untuk cryptocurrency. Ini menggabungkan indikator teknis pasar RSI dengan indikator ICHIMOKU untuk mengidentifikasi sinyal bergeser pada saat harga bergejolak, untuk melakukan jual beli rendah. Ini berlaku untuk siklus garis tengah panjang, seperti 3-4 jam atau lebih.

Prinsip Strategi

Strategi ini didasarkan pada indikator dan aturan berikut:

Indeks ICHIMOKU

  • Jalur Tenkan: titik tengah harga tertinggi dan terendah dari 20 jalur K terakhir
  • Garis Kijun: titik tengah harga tertinggi dan terendah dari 50 Garis K terakhir
  • Jalur Senkou A: titik tengah antara Jalur Tenkan dan Jalur Kijun
  • Jalur Senkou B: titik tengah harga tertinggi dan terendah dari 120 jalur K terakhir
  • Garis Chikou: 30 Garis K teratas pada harga penutupan garis K saat ini

Indikator RSI

  • Kisaran 0-100
  • Lebih dari 50 adalah sinyal multihead, kurang dari 50 adalah sinyal kosong

Aturan masuk
Multiple entry: Menembus Jalur Kijun di Jalur Tenkan (Gold Cross) dan harga menembus Jalur Senkou A&B, sementara RSI lebih tinggi dari 50 Masuk kosong: Jalur Tenkan di bawah Jalur Kijun (Death Cross) dan harga turun di bawah Jalur Senkou A&B, sementara RSI di bawah 50

Keluar dari aturan
Hentikan kerusakan dengan segera saat muncul sinyal yang bertentangan dengan masuk

Kompleks strategi ini mempertimbangkan tren jangka menengah dan panjang, likuiditas jangka pendek, dan overbought dan oversold untuk menangkap peluang reversal dalam situasi yang bergolak. Ia juga menetapkan aturan stop loss untuk menghindari kerugian besar.

Analisis Keunggulan

1. Pengukuran komprehensif dari berbagai indikator untuk memastikan kepastian yang tinggi

Strategi ini juga mempertimbangkan tren ICHIMOKU dan mendukung penilaian resistensi, overbought dan oversold RSI, dan likuiditas ke arah entitas K-line, untuk memastikan keandalan sinyal.

2. Cocok untuk bergejolak, sering mendapat keuntungan

Strategi ini memanfaatkan peluang untuk membalikkan situasi yang bergejolak, dan memungkinkan terjadinya transaksi jual beli yang sering terjadi.

3. Mencegah Penembakan, Mengontrol Resiko

Strategi yang menyeluruh mempertimbangkan tren jangka panjang dan jangka pendek, untuk menghindari risiko penangkapan dan penurunan, serta menetapkan risiko penghindaran kerugian.

Analisis risiko

1. Mungkin melewatkan bagian dari operasi

Strategi ini didasarkan pada reversal, yang sering bergoyang-goyang ketika terjadi operasi jangka panjang.

2. Satu varietas, tidak dapat mendistribusikan risiko

Strategi hanya memperdagangkan varietas tunggal, tidak dapat mendistribusikan risiko sistematis pasar.

3. Hentikan kerugian dalam situasi ekstrim

Dalam situasi ekstrem, seperti lompatan udara, ledakan kapasitas, dan lain-lain, strategi dapat memicu stop loss dan memaksa keluar dari permainan.

Arah optimasi

1. Meningkatkan strategi stop loss dan mengurangi kerugian tunggal

Anda dapat mengatur stop loss bergerak atau stop loss persentase saldo untuk mengunci keuntungan dan mencegah keuntungan menjadi nol.

2. Mengintegrasikan relevansi indeks saham untuk mendistribusikan risiko pasar

Untuk mendistribusikan risiko sistematis di pasar, peluang perdagangan dapat ditemukan di varietas yang lebih relevan dengan indeks saham.

3. Meningkatkan filter kondisional untuk mengurangi transaksi yang tidak valid

Anda dapat mengatur filter kondisi seperti fluktuasi harga, perubahan volume transaksi, dan lain-lain, untuk menghindari sinyal pembalikan yang tidak efektif dan meningkatkan probabilitas keuntungan.

Meringkaskan

Strategi pertukaran mata uang RSI multi-kaca yang bergoyang menggunakan indikator ICHIMOKU dan indikator RSI untuk menilai titik balik cryptocurrency, cocok untuk situasi bergoyang. Ini juga mengatur aturan stop loss untuk mengendalikan risiko. Strategi ini dapat meningkatkan efektivitasnya dengan mengoptimalkan mekanisme stop loss, risiko dispersi asosiasi, dan penyaringan kondisi yang disetel.

Kode Sumber Strategi
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
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/
// © exlux99

//@version=4

strategy(title="Ichimoku + RSI Crypto trending strategy", overlay=true, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, pyramiding=1  )

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low


//Inputs
ts_bars = input(20, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(50, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(120, minval=1, title="Senkou-Span B Bars")
cs_offset = input(30, minval=1, title="Chikou-Span Offset")
ss_offset = input(30, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

//Volatility
//vollength = input(defval=1, title="VolLength")
//voltarget = input(defval=0., type=input.float, step=0.1, title="Volatility Target")
//Difference = abs((haClose - haOpen)/((haClose + haOpen)/2) * 100)
//MovingAverage = sma(Difference, vollength)
//highvolatility = MovingAverage > voltarget

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)

//RSI
change = change(haClose)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))

ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(haClose, cs_offset-1) > 0
cs_cross_bear = mom(haClose, cs_offset-1) < 0
price_above_kumo = haClose > ss_high
price_below_kumo = haClose < ss_low
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish //and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish //and highvolatility

strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond)
strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond)

strategy.close("Long", when=bearish and not short_entry and time_cond)
strategy.close("Short", when=bullish and not long_entry and time_cond)