Bonjour à tous,
Ce forum est un telle mine d’or que j’ai toujours peur en écrivant que la question ait déjà été posée. Pardonnez-moi si c’est le cas.
Ce sont des questions très généralistes que je vous pose aujourd’hui. “J’essaie” d’écrire du code propre, maintenable facilement et si possible optimisé mais j’ignore comment ça fonctionne réellement pour optimiser les durées de calcul de backtest et soulager les serveurs IT-Finance.
Est-il mieux d’imbriquer les IF ou d’utiliser les AND ?
Aujourd’hui, je déclare les indicateurs et les conditions au début du code.
Exemple:
1
2
3
EMA=ExponentialAverage[Period](close)
trendBullish=close>EMA
trendBearish=close<EMA
Si plusieurs conditions d’achat alors je crée une condition qui imbrique mes 2 conditions.
Exemple:
1
2
3
4
achatOK=trendBullishANDengulfingBullish
IFachatOKTHEN
BUY1....
ENDIF
Vous vous doutez que pour déterminer engulfingBullish, je dois évaluer chaque bougie et la précédente.
Peut-être devrais-je n’évaluer les bougies QUE si j’ai une trendBullish.
Ce ne sont peut-être pas les meilleurs exemples parce qu’ils sont simples (et improvisés lol) mais si on devait identifier d’autres formes de bougies ainsi que des patterns de bougie, cela se ressentirait forcément dans les performances surtout sur 200k unités.
Je me rends compte en écrivant que j’ai du mal à formuler.
Dois-je imbriquer les IF de la condition la moins restrictive à la plus restrictive en mettant les évaluations de bougies (, de stoploss et de target profit aussi par exemple) dans le IF ou puis-je continuer à déclarer en début de code puis utiliser mon IF tout “propre” ?
Paragraphe “limiter le nombre de conditions imbriquées”: préférable d’avoir une instruction IF avec N conditions (avec des AND des OR etc…) que N instructions IF.
Combiné avec l’étude de Maz ci-dessus, le plus rapide mais potentiellement moins agréable à lire est de combiner d’abord de la façon qu’il décrit toutes tes conditions en une quand c’est possible, puis de faire ton IF avec cette seule condition résumant le tout.
To help us continually offer you the best experience on ProRealCode, we use cookies. By clicking on "Continue" you are agreeing to our use of them. You can also check our "privacy policy" page for more information.Continue