Indice de force relative Stratégie longue/courte

Auteur:ChaoZhang est là., Date: 2023-11-16 17h06 et 14h
Les étiquettes:

img

Résumé

Cette stratégie génère des signaux de trading en comparant l'indicateur RSI d'une crypto-monnaie avec l'indicateur RSI d'un indice du marché des crypto-monnaies afin de juger de la valeur relative de la crypto-monnaie par rapport au marché des crypto-monnaies.

La logique de la stratégie

La stratégie permet de sélectionner d'abord un indice de marché de crypto, tel que la capitalisation boursière totale, la capitalisation boursière totale à l'exclusion de Bitcoin, la capitalisation boursière d'autres pièces, etc. Elle sélectionne également un laps de temps plus élevé de l'indice de crypto, par défaut à quotidien.

La logique de base est que lorsque le RSI de la crypto-monnaie est plus fort que l'indice de cryptographie, cela signifie que la pièce est relativement sous-évaluée par rapport au marché et a le potentiel de devenir surévaluée, de sorte qu'elle peut être achetée.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'elle utilise l'indice de force relative, ce qui permet une évaluation plus précise des crypto-monnaies, au lieu de se fier uniquement aux indicateurs techniques d'une seule pièce pour prendre des décisions, évitant le piège de regarder les choses de manière isolée.

L'indice de résistance relative tient compte de l'impact de l'environnement global du marché sur les pièces individuelles, et peut capturer le rythme de rotation du marché et les rotations des secteurs, et extraire des pièces de valeur du marché.

En outre, la stratégie prévoit plusieurs sélections d'indices, qui peuvent être optimisées pour différents environnements de marché afin d'assurer l'efficacité de la stratégie.

Analyse des risques

Le principal risque de cette stratégie réside dans le fait que l'indice de résistance relative n'est qu'un outil d'évaluation et ne peut éviter complètement les risques commerciaux découlant des schémas techniques des pièces individuelles.

Par exemple, si la pièce est entrée dans un schéma d'inversion de tête et d'épaules évident et que la structure du marché a changé, s'appuyer uniquement sur la force relative des signaux d'achat pourrait entraîner des pertes.

Par conséquent, la stratégie doit combiner les modèles techniques des différentes crypto-monnaies elles-mêmes afin d'éviter des transactions défavorables aux points techniques critiques.

Un autre risque est que si l'indice sélectionné est inapproprié et a une faible corrélation avec la crypto-monnaie, alors la puissance d'indication de l'indice de force relative serait largement compromise.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Ajoutez des stratégies de stop loss pour réduire les pertes à temps lorsque les prix s'inverseront.

  2. Optimiser la sélection d'indices, faire correspondre différents indices pour différentes pièces pour augmenter la corrélation.

  3. Ajoutez plusieurs combinaisons de délais, telles que la confirmation des signaux quotidiens avec des signaux de 4 heures, pour augmenter la fiabilité du signal.

  4. Ajouter des algorithmes d'apprentissage automatique pour déterminer de manière adaptative le seuil de l'indice de résistance relative, au lieu d'utiliser des paramètres fixes.

  5. Incorporer d'autres indicateurs comme l'analyse du sentiment, l'analyse fondamentale pour former un système d'évaluation plus complet.

Conclusion

La stratégie relative de l'indice de force juge la valeur relative des crypto-monnaies en comparant leur force avec les indices du marché et génère des signaux de trading. Son avantage réside dans l'intégration de dimensions d'analyse de marché et la capture des rythmes du marché. Mais elle comporte également des risques qui nécessitent une optimisation, tels que l'ajout de stop loss, de combinaisons de délais, de seuil adaptatif, etc. pour améliorer les performances. Si elle est correctement mise en œuvre, cette stratégie peut jouer un rôle important dans le trading algorithmique de crypto.


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

//@version=5
strategy('RSI correlation with cryptoindices [strategy version]', overlay=false)

// Testing Start dates
testStartYear = input(2016, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

len = input(4, title='length of rsi comparison')
correlationcrossover = input(1, title='correlation crossover')
IndexSwitch = input.string('CRYPTOCAP:TOTAL2', title='Index selection', options=['CRYPTOCAP:TOTAL2', 'CRYPTOCAP:TOTAL', 'CRYPTOCAP:OTHERS', 'CRYPTOCAP:USDT', 'CRYPTOINDEX:CIX100', 'CRYPTOCAP:BTC.D', 'CRYPTOCAP:BTC'])
IndexHTF = input.string('120', title='higher time frame reference index', options=['1', '2', '5', '10', '15', '30', '45', '60', '90', '120', '150', '240', '360', '720', 'D', '3D', 'W', 'M'])
switchColor = input(true, 'Color Hull according to trend?')
ref = request.security(IndexSwitch, IndexHTF, close[1], lookahead=barmerge.lookahead_on)
RSI_ref = ta.rsi(ref, len)
RSI_close = ta.rsi(close, len)
relative = RSI_ref / RSI_close
plot(relative, color=color.new(color.blue, 0))
long = ta.crossover(relative, correlationcrossover)
short = ta.crossunder(relative, correlationcrossover)
corr = plot(correlationcrossover, color=color.new(color.green, 0), linewidth=1)
hullColor = switchColor ? relative > correlationcrossover ? #00ff00 : #ff0000 : #ff9800

//PLOT
///< Frame
Fi1 = plot(relative, title='relative', color=hullColor, linewidth=1, transp=50)
fill(Fi1, corr, title='Band Filler', color=hullColor, transp=50)

if long and testPeriod()
    strategy.entry("long", strategy.long)
    
if short and testPeriod()
    strategy.entry("long", strategy.short)

// alertcondition(long, title='long', message='long')
// alertcondition(short, title='short', message='short')



Plus de