ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Programmer le RSI

par Skowi » 25 Fév 2020 07:28

Salut, pour un de mes programmes j'aimerai coder le RSI mais wikipédia n'est pas assez précis quant au calcul de H et B dans la formule.

"H : Moyenne mobile exponentielle des hausses au cours des n derniers jours", qu'est ce que cela veut dire. Je dois faire une MME et mettre 0 quand ca ne monte pas. Je prend en compte le prix de cloture des hausses ou la hausse en elle même type entrée à 100 et sortie à 103 donc hausse = 3 ???

Aidez moi svp

Re: Programmer le RSI

par Miju » 25 Fév 2020 08:00

Bonjour , avant de participer au forum, il faut se présenter dans présentation des membres comme l'exige la Nétiquette. Cela permet aux membres de mieux répondre à tes questions en connaissant ton niveau, ton expérience et ton compte sera débloqué.

Re: Programmer le RSI

par Skowi » 25 Fév 2020 09:15

C'est fait je me suis présenté !

Re: Programmer le RSI

par Eversa » 25 Fév 2020 10:08

:mercichinois: :top:

Re: Programmer le RSI

par Skowi » 25 Fév 2020 12:13

Vous avez une idée de comment faire ?

Re: Programmer le RSI

par gaugau3000 » 25 Fév 2020 13:06

Alors je doutes que tu es besoin de coder le RSI : le RSI normalement déjà été codé pour toi (tout les langages ou platformes disposes de librairies). Si c'est une fonction tu devras peut être passer tes bougies ainsi que le nombre de périodes nécessaires pour le calcul en paramètres.

Re: Programmer le RSI

par takapoto » 25 Fév 2020 14:16

Skowi a écrit:Je prend en compte ... la hausse en elle même type entrée à 100 et sortie à 103 donc hausse = 3 ???
Oui, c'est ça.
Pour info, dans PRT, le RSI est calculé avec une moyenne de Wilder à la place de la moyenne exponentielle.
Spoiler:
Exemple de calcul avec une moyenne arithmétique simple :
Code: Tout sélectionner
            //Initialisations
            this.currentValue = 0;
            decimal totalProfit = 0;
            decimal totalLoss = 0;
            decimal averageProfit = 0;
            decimal averageLoss = 1;
 
            //Calcul de l'index de départ du calcul
            int startIndex = index - this.period + 1;
            if (startIndex < 0) startIndex = 0;
 
            //Calcul du total des gains et des pertes sur la période
            Candles candles = this.parentData as Candles;
            int n = 0;
            for (int i = startIndex; i <= index; i++)
            {
                n++;
                totalProfit += candles.items[i].Profit();
                totalLoss += candles.items[i].Loss();
            }
 
            //Calcul de la moyenne arithmétique des gains et des pertes sur la période
            if (n != 0)
            {
                averageProfit = totalProfit / n;
                averageLoss = totalLoss / n;
                if (averageLoss == 0) averageLoss = 1;
            }
 
            //Calcul du RS
            decimal RS = averageProfit / averageLoss;
 
            //Calcul du RSI
            this.currentValue = 100 - (100 / (1 + RS));

Re: Programmer le RSI

par Skowi » 25 Fév 2020 22:54

J'aimerai que ce soit si simple, mais je code en hard je trade sur les crypto avec une liaison qui se fait via une API.
Je code moi même ma propre API en PHP (j'utilise les fonctions dispo avec CCXT quand même).
Mais du coup nativement en PHP il n'y a aucune fonction de RSI, c'est pourquoi il me faut absolument savoir exactement comment le RSI se calcul manuellement.

Re: Programmer le RSI

par takapoto » 25 Fév 2020 23:07

Mais il y a le code dans le spoiler :!:

Re: Programmer le RSI

par kero » 26 Fév 2020 00:21

Une simple recherche sur Google te renvoie des centaines de sites expliquant la formule...

Articles en relation
Comment programmer un EA et l'exécuter
par Lysan » 13 Mar 2016 20:09 (2 Réponses)
Programmer un ordre à heure fixe sur PRT
par Toto le Héros » 24 Nov 2016 15:10 (9 Réponses)
Programmer en UT1' avec des signaux UT15'
par Apo-71 » 19 Avr 2017 08:15 (5 Réponses)
comment programmer des lignes horizontales selon atr
par sebecr » 17 Déc 2016 13:12 (8 Réponses)

ProRealTime