[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 - 2. - page 190

 
DhP:

C'est la même chose, mais il est plus facile (plus familier) de lire le code.

Je suis trop paresseux pour le découvrir, mais quelqu'un trouvera facilement une erreur dans votre code sans se fatiguer. Attendez.

Il n'y a pas d'erreur. Tout fonctionne bien individuellement, mais je voudrais tout combiner en un seul conseiller expert. Au moins pour combiner les Expert Advisors avec des lignes, le signal sonore peut aussi être exécuté séparément comme un script.
 

Parfois, un message apparaît dans le journal de bord :

prix invalide 1.37197000 pour la fonction OrderSend

De quoi s'agit-il ? Il apparaît après que le stop loss ait été atteint.

 

le mauvais prix est 1.37197000.

le prix correct est 1.37197 ou 1.3719, selon le DNS.

NormalizeDouble() est utilisé pour définir le nombre de chiffres après la virgule.

 

Comment puis-je suivre l'ouverture d'une nouvelle barre dans int start() ?

J'ai besoin que le code ne soit pas déclenché à chaque tick mais seulement après l'ouverture d'une nouvelle barre.

 

Si l'heure de la barre n'est pas la même, cela signifie que la barre a changé.

s'il n'est pas égal, cela signifie que la barre a changé - faites ce que vous devez faire et n'oubliez pas l'heure.

 

Qui a utilisé isCloseLastPosByStop() ou isCloseLastPosByTake() ? Montre-moi comment tu as fait.

 

Pourriez-vous m'indiquer comment charger un indicateur sur un graphique de manière programmatique ?

Il existe la fonction bool ServiceLoadCustomIndicator(int hwndChart,...) ; //hwndChart- Descripteur système de la fenêtre graphique, où l'indicateur est chargé.

Je ne sais pas comment connaître le descripteur de la fenêtre graphique.

J'ai juste besoin de me souvenir de GetTickCount sur le premier tick après le démarrage de l'indicateur, mais le code ci-dessous ne fonctionne pas - le terminal se bloque. Peut-être que dans init() RefreshRates ne fonctionne pas du tout... ?

 while(true){
  if(RefreshRates()) { tik=GetTickCount(); break; }
  Sleep(1); }
 
doon:

Qui a utilisé isCloseLastPosByStop() ou isCloseLastPosByTake() ? Montre-moi comment tu as fait.

C'est on ne peut plus simple :

if (isCloseLastPosByStop(OP_BUY, Magic)) {
// код если последняя поза Бай с магиком Magic закрылась по стоп-приказу
}
if (isCloseLastPosByTake(OP_SELL, Magic)) {
// код если последняя поза Селл с магиком Magic закрылась по тейку
}

Placez les fonctions elles-mêmes en dehors de la fonction start(), vous pouvez même les placer à la toute fin du code entier.

 
todem:

donc au moins un peu de vidéo en direct ajoutera à l'expérience des futurs programmeurs ici.
Votre explication n'est pas satisfaisante. Une "vidéo en direct" avec une publicité stupide pour un courtier n'apporte rien d'autre que de la publicité pour le courtier.
Vos messages sont supprimés, vous avez été prévenu.
 
artmedia70:

C'est aussi simple que ça :
Placez les fonctions elles-mêmes en dehors de la fonction start(), ou à la toute fin de l'ensemble du code.

Je dois ajouter qu'au même lien, où doon a pris le code des fonctions, il y a un exemple de script test_isCloseLastPosByStop.mq4, où tout est fait comme Artem le dit. Vous devriez y jeter un coup d'œil avant de demander.
Raison: