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

 

La documentation indique que la fonction iCustom doit être utilisée pour appeler des indicateurs tiers.

Le deuxième paramètre de cette fonction est le délai. Si j'ai ce paramètre dans un indicateur, et qu'il sera spécifié dans les paramètres de la fonction iCustom, il y a un endroit après le paramètre nom pour entrer la liste des paramètres passés par l'indicateur.

Donc. Je passerai le paramètre timeframe de l'indicateur dans tous les cas. Si nous spécifions le même paramètre à 2 endroits, ce n'est pas logique. Alors quelle est la bonne façon de procéder ?

 
hoz:

La documentation indique que la fonction iCustom doit être utilisée pour appeler des indicateurs tiers.

Le deuxième paramètre de cette fonction est le délai. Si j'ai ce paramètre dans un indicateur, et qu'il sera spécifié dans les paramètres de la fonction iCustom, il y a un endroit après le paramètre nom pour entrer la liste des paramètres passés par l'indicateur.

Donc. Je passerai le paramètre timeframe de l'indicateur dans tous les cas. Si nous spécifions le même paramètre à 2 endroits, ce n'est pas logique. Alors quelle est la bonne façon de procéder ?


Tout est en ordre. Tout doit être spécifié. Le deuxième paramètre est le TF où l'indicateur est physiquement attaché, le TF personnalisé est celui où l'indicateur prend les données pour le calcul. Bien sûr, vous pouvez supprimer le deuxième paramètre du code de l'indicateur, s'il est logique.
 
Zhunko:
Tout est en ordre. Tout doit être précisé. Le deuxième paramètre est le TF où l'indicateur est physiquement attaché, le TF personnalisé est celui où l'indicateur prend les données pour le calcul. Bien sûr, vous pouvez supprimer le deuxième paramètre du code de l'indicateur, si cela est logique.

Je vois maintenant. Merci.

Mais les mêmes paramètres qui doivent être définis dans l'indicateur doivent être déclarés dans l'EA. Il s'avère que toutes les valeurs des paramètres pour le bon fonctionnement conjoint de l'indicateur et du Conseiller Expert doivent être définies de la même manière dans les deux cas ?

Si j'ai saisi les variables dans iCustom et que je ne les ai pas déclarées dans l'EA, alors à la compilation, le journal indiquera que les variables que j'ai saisies ne sont pas déclarées.

 
Qui sait dans quel Code Base EA je peux voir comment la fonction OrderCloseBy() est codée avec toutes les tartes. J'ai regardé le script closeby dans le tutoriel, mais je n'arrive pas à comprendre comment en faire une fonction à appeler depuis EA, etc. Peut-être que tu peux m'apprendre ce qu'il faut faire ! Merci !
 
borilunad:
Qui sait dans quel Code Base EA je peux voir comment la fonction OrderCloseBy() est codée avec toutes les tartes. J'ai regardé le script closeby dans le tutoriel, mais je n'arrive pas à comprendre comment en faire une fonction à appeler depuis EA, etc. Peut-être que tu peux m'apprendre ce qu'il faut faire ! Merci !

Vous l'avez vu ici ? https://docs.mql4.com/ru/trading/OrderCloseBy
 

Bien sûr que je l'ai fait ! Je comprends le principe, mais cela ne fonctionne pas, et je dois profiter de l'occasion pour économiser sur l'écart. C'est pourquoi je voulais voir des exemples qui fonctionnent. J'ai consulté le Code Base, mais sans succès jusqu'à présent. Personne n'utilise cette fermeture mutuelle dans ces EAs. J'espère les rencontrer assemblés et non par les vis. Bonne nuit ! Je serai peut-être plus sage demain matin !
 
Pouvez-vous me dire comment supprimer les lignes de tendance, les indicateurs, etc. sur un ordinateur normal ; sur le Windows je le faisais avec le bouton droit de la souris après les avoir sélectionnés, mais sur l'imac je ne sais pas comment. Je ne trouve pas non plus comment ajouter l'or à la liste générale ?
 
Comment supprimer des lignes sur IMAC ?
feeje:
Pouvez-vous me dire comment supprimer les lignes de tendance, les indicateurs, etc. sur un ordinateur normal ; sur le Windows je le faisais avec le bouton droit de la souris après les avoir sélectionnés, mais sur l'imac je ne sais pas comment. Et je ne trouve pas non plus comment ajouter l'or à la liste commune ?
 

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.

 
Pouvez-vous me dire comment clôturer une partie du bénéfice (par exemple, 50 % d'une transaction ouverte) ?