[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 435

 

Chers collègues, quel est le conseil le plus détaillé ?

J'ai un ordre en attente X

Comment fermer l'ordre après N heures à partir du moment où l'ordre en attente a été créé ?

Une condition supplémentaire : l'ordre en attente peut devenir un ordre au marché.

Dans le cas où l'ordre en attente reste en suspens, tout est simple.

Le cas où un ordre en attente devient un ordre de marché est intéressant (c'est-à-dire qu'au moment où l'ordre en attente devient un ordre de marché, le moment de sa création change également).

J'aimerais que les professionnels me donnent des idées pour résoudre ce problème, et mieux encore, j'aimerais obtenir un code pour cette situation.

 
zorber:

J'aimerais également résoudre ce problème, mais le problème est que dans le testeur, lorsqu'un ordre en suspens est déclenché, il n'est pas possible d'accéder à ..... le type d'ordre ne change pas... et il n'apparaît pas dans le journal comme un ordre au marché... et je ne pourrais pas dire si elle a été déclenchée ou non à partir des données du journal(((
 
kakin:

Professionnels, veuillez nous conseiller. Si j'ai placé un ordre stop en attente, mais que le prix y est entré avec un écart étendu qui dépasse le stoploss..... Que va-t-il se passer ?

L'ordre sera mangé par la propagation... Ou bien une erreur se produira-t-elle et l'ordre ne sera pas déclenché ?

Le pire scénario pour vous et qui se produira.
 

Bon après-midi. RÉPONDRE À LA QUESTION S'IL VOUS PLAÎT (3e message). Question sur l'index d'un fichier... Dans mon livre MQL4, que vous trouverez à l'adresse MQL4.community, dans la section "Standard Functions", il y a un exemple du script "File Operations", qui est destiné à lire les données d'un fichier et à afficher des objets graphiques dans une fenêtre de symboles :

//--------------------------------------------------------------------
// timetablenews.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 2 --
   int Handle,                         // Файловый описатель
       Stl;                            // Стиль вертикальной линии
   string File_Name="News.csv",        // Имя файла
          Obj_Name,                    // Bмя объекта
          Instr,                       // Название валюты
          One,Two,                     // 1я и 2я чать названия инстр.
          Text,                        // Текст описания события
          Str_DtTm;                    // Дата и время события(строка)
   datetime Dat_DtTm;                  // Дата и время события(дата)
   color Col;                          // Цвет вертикальной линии
//--------------------------------------------------------------- 3 --
   Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
   if(Handle<0)                        // Неудача при открытии файла
     {
      if(GetLastError()==4103)         // Если файла не существует,..
         Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера 
      else                             // При любой другой ошибке..
         Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
      PlaySound("Bzrrr.wav");          // Звуковое сопровождение
      return;                          // Выход из start()      
     }
//--------------------------------------------------------------- 4 --
   while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
     {                                // ..указатель не в конце файла
      //--------------------------------------------------------- 5 --
      Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
      Text     =FileReadString(Handle);// Текст описания события
      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --
      Dat_DtTm =StrToTime(Str_DtTm);   // Преобразование типа данных
      Instr    =StringSubstr(Text,0,3);// Извлекаем первые 3 символа
      One=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа
      Two=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа
      Stl=STYLE_DOT;                   // Для всех - стиль пунктир
      Col=DarkOrange;                  // Для всех - цвет такой
      if(Instr==One || Instr==Two)     // А для событий по нашему ..
        {                             // .. финансовому инструменту..
         Stl=STYLE_SOLID;              // .. такой стиль..
         Col=Red;                      // .. и такой цвет верт. линии
        }
      //--------------------------------------------------------- 7 --
      Obj_Name="News_Line  "+Str_DtTm;     // Имя объекта
      ObjectCreate(Obj_Name,OBJ_VLINE,0,Dat_DtTm,0);//Создаем объект..
      ObjectSet(Obj_Name,OBJPROP_COLOR, Col);       // ..и его цвет,..
      ObjectSet(Obj_Name,OBJPROP_STYLE, Stl);       // ..стиль..
      ObjectSetText(Obj_Name,Text,10);              // ..и описание 
     }
//--------------------------------------------------------------- 8 --
   FileClose( Handle );                // Закрываем файл
   PlaySound("bulk.wav");              // Звуковое сопровождение
   WindowRedraw();                     // Перерисовываем объекты
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --

Ci-dessous, lors de l'analyse de ce script dans le livre sur MQL4, la phrase suivante est donnée : "si le contrôle spécifié (les 2 dernières lignes du bloc 5-6) est supprimé, un objet supplémentaire sera créé au moment de l'exécution. Et seulement après cela, la condition de terminaison de la boucle while se déclenchera et le contrôle sera transmis aux blocs 8-9".

Est-ce que je comprends bien ? Un pointeur de fichier n'est PAS INDIQUÉ PAR DES SIGNES DE TEXTE (par exemple : texte|| est un pointeur de fichier), mais est un pointeur AVEC EXPRESSION, par exemple : textek est le caractère "à", le k-ième est mis en évidence par un pointeur de fichier. Cela explique la nécessité des cordes (voir p.164) :

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

En effet. A l'avant-dernière itération, après avoir créé l'objet LAST

2007.05.11 18:30;JPY

le pointeur de fichier est à la position du dernier objet, c'est-à-dire que

2007.05.11 18:30;JPYFabrication industrielle

(où o est le caractère "o", k est l'index du fichier). Ensuite, lors du passage du contrôle à l'en-tête de l'instruction while, la fonction FileIsEnding(handle) renverra évidemment true, car le pointeur de fichier ne se trouve PAS à la fin du fichier, mais au DERNIER caractère de ce fichier. Ensuite, lorsque les deux premières lignes sont exécutées, le pointeur de fichier se déplace vers un espace vide et s'il n'y a pas de lignes

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

le script créera un graphique (c'est-à-dire une ligne) avec une description vide et une coordonnée temporelle qui correspond à 0. C'est ce que signifie la phrase : "si le contrôle spécifié (les 2 dernières lignes du bloc 5-6) est supprimé, un objet supplémentaire sera créé au moment de l'exécution. "

Question: est-ce que je comprends bien :

a ) la définition d'un pointeur de fichier ;

b) la signification de la phrase "Si le contrôle spécifié (les 2 dernières lignes du bloc 5-6) est supprimé, alors un objet supplémentaire sera créé lors de l'exécution du programme.Et seulement après cela, la condition de fin de la boucle while sera déclenchée et le contrôle sera transmis aux blocs 8-9".

P.S. Afin de ne pas encombrer le forum, merci d'avance pour votre réponse.

 
Dites-moi, s'il vous plaît, quand et pourquoi le conseiller expert ouvre parfois des transactions sans SL et/ou TP, bien qu'ils soient prescrits dans les paramètres ? Il s'ouvre, mais ne se modifie pas.
 
yosuf:
Dites-moi, s'il vous plaît, quand et pourquoi le conseiller expert ouvre parfois des transactions sans SL et/ou TP, bien qu'ils soient prescrits dans les paramètres ? Il s'ouvre et ne se modifie pas.

Parce qu'il y a un "espaceur" entre les "paramètres" et la commande OrderSend() du code du programme.
 
Comment ouvrir le fichier brut dans le dossier historique ?
 
sss2019:
Comment ouvrir le fichier brut dans le dossier historique ?

les règles de recherche du forum.

Cela a été fait depuis longtemps, que voulez-vous faire :)

 

Obtenir une liste d'instruments financiers

et vous avez déjà posté dans ce fil

 
Ilan1.6L'EA dynamique ne fonctionne pas. Je l'ai réglé pour qu'il négocie tout seul. Mais il n'y a pas de commerce. Que faire, qui sait ? ? ???
Raison: