Stratégie d'échange de crypto-monnaie par RSI à long-courte oscillation

Auteur:ChaoZhang est là., Date: 2023-12-25 13:49:48 Je vous en prie.
Les étiquettes:

img

Résumé

L'oscillation de la stratégie de changement de crypto-indice de long-courte RSI est une stratégie de trading quantitative conçue pour les crypto-monnaies. Elle combine l'indicateur technique RSI avec l'indicateur ICHIMOKU pour identifier les signaux longs et courts pendant les oscillations de prix et atteindre des prix d'achat bas et de vente élevés.

La logique de la stratégie

La stratégie repose principalement sur les indicateurs et règles suivants:

Indicateur ICHIMOKU

  • Tenkan Line: point médian du prix le plus élevé et le plus bas des 20 dernières barres
  • Ligne Kijun: point médian du prix le plus élevé et le plus bas des 50 dernières barres
  • Ligne Senkou A: point médian de la ligne Tenkan et Kijun
  • Ligne Senkou B: point médian du prix le plus élevé et le plus bas des 120 dernières barres
  • La ligne Chikou: prix de clôture de 30 bars

Indicateur RSI

  • Plage de 0 à 100
  • Au-dessus de 50 indique un signal haussier, au-dessous de 50 indique un signal baissier

Règles d'entrée
Entrée longue: Tenkan croise au-dessus de Kijun (croix dorée) et les bris de prix à travers Senkou A & B Lines, avec RSI au-dessus de 50 en même temps
Entrée courte: croix de Tenkan en dessous de Kijun (croix de la mort) et prix décompose les lignes Senkou A & B, avec RSI inférieur à 50 en même temps

Règles de sortie
Sortie avec signal opposé

La stratégie tient compte de la tendance à moyen et long terme, des flux de capitaux à court terme et des conditions de surachat/survente pour saisir les opportunités d'inversion pendant l'oscillation.

Analyse des avantages

1. Un jugement fondé sur de multiples indicateurs assure une grande certitude

La stratégie prend en compte la tendance et le jugement support/résistance d'ICHIMOKU, les conditions de surachat/survente du RSI, ainsi que le flux de capitaux basé sur la direction du corps de la bougie.

2. Convient à l'oscillation, à la prise de profit fréquente

Le marché des crypto-monnaies a de grandes fluctuations. Cette stratégie peut pleinement saisir les opportunités d'inversion pendant les oscillations et atteindre des achats fréquents bas et des ventes élevées.

3. Prévenir la poursuite des montées et battre les retraites, risque contrôlable

La stratégie prend en considération les tendances à moyen et long terme et les situations à court terme afin d'éviter le risque de poursuivre les hausses et de battre les baisses.

Analyse des risques

1. Peut manquer certaines opportunités de tendance

La stratégie se concentre principalement sur l'inversion, ce qui peut entraîner des baisses fréquentes lors de phases de tendance prolongées.

2. symbole unique, incapable de diversifier le risque

La stratégie ne négocie qu'un seul symbole et ne peut pas être diversifiée contre un risque de marché systématique.

3. Stop loss déclenché lors de mouvements extrêmes

Pendant les conditions de marché extrêmes comme les écarts ou les pics, le stop loss peut être déclenché pour forcer la sortie.

Directions d'optimisation

1. Ajouter un stop loss pour une perte simple inférieure

Le stop loss mobile ou le stop loss en pourcentage peuvent être utilisés pour verrouiller les bénéfices et empêcher une retraite complète.

2. Corréler avec les indices pour diversifier le risque de marché

Cherchez des opportunités de négociation entre des symboles fortement corrélés pour diversifier le risque de marché systématique.

3. Filtres supplémentaires pour réduire les transactions non valides

Des filtres tels que la volatilité des prix ou les changements de volume peuvent être ajoutés pour éviter les signaux d'inversion non valables et améliorer le taux de rentabilité.

Conclusion

La stratégie de commutation de crypto-monnaie RSI oscillant à court terme combine les indicateurs ICHIMOKU et RSI pour identifier les points d'inversion des crypto-monnaies, adaptés à l'achat bas et à la vente à haut profit pendant les oscillations. Elle définit également des règles de stop-loss pour contrôler le risque.


/*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)




Plus de