bonjour
mon code s’arrête en réel mais pas en back test avec ce message d’erreur :
le système de trading a été arrêté en raison d’une division par zéro de l’évaluation du dernier chandelier.
jai verifié mon code et je n’ai trouvé aucune division par zero.
je suis nu en programation.
ci-joint mon code
//-------------------------------------------------------------------------
// Code principal : MonSystème(1)
//-------------------------------------------------------------------------
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
DEFPARAM FLATBEFORE = 140000
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 230000
// Conditions pour ouvrir une position acheteuse
ONCE x = 1.0
indicator1 = Average[80](close)
c1 = (close > indicator1)
indicator2 = RSI[1](close)
c2 = (indicator2 CROSSES OVER 1)
IF c1 OR c2 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator4 = RSI[1](close)
c4 = (indicator4 CROSSES OVER 80)
indicator5 = Average[80](close)
c5 = (close > indicator5)
IF c4 AND c5 THEN
SELL AT MARKET
ENDIF
// Stops et objectifs
SET STOP $LOSS 6
Je pense que c’est dut au RSI 1 période. En effet, dans le calcul du RSI on divise la quantité d’avancement sur la quantité de recul du prix, donc avec 1 seule période, il peut arriver que la quantité de recul soit égale à 0, d’où l’erreur.
Bonjour Nicolas
Merci pour ta réponse rapide.
Est-ce que tu as une astuce pour détourner cela…
Merci d’avance.