Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 590

 

Bonjour !

Pouvez-vous me montrer comment on peut interdire à un EA basé sur l'indicateur Triple Exponentiel Moyen d'ouvrir une position si le dernier trade est sorti par SL ?

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 

MQL5
Je n'ai aucun problème en mode normal, mais dès que je lance l'optimisation, l'erreur s'imprime à chaque exécution et il n'y a pas de sortie.

Mais le truc, c'est que ça n'exécute même pas le code. J'ai mis des empreintes autour du programme, aucune sortie, juste une erreur à chaque exécution qui se termine.

Pourquoi l'impression ne fonctionne-t-elle pas ?

 
Roman Sharanov:

MQL5
Le conseiller expert fonctionne sans problème en mode normal, mais dès que je commence à l'optimiser, il se plaint à chaque passage qu'il est entré dans les limites du tableau.

Mais le truc, c'est que ça n'exécute même pas le code. J'ai mis des empreintes autour du programme, aucune sortie, juste une erreur à chaque exécution qui se termine.

Pourquoi Print ne fonctionne pas ?

Vous devez vérifier la taille du tableau. On vous montre une ligne où il y a une sortie en dehors du tableau. Ici, vous devez insérer Print avant cette ligne, dans laquelle vous écrivez la sortie de la taille et de l'index du tableau, par laquelle vous essayez d'accéder aux données du tableau - la taille et l'index du tableau seront imprimés dans le journal, puis le programme se terminera avec une erreur.

MAIS ! Faites tout cela dans le testeur en mode visuel, pas dans l'optimiseur - dans l'optimiseur (et le testeur en mode non visuel) toutes les imprimantes sont désactivées pour l'accélération.

 
Artyom Trishkin:

Sortir du tableau avant d'atteindre Print().

Vérifiez la taille du tableau. On vous montre une ligne où la sortie est en dehors du tableau. Avant cette ligne, vous devez insérer Print, dans lequel vous écrivez la sortie de la taille et de l'index du tableau, par lequel vous essayez d'accéder aux données du tableau - la taille et l'index du tableau seront imprimés dans le journal, et ensuite le programme se plantera.

MAIS ! Faites tout cela dans le testeur en mode visuel, pas dans l'optimiseur - dans l'optimiseur (et le testeur en mode non visuel), les imprimantes sont toutes désactivées pour accélérer.

C'est le problème, tout fonctionne avec n'importe quel paramètre dans le visuel, mais avec n'importe quelle optimisation, cela sort des limites.

 
Roman Sharanov:

C'est le problème : avec n'importe quel paramètre dans le visuel, tout fonctionne, mais avec n'importe quelle optimisation, c'est hors limites.

Qu'y a-t-il dans le tableau ? Je ne peux que supposer que soit il n'y a pas encore de données dans le tableau, soit il est plus petit que vous ne le pensez. Y a-t-il des contrôles dans le programme pour la taille du tableau?

 
Artyom Trishkin:

Qu'y a-t-il dans le tableau ? Je ne peux que supposer que soit il n'y a pas encore de données dans le tableau, soit il est plus petit que vous ne le pensez. Y a-t-il des contrôles dans le programme pour la taille du tableau ?

Dernier N, j'ai 500, valeurs macd, et les limites de cycle sont strictement limitées et ne peuvent jamais être inférieures à 0 et supérieures à N, je l'ai à la fois débogué et compté sur papier

 
Roman Sharanov:

Le dernier N, j'ai 500, valeurs macd, et les limites de la boucle sont strictement limitées et ne peuvent jamais être inférieures à 0 et supérieures à N, je l'ai à la fois débogué et compté sur papier

Êtes-vous sûr que le tableau est plein de données lorsque vous y accédez ? Y a-t-il une vérification de la disponibilité des données et du fait que le tableau a la bonne valeur ?

Ce n'est pas parce que c'est écrit et calculé sur un bout de papier que cela correspond à ce que l'EA a reçu (ou n'a pas reçu).

 
Artyom Trishkin:

Êtes-vous sûr que le tableau est plein de données lorsque vous y accédez ? Y a-t-il une vérification que les données sont disponibles et que le tableau a la bonne taille ?

Ce n'est pas parce que c'est écrit et calculé sur une feuille de papier que cela correspond à ce que le conseiller expert a reçu (ou n'a pas reçu).

Oui, au début, avant toutes les opérations, il est copié du tampon.

 
Quelle est la formule universelle pour calculer le prix d'équilibre si la transaction comporte des commissions et des swaps ?

Il existe une formule simple qui fonctionne pour les cotations à 5 chiffres et les dépôts en dollars américains.

Lot x profit en pips = profit en $.

Si c'est un achat, et qu'il y a des échanges et des commissions dans la transaction, alors le prix d'équilibre sera un peu plus élevé que le prix ouvert.
(S'il n'y a pas de swaps et de commissions, le seuil de rentabilité est le prix d'ouverture).

Mais si l'instrument est exotique ou si la cotation est à 4 ou 2 chiffres ou si la devise de dépôt est la livre. La formule ci-dessus n'est pas utile.
Existe-t-il une formule universelle ?
 
Roman Sharanov:

Oui, au début, avant toutes les opérations, copié à partir du tampon.

Copié. Et combien de copies sont contrôlées ?

Si vous utilisez un indicateur avec lissage, il faut un peu plus de barres que prévu. Par conséquent, ce n'est pas parce que vous avez copié que les données ont été copiées et sont disponibles dans leur taille complète.

Il est plus facile pour vous de vérifier la taille du tableau et, s'il n'a pas la taille requise, de quitter OnTick()

Raison: