Recalculer le RSI avec ProOrder

Forum sur le trading automatique et algorithmique : systèmes, backtests, robots de trading, résultats et limites, code à l'appui.
Avatar du membre
Anewa
Apprenti Jedi
Messages : 642
Enregistré le : 13 nov. 2016 15:08

Recalculer le RSI avec ProOrder

Message non lu par Anewa »

Bonjour la communauté,

Après 1 an à observer les marchés, je me suis remis à coder des robots avec ProOrder. Ces derniers temps, je me suis mis à simuler du multi-time frame (par exemple : calculer la MM30 sur UT5mn dans un graphique 1 minute).

Aujourd'hui, je voulais coder un RSI14 sur UT15 à afficher sur un graphique en 5mn mais avant ça, j'ai essayé de recalculer le RSI comme l'aurait fait la fonction rsi[n](close) mais le résultat que j'obtiens est bien différent du résultat fourni par PRT (pas facile de réinventer la roue).

Code : #

// Liste des variables
nbPeriode = 14
nbHausse = 0
nbBaisse = 0
i = 0

// Calcul des hausses et des baisses
WHILE i < nbPeriode DO
delta = close[i]-close[i+1]
IF delta >= 0 THEN
nbHausse = nbHausse + delta
ELSE
nbBaisse = nbBaisse + abs(delta)
ENDIF
i = i + 1
WEND

// Moyenne simple
nbHausse = nbHausse/nbPeriode
nbBaisse = nbBaisse/nbPeriode

// Calcul du RSI
force = nbHausse / (nbHausse + nbBaisse)*100
Dans le script, j'utilise une moyenne simple. Savez-vous comment PRT calcule son RSI ? avec une moyenne mobile expo ? Si quelqu'un pouvait m'aiguiller pour arriver au même RSI fourni par PRT... il aura ma reconnaissance éternelle :musique:

Merci à vous pour votre aide !!
Avatar du membre
Jim
Chevalier Jedi
Messages : 2373
Enregistré le : 24 févr. 2016 10:39

Re: Recalculer le RSI avec ProOrder

Message non lu par Jim »

Le RSI est calculé avec une moyenne mobile expo déguisée : un moyenne de Wilder.

Je te remets le calcul du RSI qui est donné en principe sous "Example5" des indicateurs de base de PRT :

Code : #

REM Computes the daily variations

UP = MAX(0, close - close[1])
DOWN = MAX(0, close[1] - close)

REM Computes the moving average of gains on positive days
REM and losses on negative days

upMA = wilderAverage[p](UP)
downMA = wilderAverage[p](DOWN)

REM Now we can compute the RS

RS = upMA / downMA

REM And finally the RSI

myRSI = 100 - 100 / (1 + RS)

RETURN myRSI AS "Relative Strength Index"
Il faut encore rajouter la période "p" comme variable.

;)
Avatar du membre
Anewa
Apprenti Jedi
Messages : 642
Enregistré le : 13 nov. 2016 15:08

Re: Recalculer le RSI avec ProOrder

Message non lu par Anewa »

Merci beaucoup Jim !!!!!!