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

 

Bonjour, j'ai rencontré ce problème : je n'arrive pas à faire en sorte que l'EA ne traite que sur deux périodes de temps. Comment je fais ça ? Pouvez-vous me dire comment faire ? Le code ressemble à ceci, mais il n'accepte qu'un seul point, il ignore le deuxième.

extern string с = "Блок № 3";
extern int    Start_H1 = 0;
extern int    Start_M1 = 30;
extern int    End_H1   = 7;
extern int    End_M1   = 59;
extern int    Start_H2 = 12;
extern int    Start_M2 = 30;
extern int    End_H2   = 20;
extern int    End_M2   = 10;



if (((Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )) ||
    ((Hour()>=Start_H2 && Minute()>Start_M2) && (Hour()<=End_H2 && Minute()<=End_M2))) 
        {
         открытие ордеров
        }
 
Nikita Chernyshov:

Bonjour, j'ai rencontré ce problème : je n'arrive pas à faire en sorte que l'EA ne traite que sur deux périodes de temps. Comment je fais ça ? Pouvez-vous me dire comment faire ? Le code ressemble à ceci, mais il n'accepte qu'un seul point, il ignore le deuxième.

Il serait préférable de convertir les heures et les minutes en temps plein et de les comparer avec l'heure actuelle.

   string startTime_1, startTime_2, endTime_1, endTime_2;
   StringConcatenate(startTime_1, Start_H1, ":", Start_M1);
   StringConcatenate(endTime_1, End_H1, ":", End_M1);
   StringConcatenate(startTime_2, Start_H2, ":", Start_M2);
   StringConcatenate(endTime_2, End_H2, ":", End_M2);
   datetime startHM_1, startHM_2, endHM_1, endHM_2;
   startHM_1 = StringToTime(startTime_1);
   endHM_1 = StringToTime(endTime_1);
   startHM_2 = StringToTime(startTime_2);
   endHM_2 = StringToTime(endTime_2);
   if((TimeCurrent() >= startHM_1 && TimeCurrent() <= endHM_1) || (TimeCurrent() >= startHM_2 && TimeCurrent() <= endHM_2))
 
Bonjour. Il y a des objets - des triangles avec des noms : 321fa34, 321fa53, 321fa41. Comment connaître le prix minimum du triangle le plus frais ? Le prix qui se trouve dans les propriétés du milieu.
 
YanSay:

Добрый день!

Прошу помочь со следующей проблемой:

1) После выполнения некоторых условий, открывается отложенный ордер:

Подскажите пожалуйста, что нужно дописать и куда, чтобы неоткрывшийся отложенный ордер был удален в том случае, если цена уже прошла стоп лосс(этого неоткрывшегося оредра).

Извините за глупый вопрос, заблудился в форумах пока искал ответ.

Заранее благодарю!

Identifiant

Description

ORDER_TIME_GTC

La commande restera dans la file d'attente jusqu'à ce qu'elle soit retirée.

ORDER_TIME_DAY

La commande ne sera valable que pour le jour de négociation en cours.

HEURE_DE_LA_COMMANDE

La commande sera valable jusqu'à la date d'expiration

JOUR_DE_L'HEURE_DE_LA_COMMANDE

L'ordre sera en vigueur jusqu'à 23:59:59 du jour de négociation en cours. Si cette heure n'est pas comprise dans une session de négociation, l'expiration se fera à l'heure de négociation la plus proche.


Ce ne sont que les paramètres pour supprimer un ordre en attente !

Pour supprimer l'ordre, vous devez surveiller le prix et, lorsqu'il atteint le prix stop, supprimer l'ordre - tout cela doit être écrit dans un code séparé !

 

Messieurs,

S'il vous plaît, aidez-moi à trouver l'erreur :

(Erreurs)

')' - fin inattendue du programme

" - virgule attendue

"-semicolon attendu

Trade_BY' - fonction non définie

Trade_SELL' - fonction non définie

Dossiers :
 

Veuillez me conseiller !

Comment puis-je utiliser le script pour changer les paramètres (une variable spécifique) de l'indicateur sur le graphique!

Si cela est possible, un morceau de code serait souhaitable ! !!

 
PolarSeaman:
Bonjour. Il y a des objets - des triangles avec des noms : 321fa34, 321fa53, 321fa41. Comment connaître le prix minimum du triangle le plus frais ? Le prix qui se trouve dans les propriétés du milieu.

1.

OBJPROP_CREATETIME

Temps de création de l'objet

date-heure r/o

2.

OBJPROP_PRICE

Coordination des prix

modifier=numéro du point d'ancrage

 
Nikita Chernyshov:

Bonjour, j'ai rencontré ce problème : je n'arrive pas à faire en sorte que l'EA ne traite que sur deux périodes de temps. Comment je fais ça ? Pouvez-vous me dire comment faire ? Le code ressemble à ceci, mais il n'accepte qu'un seul point, et ignore le second.

Avec cette approche, les deux horizons temporels seront ignorés. Par exemple, l'heure actuelle est 01:15. Est-ce que la condition tiendra ?

(Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )

Non, ça ne le sera pas. Après tout, les minutes actuelles sont de 15, ce qui est inférieur aux 30 de départ. De même pour le deuxième intervalle. Il est préférable de convertir l'heure en minutes dès le début de la journée :

int nCurDayMinutes = Hour() * 60 + Minute();
int nStart1DayMinutes = Start_H1 * 60 + Start_M1;
int nEnd1DayMinutes = End_H1 * 60 + End_M1;
if (nCurDayMinutes >= nStart1DayMinutes && nCurDayMinutes < nEnd1DayMinutes)
{
   // внутри интервала
}
 
YanSay:

Bonjour !

Veuillez m'aider à résoudre le problème suivant :

1) Lorsque certaines conditions sont remplies, un ordre en suspens s'ouvre :

Veuillez me dire ce qu'il faut ajouter et où il faut supprimer un ordre en attente si le prix a déjà dépassé le stop loss (de cet ordre en attente).

Désolé pour cette question stupide, je me suis perdu dans les forums en cherchant une réponse.

Je me suis perdu dans les forums en cherchant la réponse. Merci d'avance !

Tout d'abord, nous ne savons pas si l'ordre a été ouvert, car il n'y a pas de contrôle à ce sujet. Il est donc inutile de vérifier si le Stop Loss ou le Take Profit d'un ordre qui n'a pas été ouvert.

 
Игорь:

Veuillez me conseiller !

Comment puis-je utiliser le script pour changer les paramètres (une variable spécifique) de l'indicateur sur le graphique!

Si cela est possible, un morceau de code serait souhaitable ! !!

Question très étrange. C'est la même chose que de demander : "Comment tourner sur un tabouret avec une lime ?

Raison: