Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1256
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
Comment puis-je connaître le type de paramètre d'entrée ?
le compilateur substitue lui-même les types au moment de l'appel de la fonction template, si cet appel n'était pas encore dans le code, alors le compilateur va créer une autre copie de la fonction et définir les types lui-même - bien, comme si c'était logique - un template
si la question est de savoir comment définir le type dans une telle fonction, utilisez
typename
UPD : ajout à l'exemple ci-dessus du paramètre type imprimantes :
2020.09.16 18:58:21.679 tst (EURUSD,M5) int myfunc<int,int>(int,int)
2020.09.16 18:58:21.680 tst (EURUSD,M5) val1 = 2, typename = int
2020.09.16 18:58:21.681 tst (EURUSD,M5) val2 = 3, typename = int
2020.09.16 18:58:21.681 tst (EURUSD,M5) 5
2020.09.16 18:58:21.681 tst (EURUSD,M5) int myfunc<double,double>(double,double)
2020.09.16 18:58:21.681 tst (EURUSD,M5) val1 = 10.0, typename = double
2020.09.16 18:58:21.681 tst (EURUSD,M5) val2 = 30.0, typename = double
2020.09.16 18:58:21.681 tst (EURUSD,M5) 40
UPD : ajout de__FUNCSIG__ à cet exemple
Après-midi.
Je suis confronté à un phénomène étrange lors de l'écriture d'un indicateur dans MQL5 (indicateur dans une sous-fenêtre séparée, 4 lignes).
Les descriptions des tampons initiaux sont les suivantes :
Suivant dans OnInit :
En gros, l'indicateur trace 4 lignes : les deux premières sont unicolores, les deux suivantes sont bicolores (elles changent de couleur sur les nœuds).
Le bicolore est dû à la manière de dessiner DRAW_COLOR_LINE.
Question : la première ligne (tampons 2 et 3 dans le code ci-dessus) est parfaitement dessinée et tout le code écrit pour elle dans OnInit fonctionne ;
C'est-à-dire qu'au lieu du texte que j'ai défini dans la fenêtre de données, seul le nom de l'indicateur est affiché à la place du tampon. Bien que la ligne elle-même soit tracée, et qu'elle soit, comme il se doit, multicolore.la deuxième ligne apparaît pour une raison quelconque, par exemple la ligne ne fonctionne pas :
Je pense que le truc est dans le changement de numérotation ? Par exemple, je ne sais pas pourquoi dans la partie supérieure du code, lorsque je déclare la dernière ligne avec la directive #property, l'index devrait être 4 et non 5, car 4 tampons ont déjà été utilisés auparavant. Y a-t-il une quelconque relation entre la numérotation des lignes lors de la déclaration avec #property et la numérotation des tampons lors de la liaison avec des tableaux dans OnInit ?
Veuillez me dire ce qui ne va pas dans le code ci-dessus. Peut-être que quelqu'un peut trouver un exemple d'indicateur où au moins deux lignes sont dessinées en utilisant la méthode de dessin DRAW_COLOR_LINE....
.
Une autre question connexe : comment les tampons de ligne colorés sont-ils reliés entre eux ? Je veux dire, comment le code compilé sait-il que si je mets une valeur dans un tampon de couleur, cette couleur doit être utilisée pour colorer une ligne d'un autre tampon ?
Après-midi.
Je suis confronté à un phénomène étrange lors de l'écriture d'un indicateur dans MQL5 (indicateur dans une sous-fenêtre séparée, 4 lignes).
Les descriptions des tampons initiaux sont les suivantes :
Suivant dans OnInit :
En gros, l'indicateur trace 4 lignes : les deux premières sont unicolores, les deux suivantes sont bicolores (elles changent de couleur sur les nœuds).
Le bicolore est dû à la façon de dessiner DRAW_COLOR_LINE.
Question : la première ligne (tampons 2 et 3 dans le code ci-dessus) est parfaitement dessinée et tout le code écrit pour elle dans OnInit fonctionne ;
C'est-à-dire qu'au lieu du texte que j'ai défini dans la fenêtre de données, seul le nom de l'indicateur est affiché à la place du tampon. Bien que la ligne elle-même soit tracée, et qu'elle soit, comme il se doit, multicolore.la deuxième ligne apparaît pour une raison quelconque, par exemple la ligne ne fonctionne pas :
Je pense que le truc est dans le changement de numérotation ? Par exemple, je ne sais pas pourquoi dans la partie supérieure du code, lorsque je déclare la dernière ligne avec la directive #property, l'index devrait être 4 et non 5, car 4 tampons ont déjà été utilisés auparavant. Y a-t-il une quelconque relation entre la numérotation des lignes lors de la déclaration avec #property et la numérotation des tampons lors de la liaison avec des tableaux dans OnInit ?
Veuillez me dire ce qui ne va pas dans le code ci-dessus. Peut-être que quelqu'un peut trouver un exemple d'indicateur où au moins deux lignes sont dessinées en utilisant la méthode de dessin DRAW_COLOR_LINE....
.
Une autre question connexe : comment les tampons de ligne colorés sont-ils reliés entre eux ? Je veux dire, comment le code compilé sait-il que si je mets une valeur dans un tampon de couleur, cette couleur doit être utilisée pour colorer une ligne d'un autre tampon ?
Les mappings sont numérotés différemment des tampons.
Cela devrait fonctionner.
Bonjour à tous !
J'ai créé une fonction pour modifier le stoploss. Mais quand il fonctionne, il donne EURUSD,H1 : OrderModify error 130.
Et le prix est loin de l'endroit où le stoploss devrait être fixé.
Voici la fonction :
J'ai écrit une fonction pour trouver le numéro de barre d'une fractale à partir de 3 barres. Sur le tableau en ligne, il semble le trouver correctement. Mais pendant le test visuel dans le testeur, il ment. L'un des professionnels peut-il jeter un coup d'œil au code et trouver des erreurs ?
Je vous en serais très reconnaissant.
Bon après-midi. QUEL CODE DOIS-JE AJOUTER POUR QUE L'INDICATEUR CESSE DE FONCTIONNER DANS LE TESTEUR APRÈS UN MOIS ? C'EST-À-DIRE QUE J'AI ÉCRIT TOUT CE QUI EST CORRECT ! MAIS LORSQUE JE FAIS UN BACKTEST, CELA FONCTIONNE À NOUVEAU. (mgl4)
Bonjour !
Je voulais mettre une condition dans le cycle de clôture des ordres lejour de l'ouverture des ordres, afin que ceux qui ont été ouverts le vendredi ne soient pas fermés.
Bon après-midi. QUEL CODE DOIS-JE AJOUTER POUR QUE L'INDICATEUR CESSE DE FONCTIONNER DANS LE TESTEUR APRÈS UN MOIS ? C'EST-À-DIRE QUE J'AI ÉCRIT TOUT CE QUI EST CORRECT ! MAIS LORSQUE JE FAIS UN BACKTEST, CELA FONCTIONNE À NOUVEAU. (mgl4)
Vous devez écrire ce code non pas dans OnInit, mais dans OnTick().
Bonjour !
Je voulais mettre une condition dans le cycle de clôture des ordres lejour de l'ouverture des ordres, afin que ceux ouverts le vendredi ne soient pas clôturés.
Essayez de cette façon :