Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1124

 
Alexey Viktorov:
C'est ainsi que l'on fixe un stop sur le prix. Seuls les points sont multipliés par _Point et ajoutés au prix actuel. Mais personne n'interdit de spécifier un prix particulier.
Nous devons fixer un stop pour tous les ordres ouverts à un prix spécifié. Par exemple, nous ouvrons trois ordres et le prix stop, disons 1.32511, est déjà spécifié dans le Conseiller Expert. C'est ce dont nous avons besoin)
 
Anton Govorukhin:
Nous avons besoin qu'il fixe un stop pour tous les ordres ouverts à un prix donné. Par exemple, trois ordres sont ouverts et un prix stop de 1.32511, disons, est prédéfini dans le Conseiller Expert... C'est ainsi que cela devrait être)
Prenez n'importe quel conseiller expert de Kodobase qui utilise des stops et modifiez la partie où le stop est fixé. C'est pour 15 minutes de travail lent.
 

Bonjour les gars, pouvez-vous m'expliquer la logique de serveur->terminal->conseiller. J'ai cette question à cause de la fonction de traitement des erreurs dans l'EA. D'après ce que j'ai compris du tutoriel, TIC est : SERVER ---> transmet les cotations de prix ---> TERMINAL ---> donne le contrôle à l'EA ---> ADVISOR (cycle de tic-tac traité) ---> retour en arrière en bref.

QUESTION : Au début, quand le serveur transmet une cotation, est-ce juste une cotation, ou dans ce cycle TICK il y a immédiatement une donnée sur les diverses erreurs sur le serveur (si cela arrive bien sûr) ?

C'est difficile de programmer sans comprendre la logique.

 
Evgeniy Oshurkevich:

Salutations les gars, expliquez-moi la logique du serveur->terminal->conseiller. J'ai cette question à cause de la fonction de traitement des erreurs dans l'EA. D'après ce que j'ai compris du tutoriel, TIC est : SERVER ---> transmet les cotations de prix ---> TERMINAL ---> donne le contrôle à l'EA ---> ADVISOR (cycle de tic-tac traité) ---> retour en arrière en bref.

QUESTION : Au début, quand le serveur transmet une cotation, est-ce juste une cotation, ou dans ce cycle TICK il y a immédiatement une donnée sur les diverses erreurs sur le serveur (si cela arrive bien sûr) ?

C'est difficile de programmer sans comprendre la logique.

Les erreurs surviennent indépendamment des tics.
 
Vitalie Postolache:
Les erreurs surviennent indépendamment des tics.

Je ne comprends pas alors. Les fonctions de gestion des erreurs ne sont nécessaires que pour les cas de commerce, ai-je bien compris ? Est-ce avant d'ouvrir une commande ou avant de modifier une commande. Est-ce correct ? C'est-à-dire qu'avant d'ouvrir un ordre, je dois d'abord m'assurer qu'il n'y a pas d'erreurs sur le serveur ; s'il y en a, j'ouvre l'ordre ?

Mon EA a toujours envoyé des ordres sans aucun message d'erreur, probablement à cause de l'entêtement de mon EA. C'est peut-être à cause de cela que mon EA n'a pas été autorisé à commercer. Je ne sais pas quoi faire avec eux, je dois leur demander de l'aide et leur demander des détails.

Si les erreurs surviennent indépendamment des autres, alorsGetLastError() demande lui-même au serveur s'il y a des erreurs ?

 
Evgeniy Oshurkevich:

Je ne comprends pas alors. Les fonctions de gestion des erreurs ne sont nécessaires que pour les cas de commerce, ai-je bien compris ? Est-ce avant d'ouvrir une commande ou avant de modifier une commande. Est-ce correct ? Autrement dit, avant d'ouvrir un ordre, je dois d'abord m'assurer qu'il n'y a pas d'erreurs sur le serveur ; s'il y en a, j'ouvre l'ordre ?

Mon EA a toujours envoyé des ordres sans aucun message d'erreur, probablement à cause de l'entêtement de mon EA. C'est peut-être à cause de cela que mon EA n'a pas été autorisé à commercer. Je ne sais pas quoi faire avec eux, je dois leur demander de l'aide et ils doivent me demander.

Si les erreurs surviennent indépendamment des autres, alorsGetLastError() demande lui-même au serveur s'il y a des erreurs ?

Eh bien, il n'y a pas d'erreurs côté client sur le serveur, de quelque manière que ce soit, jamais, n'importe où, du tout, comprenez cela pour commencer.

Le serveur renvoie un code numérique en réponse à l'ordre de transaction d'un client, c'est tout. Code 0 - c'est bon, la commande est passée sans problème. Code supérieur à zéro - il y a des problèmes, le terminal enregistre le code d'erreur et le décryptage.

