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

 
Анатолий Железняк #:

La question est alors : qui est cette personne ? C'est un de vos amis ? Présentez-le.

Je vous l'ai dit : au niveau des utilisateurs ! !!

C'était au niveau des utilisateurs.

expiration est l'heure d'expiration d'un ordre en attente.

Mais ça ne te convient pas.

Retirer un ordre "des soins d'EA" est impossible, car les soins vont au magicien, et vous ne pouvez pas les changer.

Nous devons réécrire l'EA avec un contrôle d'ordre différent.

 
MakarFX #:

C'était au niveau de l'utilisateur

le délai d'expiration de l'ordre en cours.

Mais cela ne fonctionne pas pour vous.

Vous ne pouvez pas retirer un ordre "hors du contrôle d'EA", car le contrôle est basé sur un assistant, et vous ne pouvez pas le modifier.

Nous devons réécrire l'EA avec un autre contrôle d'ordre.

Vivez longtemps.

 
MakarFX #:

C'était au niveau de l'utilisateur

le délai d'expiration de l'ordre en cours.

Mais cela ne fonctionne pas pour vous.

Vous ne pouvez pas retirer un ordre "hors du contrôle d'EA", car le contrôle est basé sur un assistant, et vous ne pouvez pas le modifier.

Vous devez réécrire l'EA avec un contrôle d'ordre différent ...

Makar, ne te déchire pas.

 
Анатолий Железняк #:

Oh, mon Dieu ! J'ai demandé un niveau d'utilisateur et vous me demandez de passer en revue l'ensemble de l'EE et de demander sur un ton de mentor : "Quel est le vôtre ?" Je ne veux pas en parler. J'aime jouer à des jeux, pas comprendre l'intérieur des jouets.

Si Magik n'est pas 0, fermez la position et entrez à nouveau.

 
MakarFX #:

C'était au niveau de l'utilisateur

le délai d'expiration de l'ordre en cours.

Mais cela ne fonctionne pas pour vous.

Vous ne pouvez pas retirer un ordre "hors du contrôle d'EA", car le contrôle est basé sur un assistant, et vous ne pouvez pas le modifier.

Nous devons réécrire l'EA avec un contrôle d'ordre différent.

Vous pouvez laisser sous contrôle même avec le même assistant, la question est de savoir de quel type d'ordre vous avez besoin si vous le voulez, alors vous ne pouvez pas le faire si c'est spécifique à votre liste.

 
for (int i=0;i<OrdersTotal()-2;i++) последних 2 видеть не будет даже с тем же магиком только что ему нужно до путя так и не понятно 
 
Aleksandr Egorov #:
Il en a besoin en tant qu'utilisateur, sans corriger le code
 
Existe-t-il un moyen de définir un raccourci clavier pour activer l'objet"input box" afin de pouvoir y saisir du texte ? Par exemple, la taille du lot pour une opération à terme.
 
MakarFX #:
Il en a besoin en tant qu'utilisateur, sans corriger le code

alors ce n'est pas bon du tout ;))

 

Bonjour. Pouvez-vous me donner un indice ? MT5

Je suis en train de faire : un indicateur qui prend des captures d'écran sur une minuterie et les met dans des dossiers (période de symbole).

L'algorithme prévu : une capture d'écran est effectuée à l'initialisation. Comme les opérations sur les fichiers prennent du temps, le chronomètre déplace la capture d'écran réalisée en premier et en réalise une nouvelle.

La capture d'écran réalisée lors de l'initialisation est déplacée avec succès par le timer.

Problème :
1 La première capture d'écran prise par le minuteur dans le dossier ne s'affiche pas immédiatement. Il est affiché UNIQUEMENT lorsque le terminal est fermé ou que l'indicateur est redémarré.
2 captures d'écran, sauf la première, non déplacées, erreur 5019 (le fichier n'existe pas), bien qu'elles soient affichées dans le dossier (sauf la première faite par le timer).


#property strict
#property indicator_chart_window
#property indicator_plots 0

enum ENUM_FULL_MANUAL { full, //весь график
            manual, //указанный
            };
input int timer=5; //время на шаг в секундах
input ENUM_FULL_MANUAL skr_mode=full; //размер скриншота   
input int width = 640; // ширина 
input int height = 320;// высота 
input string format = ".png";

ENUM_ALIGN_MODE align_mode=ALIGN_RIGHT; // тип выравнивания

string name_folder, name_file;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
Print("OnInit()");

ScreenShot();
         
name_folder=Symbol()+"  "+StringPeriod();
FolderCreate(name_folder);


EventSetTimer(timer);


return(INIT_SUCCEEDED);
}
//===================================================================
void OnDeinit(const int reason)
{
EventKillTimer();
Move() ; 
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
             const int prev_calculated,
             const datetime &time[],
             const double &open[],
             const double &high[],
             const double &low[],
             const double &close[],
             const long &tick_volume[],
             const long &volume[],
             const int &spread[])
{
//---

//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
   Print("OnTimer() ");
   Move() ; 
   ScreenShot();
}//+------------------------------------------------------------------+
bool Move(){
   string src_path; 
   string dst_path; 
   StringConcatenate(src_path,"","//",name_file); 
   StringConcatenate(dst_path,name_folder,"//",name_file); 
   ResetLastError();
   if(FileMove(src_path,0,dst_path,0)){
      Print("FileMove OK ");
      return true;
   }   
   else{
      string err_text="FileMove ERR: "+(string)GetLastError();
      if(GetLastError()==5019) err_text+=("  5019 name_file "+name_file);
      Print(err_text);
   }  
   return false;
}

bool ScreenShot(){   
   name_file=TimeToString(TimeLocal(), TIME_DATE|TIME_SECONDS)+format;
   StringReplace(name_file, ":", "-");
   if(skr_mode==full){
      if(ChartScreenShot(0, name_file, (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS, 0)
      , (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, 0), ALIGN_RIGHT)){
         Print("screen name_file ", name_file);
         return true;
      }
      else{
         Print("screen ERR: ", GetLastError());
      }   
   }   
   if(skr_mode==manual){
      if(ChartScreenShot(0, name_file, width, height, align_mode)){
         return true;
      }
   }      
   return false;  
}
string StringPeriod(){
   if(Period()==1) return "M1";
   if(Period()==2) return "M2";
   if(Period()==3) return "M3";
   if(Period()==4) return "M4";
   if(Period()==5) return "M5";
   if(Period()==6) return "M6";
   if(Period()==10) return "M10";
   if(Period()==12) return "M12";
   if(Period()==15) return "M15";
   if(Period()==20) return "M20";
   if(Period()==30) return "M30";
   if(Period()==16385) return "H1";
   if(Period()==16386) return "H2";
   if(Period()==16387) return "H3";
   if(Period()==16388) return "H4";
   if(Period()==16390) return "H6";
   if(Period()==16392) return "H8";
   if(Period()==16396) return "H12";
   if(Period()==16408) return "Daily";
   if(Period()==32769) return "Weekly";
   if(Period()==49153) return "Monthly";
   return "ERROR";
}