créer une fonction dans prorealtime

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #141025 quote
    Vivien Adnot
    Participant
    Junior

    Bonjour, dans beaucoup de langages de programmation il est possible d’utiliser des fonctions, comme ça par exemple:

     

    function add (a, b) {
    
       return a + b
    
    }
    
    add(3,4) // renvoie 7

    est-t il possible de faire la même chose dans un backtest prorealtime ?

    Merci d’avance !

    Vivien

    #141031 quote
    Nicolas
    Keymaster
    Master

    > Merci de renseigner votre pays dans votre page de profile ! <<

    Non, pas sous cette forme.  Toutefois,  tu peux créer un code à part, et faire un CALL avec les variables en paramètres. Si besoin d’aides ou d’un exemple,  n’hésite pas 😉

    #141063 quote
    Vivien Adnot
    Participant
    Junior

    Ok je vois l’idée je vais tester ça, merci à toi Nicolas !

    (Et j’ai bien mis à jour le pays dans mon profil)

     

    Bonne journée bon week-end

    #196332 quote
    Titou
    Participant
    New

    Bonjour, je veux bien des exemples, c’est exatement ce qu’il me faut mais je ne sais pas faire avec ce language. Merci

    #196340 quote
    Nicolas
    Keymaster
    Master

    Le code que tu souhaites avoir comme une fonction, écrit le dans un programme spécifique.

    Puis dans ton programme général, appel ta “fonction” grâce à un CALL.

    #196342 quote
    Titou
    Participant
    New

    Tu veux dire programme spécifique dans un code comme indicateur ? Sinon où je stocke ce programme spécifique ?

    #196354 quote
    Nicolas
    Keymaster
    Master

    Voici un exemple simple, si tu veux délocaliser un calcul de division dans une fonction (ici A divisé par B), commence par créer ta fonction dans un indicateur que tu nommes “fonction_division” avec des paramètres externes A et B:

    resultat = A / B 
    
    return resultat

    cet indicateur sera appelé dans ton code principal de cette manière :

    resultat = CALL "fonction_division"[A,B]

    tu pourras donc faire varier les valeurs de A et B dans ton code principal pour obtenir des résultats de division, sans devoir les réécrire. Bien sûr ici c’est un code très simple (une division !), mais c’est bien plus utile quand tu voudras créer des fonctions qui comporte des dizaines de lignes que tu dois utiliser X fois dans le même programme.

    Pour information, les “vrais” fonctions tel qu’on les connaît dans les autres langages de programmation sont à l’étude et devraient être implantés dans ProBuilder.

    #196368 quote
    Titou
    Participant
    New

    Merci beaucoup. Belle subtilité en passant par les indicateurs 🙂 Oui, bien sûr mon code est beaucoup plus  ompliqué qu’un calcul et pourra être repris dans plusieurs programmes (robot) au lieu de tout écrire à chaque fois, et de modifier dans chaque robot en cas de modif. Je suis informaticien si cela peut rassurer. Dernière question, c’est possible de passer (ou récuperer dans la fonction) un paramètre du programme pricnicpal  dans la fonction? Par exemple envoyer un prix calculer et que la fonction pourra recevoir. Encore merci, cela est très utile pour moi. Bonne idée de le faire dans une prochaine version, super.

    #196374 quote
    Nicolas
    Keymaster
    Master

    Oui il faut envoyer la variable dans les crochets du CALL.

    #196392 quote
    Titou
    Participant
    New

    Super, merci beaucoup

    #203884 quote
    julian_hdp
    Participant
    New

    Bonjour,

    J’ai essayé très simplement de coder une fonction de la façon suivante, j’ai crée un indicateur test_RSI avec le code :

    MyRSI = RSI[A](close)
    return MyRSI

    Mais à la validation, il me demande de définir la variable A, alors que c’est une variable que je veux passer plus tard par appel à la fonction dans un probacktest avec par exemple :

    resultat = CALL "test_RSI"[21]

    Pourquoi ne puis-je pas valider mon indicateur?

    Merci de votre aide.

    #203906 quote
    Nicolas
    Keymaster
    Master

    Il faut ajouter ta variable A dans la fenêtre des variables externes, ainsi tu pourras passer la valeur à ton indicateur/fonction lors de ton CALL (la valeur “21” doit aboutir dans A).

    julian_hdp thanked this post
    #203937 quote
    julian_hdp
    Participant
    New

    Ca fonctionne! merci beaucoup.

Viewing 13 posts - 1 through 13 (of 13 total)
  • You must be logged in to reply to this topic.

créer une fonction dans prorealtime


ProOrder : Trading Automatique & Backtests

New Reply
Author
Summary

This topic contains 12 replies,
has 4 voices, and was last updated by julian_hdp
3 years, 3 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 08/06/2020
Status: Active
Attachments: No files
Logo Logo
Loading...