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

 
Sysmart:

Question sur les tests (voir la photo du testeur)

- nous ouvrons un ordre de vente (flèche verte dans l'image), il a un Take Profit de 1.10439 ;

- nous ajoutons un ordre de vente stop en attente (flèche jaune dans l'image) avec le prix 1.10441 ;

La question est de savoir pourquoi l'ordre Take Profit ne s'est pas déclenché à 1.10439 et le Sell Stop (flèche rouge) à 1.10441 ?

Lorsque vous achetez à 1,3000, vous achetez cher au mauvais prix 1,3003 (par exemple), lorsque vous fermez la position que vous avez fixée au TP de vente à 1,2020, votre transaction se clôturera à un prix où le Bid est à 1,2017 et le Ask à 1,2020, c'est-à-dire que vous payez 2 fois le spread pour gérer votre position, et la différence va dans la poche du bureau. Vous pouvez également négocier sur des comptes plus liquides comme NDB (5 chiffres).

 
novichok2018:
Bonjour, ma question est hors sujet, mais je ne sais pas où la poser si je veux obtenir une réponse vraiment compétente. Google n'a pas aidé. La question est la suivante : aujourd'hui, l'indice DAX30 a soudainement commencé à être négocié non pas à 9h00, mais à 2h15. Nulle part, y compris sur le site de la Bourse de Francfort, je n'ai trouvé d'explication ou d'avertissement. Peut-être que quelqu'un est plus informé et peut me donner un indice où trouver l'information ?

Puisque personne n'est au courant de ce problème, veuillez m'indiquer comment lier le début de l'EA au début de la négociation d'un symbole. Pour l'instant, j'ai une liaison simple avec l'heure : if(Hour()==9) {CODE}. Par conséquent, lorsque je fais passer l'heure de début de 9h00 à 14h15, la condition relative aux positions d'ouverture cesse de fonctionner. Et si je change simplement l'heure, il n'y a aucune garantie que l'heure de début des opérations change à nouveau, et que je ne le remarque pas.

 
novichok2018:

Puisque personne n'est au courant de ce problème, veuillez m'indiquer comment lier le début de l'EA au début de la négociation d'un symbole. Pour l'instant, j'ai une liaison simple avec l'heure : if(Hour()==9) {CODE}. Par conséquent, lorsque je modifie l'heure de début de 9h00 à 14h15, la condition relative aux positions d'ouverture cesse de fonctionner. Et si nous changeons simplement l'heure, rien ne garantit que l'heure de début des échanges changera à nouveau, et je ne le remarquerai pas.

Recherchez dans la kodobase.

voici le premierhttps://www.mql5.com/ru/code/27315

 
Sysmart:

Question sur les tests (voir la photo du testeur)

- nous ouvrons un ordre de vente (flèche verte dans l'image), il a un Take Profit de 1.10439 ;

- nous ajoutons un ordre de vente stop en attente (flèche jaune dans l'image) avec le prix 1.10441 ;

La question est de savoir pourquoi l'ordre Take Profit ne s'est pas déclenché à 1.10439 et le Sell Stop (flèche rouge) à 1.10441 ?

N'oubliez pas que les ordres de vente sont ouverts au cours acheteur et fermés au cours vendeur, et que c'est l'inverse pour les ordres d'achat. C'est tout.

 
Igor Makanu:

recherche de codobase

voici le premierhttps://www.mql5.com/ru/code/27315

Merci, bien sûr, mais cet exemple est hors sujet. Nous avons besoin d'un lien vers l'heure de début des transactions sur un instrument particulier ou vers l'heure de début de la bourse qui négocie cet instrument. Je n'ai pas pu le trouver dans la base de données Kodobase.

 

Bonjour, j'écrivais du code et j'ai rencontré ce problème.

Le code fonctionne si vous excluez une ligne :

#property strict

Avec le même, il cesse immédiatement de fonctionner.

Voici le fragment de code lui-même où l'erreur est détectée :

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

Et voici les résultats :

whichBars' - identificateur non déclaré ; ligne 7 du fragment

Le 'whichBars' - identifiant non déclaré ; 8ème ligne du fragment


Comment peut-on y remédier ?

 
pykachilo:

Bonjour, j'écrivais du code et j'ai rencontré ce problème.

Le code fonctionne si vous excluez une ligne :

Avec le même, il cesse immédiatement de fonctionner.

Voici le fragment de code lui-même où l'erreur est détectée :

Et voici les résultats :

whichBars' - identificateur non déclaré ; ligne 7 du fragment

Le 'whichBars' - identifiant non déclaré ; 8ème ligne du fragment


Comment peut-on y remédier ?

whichBars doit être défini au début de la fonction, et non dans la condition.
 

Bon après-midi.

Voici une question : Dans la documentation sous "Graphic Event Types" (https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents)
pour l'événementCHARTEVENT_KEYDOWN, il est défini que le paramètre sparam est "String value of bitmask describing the status of keyboard buttons".

Cependant, je n'arrive pas à trouver d'informations sur les bits responsables de quoi.

Pour l'événement CHARTEVENT_MOUSE_MOVE, il existe un paramètre similaire, sparam, qui est une "valeur de chaîne du masque de bits décrivant l'état des boutons de la souris".
est décrit en détail sur la même page...

Où puis-je trouver la documentation sur sparam="string value of bitmask describing the status of keyboard buttons" pour l'événement CHARTEVENT_KEYDOWN ?

Merci.

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

Où puis-je trouver la documentation relative à sparam="string value bitmask describing the status of the keyboard buttons" pour l'événement CHARTEVENT_KEYDOWN ?

vous pouvez imprimer via Print(sparam) pour les boutons souhaités.

Je ne connais pas votre tâche, mais je préfère moi-même utiliser lparam, afin de ne pas avoir à penser à la langue, à la légende et aux autres variations.

 
Igor Zakharov:

vous pouvez imprimer via Print(sparam) pour les boutons souhaités.

Je ne connais pas votre tâche, mais je préfère moi-même utiliser lparam, afin de ne pas avoir à penser à la langue, à la légende et aux autres variations.

Il s'agit d'une solution intéressante pour un cas général. Il est clair que pour une clé particulière, on peut passer par toutes les combinaisons possibles (langue, majuscules, etc.) pour voir ce qui se passe et même essayer d'en tirer quelques conclusions,
MAIS, cette question devrait être reflétée dans la documentation. Pour les événements de la souris c'est - tout est disponible dans la documentation. Et le clavier ?

Raison: