Toute question d'un PROFI à un SUPER PROFI - 1. - page 38

 

C'est tout mauvais. Même avec des versions. Sauf avec les scripts.

Voici un exemple. Il est possible de définir et de récupérer le nom de la version à cet endroit, mais c'est un peu délicat.


 
Merci.
 
TheXpert:

A moins que les scripts.

est arrivé avec une méthode semi-finie.

Créer une nouvelle configuration pour le compilateur. comme "Release Main", dans laquelle j'écris le nom du fichier requis.

Ce n'est pas très automatisé, mais cela m'évite d'avoir un nom de fichier de sortie en double.

 

Est-ce que MQL4 a des fonctions pour travailler avec le réticule ?

J'ai besoin d'assigner la valeur de la différence de prix en pips à une variable.

 
Syzal:

Est-ce que MQL4 a des fonctions pour travailler avec le réticule ?

J'ai besoin d'assigner la valeur de la différence de prix en pips à une variable.

Alors attribuez-le, mais à quoi sert le réticule ? Les scripts ne visent pas avec le curseur ;)
 
Syzal:

Est-ce que MQL4 a des fonctions pour travailler avec le réticule ?

J'ai besoin d'assigner une valeur de différence de prix en pips à une variable.

Pas avec le réticule. Mais il y a
CHARTEVENT_MOUSE_MOVE

и

CHARTEVENT_CLICK
 

Messieurs les programmeurs. J'ai une question. Je teste un EA sur le compte de démonstration d'aforex.ru. J'obtiens parfois une erreur lorsque j'ouvre l'ordre 138 "Nouveaux prix". Je n'ai pas compris pourquoi. J'ouvre des ordres via la fonction ci-dessous. Je dois trouver la raison de l'erreur pendant l'ouverture. Qu'en pensez-vous ?

void open_positions(int signal,double lot,double price,double tp,double lev) 
  {
//signal=0 -> сигнал на открытие покупки
//signal=1 -> сигнал на открытие продажи
   int    i=0; //переменная для счётчика цикла
   string symb=Symbol(),com;
   com=DoubleToStr(lev,Digits);
   color col;
   double stop,take;
   int    count=Count_Of_Trade_Try; //количество попыток открытия ордера в случае, если его не удаётся совершить сразу
   int err=0;
   if(signal==OP_BUYLIMIT || signal==OP_BUYSTOP || signal==OP_BUY)
     {
      RefreshRates();
      price=NormalizeDouble(Ask,Digits); //цена открытия для покупок
      col=Green;
     }
   if(signal==OP_SELLLIMIT || signal==OP_SELLSTOP || signal==OP_SELL)
     {
      RefreshRates();
      price=NormalizeDouble(Bid,Digits); //цена открытия для продаж 
      col=Red;
     }
//stop=NormalizeDouble(sl(SL,signal),Digits);

   take=NormalizeDouble(tp,Digits);

   while(i<=count) 
     {
      //сама функия открытия ордера (встроенная). Для удобства восприятия параметры разнесены на разные строки:
      int ticket=OrderSend(symb,//символ
                           signal,        //тип ордера
                           lot,           //объем
                           price,         //цена открытия
                           Slipage,       //уровень допустимого реквота
                           0, //величина Stop Loss
                           0, //величина Take Profit
                           com,//комментарий ордера
                           magic_number,//магическое число
                           0,//срок истечения (используется при отложенных ордерах)
                           CLR_NONE);    //цвет отображаемой стрелки на графике (CLR_NONE - стрелка не рисуется)

      if(ticket!=-1) //если открытие произошло успешно, наносим графический объект и выходим из цикла
        {
         OrderModify(ticket,price,stop,take,0,col);
         break;
        }

      err=GetLastError();
      if(err!=0) Print("Ошибка открытия ("+symb+", "+signal+", "+price+", "+0+", "+take+"): "+Market_Err_To_Str(err));
      i++;
      Sleep(Pause_Of_Trade_Try*100); //в случае ошибки делаем паузу перед новой попыткой
     } //end while(i<=count)
  } //end void open_positions(int signal, double lot, int magic, double price=0.0, string symb="NONE") 
 
Rammik:

Messieurs les programmeurs. J'ai une question. Je teste un EA sur le compte de démonstration d'aforex.ru. J'obtiens parfois une erreur lorsque j'ouvre l'ordre 138 "Nouveaux prix". Je n'ai pas compris pourquoi. J'ouvre des ordres via la fonction ci-dessous. Je dois trouver la raison de l'erreur pendant l'ouverture. Qu'en pensez-vous ?


Quelqu'un qui est un professionnel ne pose pas de telles questions. Vous devez être dans la mauvaise branche.
 
Vinin:
Les professionnels ne posent pas ce genre de questions. Vous devez être dans la mauvaise branche.
Eh bien, si vous êtes un tel super-professionnel, pourquoi ne me dites-vous pas ce qui ne va pas ? !
 
Rammik:
Eh bien, si vous êtes un tel super-professionnel, peut-être pouvez-vous me dire ce qui ne va pas !
Je ne suis pas un superprofessionnel, mais je me demanderais d'abord ce qui équivaut à tp