Bonjour,
J’imagine que je ne suis pas le 1er à poser la question, mais je ne trouve pas la fonction recherche sur le Forum…
J’essaye de faire un test simple Backtest avec la version gratuit de PRT en utilisant la méthode Goldencross sur l’action Airbus par exemple.
J’ai utilisé la création simplifiée afin d’implémenter ma méthode, et j’obtiens le code suivant :
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 1 OR OpenDayOfWeek = 2 OR OpenDayOfWeek = 3 OR OpenDayOfWeek = 4 OR OpenDayOfWeek = 5 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Conditions pour ouvrir une position acheteuse
indicator1 = Average[20](close)
indicator2 = Average[50](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 AND not daysForbiddenEntry THEN
BUY 1 SHARES AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator3 = Average[20](close)
indicator4 = Average[50](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET
ENDIF
Problème : je n’obtiens jamais les résultats de mon Backtest … (pas de données..)
Est-ce que j’ai râté quelque chose ? La version gratuite permet de faire des backtests ?
Bonjour, les 2 possibilités d’accéder à la fonction recherche en images attachée (l’une en page d’accueil, l’autre en haut à droite de toute page en menu déroulant partant de son avatar).
Merci de respecter les règles de publication du forum dans le grand cadre jaune en bas, qui sert de checklist juste avant d’appuyer sur “submit” message en dessous du cadre jaune. En particulier l’usage du bouton “insert PRT code” pour la partie code des messages. Image attachée aussi pour le localiser. Pas besoin de reposter, je vais reformater le code dans le message ci-dessus.
Sans faire tourner le code, on dirait bien qu’ayant sélectionné tous les jours de la semaine dans ta variable daysforbiddenentry, elle sera toujours égale à 1, donc ton “IF c1 AND not daysForbiddenEntry THEN” ne sera jamais vrai…
Merci pour votre réponse,
j’ai essayé de simplifier le code au maximum; et j’obtiens pourtant le même résultat :
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
indicator1 = Average[20](close)
indicator2 = Average[50](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator3 = Average[50](close)
indicator4 = Average[20](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET
ENDIF
Si on utilise cross over à l’entrée et cross under pour la sortie, il faut garder les variables dans le même ordre, autrement dit, tu as inversé ton intention avec indicator 3 et indicator 4, il aurait fallu non pas 50 pour indicator 3 et 20 pour indicator4 mais:
indicator3 = Average[20](close)
indicator4 = Average[50](close)
A noter que c’est parce que c’est la création simplifiée que ça met un numéro différent à chaque clic après indicator (3 et 4) mais quitte à mettre “les mains dans le cambouis” en modifiant le code manuellement, pour c2 on peut aussi simplement garder indicator1 et 2 sans préciser 3 et 4 avec:
c2 = (indicator1 CROSSES UNDER indicator2)
ça fonctionne ! Hallelujah !
merci !