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

 
rapid_minus:

Eh bien, je suis complètement confus : OrdBuy_1( ) est la fonction qui ouvre BAY sur les conditions #1 au-dessus de cette fonction. Seulement, le type correct est probablement double plutôt que int, car il renvoie le prix d'ouverture de l'ordre. Et d'après ce que j'ai compris, je ne l'ai inséré dans aucune fonction ; il est placé séparément, après int start(), extrayant les valeurs de tous les indicateurs nécessaires et analysant la situation actuelle du marché (est-ce que je me trompe ?).

Et comment normaliser les arrêts et les prises de vue, ou mieux encore, comment ne pas les régler du tout ?

Et je ne comprends pas pour le chèque. J'ai dû mal comprendre le tutoriel - "bool OrderClose (int ticket, double lots, double prix, int slippage, color Color=CLR_NONE)Fonction de clôture d'un ordre de marché. " Qu'est-ce qu'un chèque ?

Bref, plus on avance, plus c'est bête :(.

Pourquoi pensez-vous que c'est correct ?

//Локальная переменная, открывающая ордер БАЙ
   int OrdBuy_1() = (OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-1500*Point,Bid+1500*Point));

Vous avez écrit - variable. Mais deux parenthèses signifient que c'est vous qui avez déclaré la fonction. A l'intérieur d'une autre fonction. Et ce qui suit n'est pas sa description, mais son affectation.

Et, si vous dites qu'il doit retourner le prix d'ouverture, alors pourquoi comparez-vous la valeur à la vérité ?

if (OrdBuy_1()==true)                              //Если был открыт ордер №1, то...

En fait, OrderSend() renvoie le numéro de ticket de la position ouverte en cas de succès. Sinon, -1 en cas d'erreur. Pour trouver la nature de l'erreur, vous devez examiner le contenu de la dernière erreur GetLastError () et, si possible, traiter le code d'erreur renvoyé par le serveur commercial (c'est ce dont je parlais).

Vous vérifiez que le numéro du ticket est "vrai". Et cette valeur est soit 0 (faux), soit toute autre valeur que zéro (vrai). En cas d'erreur, OrderSend() retournera -1, ce qui est vrai, et ensuite quoi ?

 
artmedia70:
Calculer la ligne virtuelle au lieu de la ligne réelle.

Déjà commencé. Le problème est de savoir comment inverser l'indexation des barres pour que le plus grand indice soit à droite (pour calculer la géométrie de la ligne de tendance).

Je l'ai fait comme ça, mais comment le comparer avec un cycle de calcul des indicateurs. Peut-être existe-t-il un autre moyen plus technique d'inverser l'indexation ?

for(i=limit;i>=0;i--)
   {
   Bar[i]=Bar[i+1]+1;
   }
 
Forexman77:

Déjà commencé. Le problème est de savoir comment inverser l'indexation des barres pour que le plus grand indice soit à droite (pour calculer la géométrie de la ligne de tendance).

Je l'ai fait comme ça, mais comment le comparer avec un cycle de calcul des indicateurs. Peut-être existe-t-il un autre moyen plus technique d'inverser l'indexation ?

Pourquoi ? Utilisez la barre et le prix des deux points de la ligne pour obtenir le prix de la barre en cours de calcul :

double EquationDirect(double x1, double y1, double x2, double y2, double x) {return((x2==x1)?y1:(y2-y1)/(x2-x1)*(x-x1)+y1);}

x1 est la barre du premier point de la ligne, y1 est le prix du premier point de la ligne, x2 et y2 sont la barre/le prix du deuxième point de la ligne, x est le numéro de la barre sur laquelle vous voulez le prix.

 
artmedia70:

Pourquoi ? Utilisez la barre et le prix des deux points de la ligne pour obtenir le prix de la barre à calculer :

x1 est la barre du premier point de la ligne, y1 est le prix du premier point de la ligne, x2 et y2 sont la barre/le prix du deuxième point de la ligne, x est le numéro de la barre à laquelle vous voulez le prix.

Ok. Merci.
 
Veuillez me conseiller sur la façon de fermer toutes les positions pour le jour suivant à 23.00, aucun problème pendant la journée (si (Hour_curr>= temps nécessaire), mais j'ai un problème avec le déplacement après 00.00. Merci beaucoup.
 
aleks_pavlenko:
Veuillez me conseiller sur la façon de fermer toutes les positions pour le jour suivant à 23.00, aucun problème pendant la journée (si (Hour_curr>= temps nécessaire), mais j'ai un problème avec le déplacement des positions après 00.00. Merci d'avance.
Si le jour d'ouverture de la position n'est pas égal au jour où elle doit être fermée.
 
artmedia70:
Si le jour d'ouverture de la position n'est pas égal au jour de fermeture de la position.
Exact, le jour d'ouverture n'est pas égal au jour de fermeture, comment l'implémenter dans mq4.
 

Bonjour, je ne comprends pas comment une partie du code (par exemple la description et le calcul des variables globales) peut être transformée en fichier include ?

Comment l'extension mgh est-elle attribuée au fichier ?

Le fichier inclus réduit-il la taille de l'Expert Advisor ?

Merci.

 
rapid_minus:

Bonjour, je ne comprends pas comment une partie du code (par exemple la description et le calcul des variables globales) peut être transformée en un fichier include ?

Comment l'extension mgh est-elle attribuée au fichier ?

Le fichier inclus réduit-il la taille de l'Expert Advisor ?

Merci.

Un .mq4 normal peut être inclus, il n'est pas nécessaire qu'il soit .mqh, vous n'avez même pas besoin de le compiler. Le fichier d'inclusion se distingue par l'absence de fonctions spéciales OnInit(), OnDeinit(), OnTick, etc.

Il n'y a aucun effet sur la taille du fichier, qu'il s'agisse de code inlined ou de tout le code en un seul morceau, le code inlined est inclus dans le code exécutable final.

 
evillive:

Un fichier .mq4 normal peut être inclus, il n'est pas nécessaire qu'il soit .mqh, vous n'avez même pas besoin de le compiler. Le fichier inclus se distingue par l'absence des fonctions spéciales OnInit(), OnDeinit(), OnTick, etc.

Cela n'a aucun effet sur la taille du fichier d'inclusion, que le code entier soit inclus en un seul morceau, le code de l'inline est inclus dans l'exécutable final.

Est-ce que j'ai bien compris - nous écrivons un morceau de code sans les fonctions init(), start() et ainsi de suite, nous le sauvegardons en tant que fichier .mqh et c'est tout ? Nous pouvons le mettre dans le terminal_directory\experts\include et il sera appelé et exécuté sans aucun problème ?

Merci.

Raison: