Questions des débutants MQL4 MT4 MetaTrader 4 - page 79

 

Bonjour, j'ai une question simple comme celle-ci. Tout d'abord, nous ouvrons une transaction d'un côté et payons le spread. Ensuite, nous ouvrons une contre-opération avec le même lot et l'écart est également pris sur celui-ci. En d'autres termes, lorsque nous clôturons ces transactions l'une contre l'autre, cela signifie que nous payons deux spreads ?

 

veuillez me conseiller quelques lignes de code

1) comment faire fonctionner les hiboux, disons, une fois toutes les 10 secondes

2)définir un ordre en attente s'il n'y a pas d'ordre en attente à ce prix.

3) le cas échéant, veuillez indiquer comment calculer une différence entre les ordres fixés (ouverts).

 
Rustem71:


Dis-moi juste ce que tu veux faire quand le tic-tac arrivera.

Il y a tellement de travail supplémentaire que tu fais.

Et écrivez le code correctement, n'abrégez pas les parenthèses. Si vous êtes censé écrire des accolades dans la condition, vous devez le faire. Il sera plus facile de comprendre le code. Lorsque vous aurez pris le coup de main, vous pourrez commencer à abréger.

J'attends des éclaircissements sur la tique.


L'idée est que 2 ordres en attente sont ouverts d'abord qui a travaillé avec le lot initial, par exemple BUY immédiatement supprimé SELLSTOP et dans le même endroit est mis SELLSTOP mais avec le double lot, vient d'ouvrir SELL mettre BUYSTOP *2 lot, et puis, par exemple si pas déclenché trilling stop et la tendance a tourné autour de mettre en attente avec *2 lot. Et puis si vient sans une perte dans le plus, comme 0,05 sera mis trailing stop. Comme ça ! !! Si vous me dites comment optimiser + vos commentaires sur mes erreurs seront très reconnaissants ! Je ne peux pas comprendre pourquoi j'ai une place d'un ordre en attente, les ordres en attente ouverts jusqu'à la vidange totale du dépôt !
 
Akinak:
Regardez s'il vous plaît ! Si vous pouvez expliquer ce que j'ai fait de mal ! J'ai tout essayé, soit sans ouvrir une commande, soit en ouvrant un bouquet en boucle !

s'il est supérieur ou égal à un (plus simple - supérieur à zéro) - ne pas ouvrir, la même chose doit être répétée pour les baikas

et vous l'avez dans l'autre sens :

if(s==1)

Donc ça devrait être quelque chose comme ça :

if(s==0)
{ 
//открываем селл
}
 
Akinak:
Jetez-y un coup d'œil ! Si vous pouvez expliquer ce que j'ai fait de mal ! Comme seul je n'ai pas essayé ou n'ouvre pas une commande ou ouvre un pack par le cycle !!!


Si j'ai bien compris, c'est comme ça. Le reste dépend de vous.

Et écrivez les codes correctement.

Dossiers :
888.mq4  8 kb
 
Bonjour ! S'il vous plaît, aidez-moi avec cette fonction, je suis déjà épuisé et je ne sais pas comment le faire correctement ! J'ai besoin que l'on puisse entrer dans les paramètres, l'heure de mon ordinateur. Merci d'avance !
extern bool    HOUR = false;             // Часы Вкл (true) / Выкл (folse)
extern string  TimeBegin = "13:30";      // Время начала (ЧЧ:ММ)
extern string  TimeEnd   = "17:00";      // Время окончания (ЧЧ:ММ)
//Отправляет true если по времени разрешено торговать
bool isTradeTimeString()
{
 datetime hbegin = StrToTime(TimeBegin) + TimeGMTOffset();
 datetime hend = StrToTime(TimeEnd) + TimeGMTOffset();
 
 datetime dtBegin, dtEnd;        // Время начала и окончания работы
 int      hc, he;                // Часы текущего времени и окончания работы

 dtBegin=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+TimeToStr(hbegin,TIME_MINUTES));
 dtEnd=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+TimeToStr(hend,TIME_MINUTES));
 hc = TimeHour(TimeCurrent());
 he = TimeHour(dtEnd);
 if(dtBegin>=dtEnd)
 {
  if(hc>=he)
   dtEnd+=24*60*60;
  else
   dtBegin-=24*60*60;
 }
 if(HOUR==true)
 {
  if(TimeCurrent()>=dtBegin && TimeCurrent()<=dtEnd)
   return(true);
  else
  {
   if(CountTrades()==0)
    return(false);
  }
 }
 return(true);
}
 
Arseniy Barudkin:
Bonjour ! S'il vous plaît, aidez-moi avec cette fonction, je suis déjà épuisé et je ne sais pas comment le faire correctement ! J'ai besoin que l'on puisse entrer dans les paramètres, l'heure de mon ordinateur. Merci d'avance !
TimeLocal()
 
Rustem71:


Si tu as bien compris, c'est comme ça. Vous le prenez à partir d'ici.

Et écrivez les codes correctement.


Merci beaucoup ! Très utile ! Je suis un peu plus de deux semaines d'écriture et je ne connaissais toujours pas ces subtilités !
 
Bonjour, chers membres du forum ! Lorsque je crée une simple EA, j'obtiens une erreur ! Pouvez-vous me dire la raison de cette situation ?
Dossiers :
meryjj.jpg  197 kb
 
naravat:
Bonjour, chers membres du forum ! Lorsque je crée une simple EA, j'obtiens une erreur ! Pouvez-vous s'il vous plaît me dire la raison.

Vous devez mettre des parenthèses après le retour et dans celles-ci vous devez écrire une valeur du même type que le type de la fonction.