Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1162

 
Aliaksandr Kryvanos:

Bonjour à tous, j'ai une question, est-il possible de modifier les paramètres de l'indicateur à la volée, sans ouvrir la fenêtre des paramètres ?

https://www.mql5.com/ru/forum/213718#comment_5624828

Можно ли поменять входные параметры автоматически?
Можно ли поменять входные параметры автоматически?
  • 2017.08.17
  • www.mql5.com
Хочу сделать универсального солдата, который позволил бы, менять входные параметры на ходу, + чтобы советник переинициализовался Информации, по пов...
 
Сергей:

c'est comme ça que je l'ai écrit... Je ne comprends pas pourquoi les paires jpy s'affichent incorrectement... essayez de vous attacher à n'importe quelle paire sans jpy dans le terminal et ensuite à une paire avec jpy, les résultats sont différents....

J'ai trouvé le problème - les paires avec jpy ont une valeur de point différente. J'ai pris MarketInfo("SYMBOL",MODE_POINT)). J'ai changé la police, sa taille et sa couleur. Correction d'une autre erreur


Dossiers :
 
STARIJ:
J'ai trouvé ce qui ne va pas - les paires avec jpy la valeur du point est différente. J'ai pris MarketInfo("SYMBOL",MODE_POINT)). J'ai changé la police, sa taille et sa couleur. Correction d'une autre erreur



Vous devriez ajouter le timing, car il n'est pas toujours possible qu'un tick apparaisse sur tous les graphiques en même temps et lorsque vous changez de barre, vous obtenez les mauvaises données...

J'ai juste à peu près le même système et dans la vie réelle, j'ai vu des divergences dans les résultats.

Je l'ai résolu de cette façon -

    BarShift_AUDUSD = iBarShift("AUDUSD",0,Time[1],true); if(BarShift_AUDUSD <= 0) return;
    BarShift_NZDUSD = iBarShift("NZDUSD",0,Time[1],true); if(BarShift_NZDUSD <= 0) return;
    BarShift_USDCAD = iBarShift("USDCAD",0,Time[1],true); if(BarShift_USDCAD <= 0) return;
    BarShift_USDJPY = iBarShift("USDJPY",0,Time[1],true); if(BarShift_USDJPY <= 0) return;

    vol = iMA("AUDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_AUDUSD);
    vo2 = iMA("NZDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_NZDUSD);
    vo3 = iMA("USDCAD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDCAD);
    vo4 = iMA("USDJPY",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDJPY);

il synchronise toutes les lectures des autres graphiques sur le graphique ouvert - c'est-à-dire, jusqu'à ce qu'une nouvelle barre commence sur tous les graphiques...

 
elmucon:
Je pourrais ajouter le timing, car il n'est pas toujours possible qu'un tick apparaisse sur tous les graphiques en même temps et si vous changez de barre, vous obtiendrez les mauvaises données...
J'ai juste à peu près le même système et dans la vie réelle, j'ai vu des divergences dans les résultats.
Je l'ai résolu de cette façon -
Il synchronise tous les relevés des autres graphiques sur le graphique ouvert - c'est-à-dire jusqu'à ce qu'une nouvelle barre commence sur tous les graphiques...

Regardez attentivement le code affiché. En général, le but était juste d'éliminer les erreurs, pour aider Sergei à réaliser un gros bénéfice

 


Pouvez-vous me dire pourquoi la valeur de l'indicateur iCustom est toujours 0. Même sur les sommets. C'est si vous obtenez les valeurs dans l'indicateur. Puis comme dans l'EA sans aucun problème. Le deuxième tampon dans l'indicateur sans problèmes.


//--------------------------------------------------------------------
#property indicator_separate_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property  indicator_color1 Blue     // Цвет первой линии
#property  indicator_color2 Red      // Цвет второй линии
double zz; 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
  
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      zz=iCustom(NULL,0,"Zig_Zag",15,5,5,0,i);
      Buf_0[i]= zz;                 // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i];              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 
Александр:

Veuillez me dire pourquoi la valeur de l'indicateur iCustom est toujours égale à 0. Même sur les sommets. C'est si je reçois des valeurs dans l'indicateur. Dans ce cas, il n'y a aucun problème avec le conseiller expert. Le deuxième tampon dans l'indicateur sans problèmes.

Voyez si le script ci-joint peut vous aider. Le ZigZag est nul partout sauf aux sommets. iCustom - fonction de calcul de l'indicateur personnalisé

Dossiers :
 
STARIJ:

Voyez si le script ci-joint peut vous aider. Le ZigZag est nul partout sauf aux sommets. iCustom - fonction pour le calcul de l'indicateur personnalisé

J'ai spécifiquement dit : - "Même sur les sommets". Par exemple, iCustom devrait afficher les valeurs sur les sommets. C'est exactement ce qu'il fait dans le conseiller expert. Mais il ne le fait pas dans un indicateur. Pourquoi ?

 
Александр:

J'ai spécifiquement dit : - "Même sur les sommets". Par exemple, iCustom devrait afficher les valeurs sur les sommets. C'est ce qu'il fait dans le conseiller expert. Mais il ne le fait pas dans l'indicateur. Pourquoi ?

Regardez le script ci-joint - vous y trouverez peut-être une réponse à votre question. En général, à l'aide de scripts, vous pouvez vérifier, découvrir, clarifier ...
 
STARIJ:
Regardez le script posté ici - vous trouverez peut-être la réponse à votre question. En général, vous pouvez utiliser les scripts pour vérifier, découvrir, clarifier ...
OK
 
Александр OK

apprendre des scripts, écrire des scripts est un bon moyen d'apprendre une langue et de rechercher les erreurs.