Le traitement du code de retour du serveur ne doit pas seulement être pris en compte dans l'Expert Advisor, le programmeur doit tenir compte des erreurs avant d'envoyer la commande au serveur et empêcher l'envoi de valeurs erronées dans les ordres de transaction qui entraîneront des erreurs. Dans ce cas, le trading à l'aide d'EAs ne sera pas interdit. Sinon, vous obtiendrez une signature.

Exemple : Il n'y a pas assez d'argent sur le compte pour acheter un lot d'euros, le conseiller expert ne le prend pas en compte et bombarde le serveur d'ordres d'achat d'un lot à chaque tick. Naturellement, le serveur va au mieux mettre le compte en mode manuel.

Si le conseiller expert vérifie d'abord la marge requise pour l'achat d'un lot, puis compare cette valeur aux fonds disponibles sur le compte et constate qu'il n'y a pas assez de fonds et ne négocie pas, mais avertit le trader, alors tout est OK, c'est un exemple de bon comportement.

Vous devez envisager toutes les conditions d'erreur possibles, corriger la valeur lorsque cela est possible, bloquer les transactions lorsque cela n'est pas possible et avertir l'opérateur des problèmes rencontrés.

 
Evgeniy Oshurkevich:

Je ne comprends pas alors. Les fonctions de gestion des erreurs ne sont nécessaires que pour les cas de commerce, ai-je bien compris ? Est-ce avant d'ouvrir une commande ou avant de modifier une commande. Est-ce correct ? Autrement dit, avant d'ouvrir un ordre, je dois d'abord m'assurer qu'il n'y a pas d'erreurs sur le serveur ; s'il y en a, j'ouvre l'ordre ?

Mon EA a toujours envoyé des ordres sans aucun message d'erreur, probablement à cause de l'entêtement de mon EA. C'est peut-être à cause de cela que mon EA n'a pas été autorisé à commercer. Je ne sais pas comment le faire, je dois le faire avec un conseiller expert, mais je ne sais pas comment le faire.

Si les erreurs surviennent indépendamment des autres, alorsGetLastError() demande lui-même au serveur s'il y a des erreurs ?

Le principe : au moment de faire une opération de trading, il faut logiquement comprendre "y aura-t-il assez d'argent pour la transaction ? L'étape suivante : "Est-ce le bon niveau pour la commande, ou la distance le permettra-t-elle ou non ? - vérifier. C'est une vérification de votre part de ne pas toucher le serveur.

Ensuite : les contrôles sont passés et passés avec succès - nous envoyons une commande au serveur et attendons la réponse, la fonctionGetLastError() reçoit une réponse du serveur, s'il n'y a pas d'erreur "0", s'il y a des erreurs, elle renvoie le code d'erreur, respectivement, et renvoie votre commande pour révision. En outre, la tâche consiste à traiter l'erreur reçue et à décider s'il faut re-bombarder le serveur ou simplement se calmer. Les codes d'erreur sont dans l'aide.

PS. au moment où j'écrivais, vous avez déjà répondu)

 
Vitalie Postolache etVitaly Muzichenko, un grand MERCI humain ! )) Imaginez, je l'ai finalement eu)))
 
Evgeniy Oshurkevich:
Vitalie Postolache etVitaly Muzichenko, un grand MERCI humain ! )) Imaginez, j'ai enfin compris.)
Excellent) Compléter les détails. Imaginez la situation suivante : votre société de courtage cote jusqu'à 23-59 le vendredi, mais ses demandes de transaction ne sont traitées que jusqu'à 23-50. Vous avez un EA et ses stochastiques sont croisés quelque part et il commence à envoyer une demande au serveur et obtient l'erreur "Market is closed", mais les ticks sont en cours et il envoie à nouveau un ordre à chaque tick. Pensez-vous que le serveur va aimer ça ? Il est également souhaitable de tenir compte de ces éléments.
 
Vitaly Muzichenko:
Bien) Alors laissez-moi ajouter. Imaginez la situation : votre société de courtage cote jusqu'à 23-59 le vendredi, mais les demandes de transaction ne sont traitées que jusqu'à 23-50. Vous avez un EA et ses stochastiques sont croisés quelque part et il commence à envoyer des demandes au serveur et obtient l'erreur "Market is closed", mais les ticks continuent et il envoie des ordres à chaque tick, sans vérification. Pensez-vous que le serveur va aimer ça ? Ce genre de choses doit également être pris en compte.
Je l'ai déjà reçu, et sur ce merci. J'ai prescrit la fonction de gestion des erreurs avant tout ordre, mais je me demande encore comment ralentir l'EA, s'il y aura des erreurs à cause de mon erreur, et où exactement je dois la prescrire. Par exemple, j'ai essayé d'ouvrir une commande, mais une erreur s'est produite, comment la récupérer ? Par exemple, OrderSend(....) ; a effectué une transaction, comment puis-je obtenir des informations sur la réussite de la transaction ?