Questions des débutants MQL5 MT5 MetaTrader 5 - page 553
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Au lieu de Close[2] mettez la valeur de l'indicateur sur la deuxième barre (par exemple iRSI(.......,2) ) et au lieu de Close[1] mettez la valeur de l'indicateur sur la première barre. Et uroven est la valeur du niveau.
Et le reste, on vous l'a déjà dit plus haut.
Prérequis :
ProfitSellDBL est calculé ici
Profit_Upgr = 0.01
Tral_Start__Upgr est assimilé à une variable externe de type int et égale à 5.
Tral_Size__Upgr est pareillement égal à 4
TV - valeur de coche, =10
SumLotSellDBL = 0.04
Lisez. J'ai vu comment cela fonctionnerait si Tral_Start__Upgr, Tral_Size__Upgr et leurs variables externes étaient définies comme des doubles. C'est-à-dire lorsque tout est du même type sans aucune conversion ni perte de données. Le résultat est le même. Qu'est-ce que j'ai fait de mal ?
Un aveugle qui parle à un sourd. Si vous voulez que quelqu'un le teste, vous avez besoin du code minimum possible qui peut être compilé sur une autre machine et testé. Pas de code - rien à dire.
Ajouté : Utiliser le débogage:
-Préconfiguration
-Points d'arrêt
-Démarrer ledébogage
-Expressionsobservables
-Appeler StackView
-Débogageétape par étape
-Arrêter, reprendre et terminer le débogage
-Débogage de l'historique
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Bugs, bugs, questions
comp, 2016.04.03 18:21
Erreur d'exécution
En quatre, ça a bien marché ! En cinq, c'est une déception. Est-ce une autre limitation architecturale par rapport au quadruple ? Donnez-moi un lien vers une discussion sur ce sujet, je ne l'ai pas trouvé moi-même.
Ai-je bien compris que l'on ne peut affecter quelque chose aux tampons d'indicateurs qu'après le premier appel du terminal (non manuel) OnCalculate ?
Les tampons des indicateurs sont accessibles après l'appel de OnCalculate(). En même temps, le tampon indicateur lui-même doit être déclaré dans la zone des variables globales:
Je pense avoir trouvé ce que je cherchais, mais l'ancienneté du code donne une erreur
Aidez-moi à le réparer ...... si ça ne vous dérange pas trop.
et si vous pouvez m'aider à le tourner vers le côté droit de l'écran, ce serait génial.
Les tampons des indicateurs sont accessibles après l'appel de OnCalculate().
Il s'avère que vous avez tort. Vous ne pouvez appliquer que lorsque le terminal appelle OnCalculate. Dans ce cas, la condition dans MT4 est plus souple, car il suffit d'appeler OnCalculate une seule fois. Et dans MT5, vous devez attendre l'appel de OnCalculate par le terminal lui-même chaque fois après le SetIndexBuffer. Preuve
Dans MT4, cet indicateur fonctionnera sans problème, dans MT5, il se plantera avec une erreur. Il s'est avéré que dans MT4, il suffit d'attendre le premier appel de OnCalculate par le terminal et de faire ce que vous voulez avec les tampons, y compris leur redéfinition à l'aide de SetIndexBuffer. Mais dans MT5, après TOUS les SetIndexBuffer, il faut attendre le premier appel de OnCalculate par le terminal.
Cette particularité n'est documentée nulle part. Et il ne semble pas correspondre à la définition d'un "débutant".
Peut-on s'attendre à ce que ce comportement soit le même dans MT5 que dans MT4 ? C'est-à-dire qu'après le premier appel de OnCalculate par le terminal lui-même, il serait possible d'appeler SetIndexBuffer sans problème ?
Il s'avère que vous avez tort. Vous ne pouvez l'appeler que lorsque OnCalculate est appelé par le terminal lui-même. Dans ce cas, dans MT4, la condition est plus flexible, car vous ne devez appeler OnCalculate qu'une seule fois. Mais dans MT5, vous devez attendre l'appel de OnCalculate par le terminal lui-même à chaque fois après le SetIndexBuffer. Preuve
Dans MT4, cet indicateur fonctionnera sans problème, dans MT5, il se plantera avec une erreur. Il s'est avéré que dans MT4, il suffit d'attendre le premier appel de OnCalculate par le terminal, puis de faire ce que vous voulez avec les tampons, y compris leur redéfinition à l'aide de SetIndexBuffer. Mais dans MT5, après TOUS les SetIndexBuffer, il faut attendre le premier appel de OnCalculate par le terminal.
Cette fonctionnalité n'est documentée nulle part. Et il ne semble pas correspondre à la définition d'un "débutant".
Peut-on s'attendre à ce que ce comportement soit le même dans MT5 que dans MT4 ? C'est-à-dire qu'après le premier appel de OnCalculate par le terminal lui-même, il sera possible d'appeler SetIndexBuffer sans problème ?