[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 306

 

Bonjour à tous !

Je teste une stratégie qui implique l'ouverture d'un ordre au marché à l'ouverture de la bourse.

dechaque chandelier de cinq minutes.

Pour certains ordres, le testeur (MT-4 d'Alpari) ne s'ouvre pas et donne l'erreur 148.

Cette erreur est causée par le dépassement de la limite des ordres ouverts en même temps.

Je ne vais pas ouvrir toutes les cinq minutes dans la vraie vie.

Q : Comment puis-je supprimer une limite d'ordres ouverts en même temps ?

Dans le testeur ?

Merci.

 

gyfto, vous avez mal compris ou je ne l'ai pas bien expliqué. Nous avons une position ouverte, nous devons déterminer son prix d'ouverture, et lorsque la barre ferme au-dessus du prix d'ouverture, nous sortons.

 
borilunad:
Victor, comment pouvez-vous le faire sans externs, vous devez déboguer dans le testeur, dans la démo ! Est-ce que vous écrivez vraiment de telle manière que vous n'avez pas besoin d'éditer quoi que ce soit ? Je suis d'accord que la stabilité est nécessaire dans votre TS, mais il est impossible de ne pas modifier les paramètres, à moins, bien sûr, que le marché ne les modifie, c'est-à-dire que vous les avez programmés avec un retour d'information ! Alors vous êtes déjà un grand as ! Félicitations !


Ce n'est pas ça, c'est juste qu'avec moi, tout ce que j'écris n'a presque aucun paramètre d'optimisation. Je préfère exactement les stratégies basées sur le price action Induks que j'ai étudiées tranquillement, juste pour pouvoir travailler avec elles. Mais ils ne m'intéressent que pour visualiser ce qui se passe.

Et pour transformer les paramètres en paramètres, c'est une adaptation au marché. Et l'adapter à un calendrier spécifique est une panacée ???

 
cursed:

gyfto, vous avez mal compris ou je ne l'ai pas bien expliqué. Nous avons une position ouverte, nous devons déterminer son prix d'ouverture, et lorsque la barre ferme au-dessus du prix d'ouverture, nous sortons.


A en juger par ce qui précède, votre état est au mauvais endroit. Vous devez d'abord organiser la recherche des ordres, puis, lorsque l'ordre est trouvé, son paramètre doit être comparé à un autre.

Sinon, il est comparé au prix de clôture de la barre en dehors de la recherche, et donc nous n'avons pas de résultat.

 
hoz:

... Et puis les paramètres, c'est une adaptation au marché. Et l'adapter à un calendrier spécifique est une panacée ???

Oui, si cette période est en temps réel. :)
 
Zhunko:

Victor, vous avez beaucoup de variables dans votre fonction et aucune n'est déclarée.

Le compilateur a dit :

variable non définie

Une variable n'est pas définie. Il y en a 18.


Vadim, je vois qu'ils ne sont pas déclarés. J'y ai pensé depuis un certain temps. Vous n'avez déclaré aucune variable globalement, tout comme moi. Mais il n'y a AUCUNE erreur pendant la compilation ! J'ai compris que toutes vos variables sont définies par des paramètres de fonction dans l'inclusion, n'est-ce pas ?

 
tara:
Oui, si ce laps de temps est en temps réel. :)


Ce n'est pas un ajustement, c'est une sorte d'auto-ajustement :)
 
hoz:


Vadim, je vois qu'ils ne sont pas déclarés. J'y pense depuis un moment. Vous n'avez déclaré aucune variable globalement, tout comme moi. Mais il n'y a AUCUNE erreur lors de la compilation ! J'ai compris que toutes vos variables sont définies par des paramètres de fonction dans l'inclusion, n'est-ce pas ?

Toute variable doit d'abord être déclarée avant de pouvoir être utilisée. Vous pouvez l'avoir dans les paramètres, vous pouvez l'avoir globalement dans la bibliothèque.
 
<br / translate="no">

A en juger par la conception de la fonction, elle est hautement spécialisée. Pourquoi le mettre dans la bibliothèque ? D'autant plus qu'elle sera probablement appelée en boucle sur chaque barre.

Vous parliez de vitesse et d'optimisation. Vous créez un code très lent. Dans MQL4, vous ne devez pas mettre les fonctions dans une boucle. Moins il y a d'appels de fonction dans une boucle, plus le code s'exécute rapidement.

Il s'agit donc d'une fonction de la bibliothèque :

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}

Vadim, à propos Fonctions en boucle. Vous voulez dire ce que l'opérateur de l'interrupteur rend ? Mais ce n'est pas comme si j'obtenais des valeurs sur l'ensemble des variables de la boucle. Elle ne fait que comparer le type du masque (variable d'entrée de la fonction) et calcule ensuite la valeur du masque. Il s'avère qu'il n'y a pas de calculs supplémentaires. Je sélectionne simplement le type de masque, et c'est tout ! Je veux comprendre ce que vous voulez dire par :

Zhunko:

Dans MQL4, vous ne devez pas mettre de fonctions dans les boucles. Moins il y a d'appels de fonction dans la boucle, plus le code est rapide.

Je peux clarifier ?
 
hoz:

Ce n'est pas un ajustement, c'est une sorte d'auto-ajustement :)

Un raccord sans marque ferme est un raccord.

Jusqu'à ce que les principaux paramètres fonctionnent correctement, il faut les définir en réfléchissant, en essayant, en testant dans le testeur, dans la démo et dans le vrai jeu, et ainsi de suite, jusqu'à ce que quelque chose de nouveau vous vienne à l'esprit qui vous semble meilleur. Et tout cela sans ajustement, mais par la logique, la théorie et la pratique !

Raison: