Erreurs, bugs, questions - page 149

 
Vladix:

Mettre un délai - oui, j'accepte, combien de lignes de code faudrait-il pour faire cela ? Et s'il s'agit d'une multidevise, il faut tenir compte du délai sur chaque devise, n'est-ce pas ?

J'ai écrit le code qui résout ce problème. Seulement je ne l'aime pas, tout comme, désolé, je n'aime pas le tien. Et il ne s'agit pas de parti pris, le fait est qu'il n'y a pas d'autres options, simples et élégantes.

J'ai deux lignes sur la multidevise dans le bloc pour la demande de transaction. C'est ça... Si vous devez ouvrir un ordre, vérifiez si l'heure actuelle n'est pas supérieure à l'heure limite. Il n'y a rien de plus élégant, et les deux sont absolument fiables...

if(типдействия==TRADE_ACTION_DEAL || типдействия==TRADE_ACTION_PENDING)
    ВремяОкончанияЗапрета[i3]=TimeCurrent()+СекундыЗадержкиПослеЗапроса;
 
Vladix:

Mettre un délai - oui, j'accepte, combien de lignes de code faudrait-il pour faire cela ? Et s'il s'agit d'une multidevise, il faut tenir compte du délai sur chaque devise, n'est-ce pas ?

J'ai écrit le code qui résout ce problème. Seulement je ne l'aime pas, tout comme, désolé, je n'aime pas le tien. Ce n'est pas une question de parti pris, le fait est qu'il n'existe pas d'autres solutions simples et élégantes.


Le retard n'est pas notre méthode))

1. Nous devons mémoriser le nombre de positions(ou d'ordres) dans une variable (statique ou globale) avant d'effectuer une opération de négociation.

2. En cas de non-exécution, la variable=-1 ;

En cas d'exécution réussie, nous attendons, ne faisons rien, et vérifions à chaque tick jusqu'à ce que le nombre de positions (ou d'ordres) soit égal à la variable.

3. lorsqu'il n'est pas égal - variable=-1 ;

Документация по MQL5: Торговые функции / PositionsTotal
Документация по MQL5: Торговые функции / PositionsTotal
  • www.mql5.com
Торговые функции / PositionsTotal - Документация по MQL5
 
Swan:

Le retard n'est pas notre méthode))

1. Avant une opération de trading, stocker dans une variable (statique ou globale) le nombre de positions(ou d'ordres).

Sont-ils ouverts ? Il n'y a qu'une seule position pour chaque instrument..... Vous ne pouvez pas le remplir ou le fermer partiellement, le montant sera le même. Et il n'est pas acceptable de recalculer le nombre de commandes dans l'historique... vous ne savez pas d'où ils peuvent venir...
 
Swan:

Le retard n'est pas notre méthode))

1. Avant une opération de trading, nous enregistrons le nombre de positions(ou d'ordres) dans une variable (statique ou globale).

2. En cas de non-exécution - variable=-1 ;

En cas d'exécution réussie, nous attendons, ne faisons rien, et vérifions à chaque tick jusqu'à ce que le nombre de positions (ou d'ordres) soit égal à la variable.

3. dès qu'il n'est plus égal, variable=-1 ;

Ce n'est pas une méthode - seulement pour les pips, mais pour le trading à moyen terme, c'est OK. Sinon, nous risquons de nous heurter à


10024

COMMERCE_RETCODE_TROP_DE_DEMANDES

Des demandes trop fréquentes

avec l'interdiction éventuelle d'utiliser le conseiller expert.

 
Dmitriy2:
Est-il ouvert ? La position est la même pour chaque instrument..... Vous ne pouvez pas le remplir ou le fermer partiellement... le montant sera le même. Et il n'est pas acceptable de recalculer le nombre de commandes dans l'historique... vous ne savez pas d'où ils peuvent venir...

Oui, je suis conscient de cela) nous devrions écrire dans une variable ce qui devrait être modifié à la suite de OrderSend().

Si vous fermez complètement/(ou en ouvrez un nouveau), cela changera le nombre total de poses (bien que, oui, c'est suffisant, et cela semble plus fiable, et c'est/ce n'est pas une pose par symbole à retenir). Il est bon de se souvenir du volume, il fonctionnera lors de l'ajout/suppression de positions.

Lors de la mise en place/suppression d'un ordre en attente - le nombre d'ordres (peut être calculé à l'aide du symbole).


En général : un peu d'imagination et l'ajout d'une seule variable, par type d'opération commerciale, rendra votre code plus fiable, simple et élégant :)

 
Valmars:

Pas une méthode - uniquement pour les pips, mais pour le trading à moyen terme - une méthode normale. Sinon, nous risquons de nous heurter à


10024

COMMERCE_RETCODE_TROP_NOMBREUX_DEMANDES

Des demandes trop fréquentes

Dans le cas contraire, nous risquons de nous voir interdire l'utilisation du conseiller expert.


c'est un peu différent, c'était comme ça en 4 :

ERR_TOO_MANY_REQUESTS 141 Trop de demandes. Vous devez réduire la fréquence des demandes et modifier la logique du programme.

Vous devez essayer très fort pour obtenir cette erreur, ou vous avez peut-être un compte dans une société de courtage intelligente :)

Le glissement est une méthode normale pour certaines erreurs, dans d'autres cas, il semble un peu de travers.

 
Swan:

c'est un peu différent, c'était comme ça dans le 4 :

il faut vraiment faire des efforts pour faire cette erreur, ou avoir un compte DC douteux :)

Le glissement est une méthode normale pour certaines erreurs, dans d'autres cas, il semble un peu tordu.


Je ne sais pas.

Ici, c'est même écrit dans le manuel du terminal :

  • Le Trailing Stop ne peut pas déclencher plus d'une position toutes les 10 secondes. C'est-à-dire que le terminal fixe un tel délai. Et le trailing stop est automatiquement traité sur le serveur.
 
Valmars:

Je ne sais pas...

Ici, c'est même écrit dans le manuel du terminal :

  • Le Trailing Stop ne peut pas déclencher plus d'une position toutes les 10 secondes. C'est-à-dire que le terminal fixe un tel délai. Et le trailing stop est automatiquement traité sur le serveur.
Sur un tick à cinq chiffres, il n'est vraiment pas nécessaire de déplacer chaque arrêt. Mais cela ne signifie pas que si les trailing stops sont effectués toutes les 10 secondes, les autres transactions sont interdites.


Ce n'est pas ce que je veux dire :)

Vladix:

D'une manière générale, le problème est le suivant :

un tick arrive, l'indicateur montre qu'il faut fermer, je ferme

le tick suivant arrive, l'indicateur montre qu'il faut fermer et je ne sais pas quoi faire - la position est déjà écrasée et ce qui lui arrive en ce moment, bien sûr, peut être découvert, mais via le cinquième point.

Dans ce cas, il suffit de déterminer que les informations sur la position ont été mises à jour, sans utiliser le cinquième point, de préférence).

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

Les développeurs.

Dans l'aide MQL, il n'y a pas de ENUM_CHART_VOLUME_MODE dans l'onglet Index. Ajoutez-le...

 
Swan:

En général : un peu d'imagination et l'ajout d'une seule variable, par type d'opération commerciale, rendra votre code plus robuste, simple et élégant :)

Alors, fantasmez exactement sur le code dont l'homme a besoin, qui serait de 10 lignes et fiable, comme le mien, et qu'il aimerait :)

Et en parlant d'élégance, vous proposez de faire un tas avec une logique peu claire à partir de deux lignes qui remplissent absolument et logiquement la tâche que vous demandez....

Cygne:

Le retard n'est pas notre méthode))

Dans le cas d'une exécution, nous attendons... ...3. yak pas égal...

Et attendre combien de temps ? Ça ne compte pas comme un retard ? Et si elle ne devient jamais "non égale" ? Et nous attendons la météo... Une demande d'échange peut facilement retourner une troue et ne pas être satisfaite...

Raison: