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

 
EVGENII SHELIPOV #:

Makar, quelque chose ne va pas. Je l'adore, merci. J'ai trouvé moi-même une option pas très jolie, mais elle fonctionne.

Montre-moi où GetAveragePriceManMaxOrders() est appelé.
 

MakarFX #:
Покажи где идет обращение к GetAveragePriceManMaxOrders()

 ObjectCreate(0,"AveragePriceLineMinMaxOrders0",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(0));
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_COLOR, clrLime);
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_STYLE, STYLE_DASH);
   ObjectCreate(0,"AveragePriceLineMinMaxOrders1",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(1));
   ObjectSet("AveragePriceLineMinMaxOrders1",OBJPROP_COLOR, clrRed);
   ObjectSet("AveragePriceLineMinMaxOrders1", OBJPROP_STYLE, STYLE_DASH);

Makar Je n'ai rien de sérieux accroché à cette fonction pour le moment. Je viens de faire une référence pour visualiser les objets. Cette fonction est pour l'avenir, pour ainsi dire.

 
EVGENII SHELIPOV #:

Makar Je n'ai rien de sérieux accroché à cette fonction pour le moment. Je viens de faire une référence pour visualiser les objets. Cette fonction est pour ainsi dire destinée à l'avenir.

Supprimer

ObjectCreate(0,"AveragePriceLineMinMaxOrders0",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(0));
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_COLOR, clrLime);
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_STYLE, STYLE_DASH);
   ObjectCreate(0,"AveragePriceLineMinMaxOrders1",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(1));
   ObjectSet("AveragePriceLineMinMaxOrders1",OBJPROP_COLOR, clrRed);
   ObjectSet("AveragePriceLineMinMaxOrders1", OBJPROP_STYLE, STYLE_DASH);

et tout devrait fonctionner

 

Bonjour à tous. J'ai une telle tâche dans mt4. Initialement, au début de la journée, j'ouvre 30 graphiques de différents symboles avec un modèle à moyen terme, et sur tous les graphiques, j'ai attaché un indicateur et une EA avec ses paramètres. Ensuite, j'analyse les graphiques et sur celui qui a un signal, je passe de D1 à n1 et s'il y a un signal sur n1, le Conseiller Expert ouvre des positions et il les soutient. En fin de compte, il s'avère qu'une partie du graphique se trouve sur le d1, et une autre partie sur le n1. Au début du jour suivant, j'ai à nouveau besoin que tous les graphiques soient sur d1 avec les indicateurs et EA qui ont enregistré leurs paramètres. J'ai essayé d'enregistrer un profil au moment où tous les graphiques sont sur d1. Je charge le profil, mais les graphiques qui ont été basculés en n1 restent toujours sur cette échelle de temps. Existe-t-il une solution prête à l'emploi pour basculer facilement et rapidement tous les graphiques ouverts dans le terminal vers d1 en sauvegardant tous mes paramètres ? Un script, un conseiller expert ou autre chose ?

Deuxième question : si j'ai 30 graphiques ouverts et que je me trouve à droite de la barre inférieure où se trouvent tous les graphiques, je peux passer au bon graphique en un seul clic au lieu de feuilleter un graphique ?


le graphique le plus à droite sur 30. La flèche de droite fait défiler 1 graphique à la fois - comment puis-je aller au graphique le plus à droite ?

 
DanilaMactep #:

Bonjour à tous. J'ai une telle tâche dans mt4. Initialement, au début de la journée, j'ouvre 30 graphiques de différents symboles avec un modèle à moyen terme, et sur tous les graphiques, j'ai attaché un indicateur et une EA avec ses paramètres. Ensuite, j'analyse les graphiques et sur celui qui a un signal, je passe de D1 à n1 et s'il y a un signal sur n1, le Conseiller Expert ouvre des positions et il les soutient. En fin de compte, il s'avère qu'une partie du graphique se trouve sur le d1, et une autre partie sur le n1. Au début du jour suivant, j'ai à nouveau besoin que tous les graphiques soient sur d1 avec les indicateurs et EA qui ont enregistré leurs paramètres. J'ai essayé d'enregistrer un profil au moment où tous les graphiques sont sur d1. Je charge le profil, mais les graphiques qui ont été basculés en n1 restent toujours sur cette échelle de temps. Existe-t-il une solution prête à l'emploi pour basculer facilement et rapidement tous les graphiques ouverts dans le terminal vers d1 en sauvegardant tous mes paramètres ? Un script, un conseiller expert ou autre chose ?

Deuxième question : si j'ai 30 graphiques ouverts et que je me tiens à droite dans la barre inférieure où se trouvent tous les graphiques, je peux passer au graphique de droite d'un seul coup au lieu de feuilleter un graphique.

Voici un script pour répondre à cette question :

/********************************************************************\
|                                                           Test.mq5 |
|                                            © 2021, Alexey Viktorov |
|                       https://www.mql5.com/ru/users/alexeyvik/news |
\********************************************************************/
#property copyright "Viktorov"
#property link      "https://www.mql5.com/ru/users/alexeyvik/news"
#property version   "1.00"
#property strict

/********************Script program start function*******************/
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0)
   {
    if(ChartPeriod(prevChart) != PERIOD_D1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_D1);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/

Dans la deuxième question, la combinaison de touches ctrl+tab ou ctrl+shift+tab vous aidera.

ou écrire un script avec une ligne de code

ChartSetInteger(ChartFirst(), CHART_BRING_TO_TOP, 0, true)
 
Alexey Viktorov #:

Voici un script pour répondre à cette question :

Dans la deuxième question, le raccourci clavier ctrl+tab ou ctrl+shift+tab vous aidera.

ou écrire un script avec une ligne de code

Merci pour le code - je vais l'ajouter au script, j'espère qu'il fonctionnera et n'explosera même pas :-) ;-)
 
Alexey Viktorov #:

Voici un script pour répondre à cette question :

Dans la deuxième question, le raccourci clavier ctrl+tab ou ctrl+shift+tab vous aidera.

ou écrire un script avec une ligne de code

Tout a fonctionné parfaitement - merci beaucoup - maintenant je vais économiser beaucoup de temps et d'efforts P/S tout en ne foutant rien en l'air et aussi pour le transfert vers le n1 retravaillé)))))))

 
Bonjour ! je voudrais demander aux utilisateurs expérimentés, il ya un indicateur très simple, le code est joint ci-dessous, je veux passer à Metatrader5 terminal et l'indicateur actuel écrit dans mql4 ne fonctionne pas, y at-il des principes de base de déclencheurs comment réécrire l'indicateur, ou peut-être le convertir
//+--где индикатор если indicator_chart_window то на график у нас в отдельном окне
#property indicator_separate_window
//+--уровни это сколько масивов Buf0[],Buf1[],Buf2[]; у нас каждый масив это линия
#property indicator_buffers 3
//+--сколько линий и какого цвета
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Blue 
//+-- ширина линии
#property indicator_width1  2
#property indicator_width2  3
#property indicator_width3  3
//+--уровни
#property indicator_level1 30 //+--уровень 1
#property indicator_level2 50 //+--уровень 2
#property indicator_levelstyle 2 //+--тип линии уровня 2 - это пунктир
#property indicator_levelcolor Black //+-- цвет линии уровня
//+-- то что будет в окне "входные параметры"                                         
extern int RSIPERIOD=5;
extern double KOEFF1=1.4;
extern double KOEFF2=2; 
//+-- описываем какие у нас массивы (их три) и перменные (в даном случае параметры РСАЙ (D10,D11,D12;) это переменная                                                                                                                                                       
double Buf0[],Buf1[],Buf2[];
double D10,D11,D12;
//+-- Блок init ПРЕДПОЛОДЖИТЕЛЬНО описательный                                                                                                                                                                                                                                                                                                                                      
int init()
  {
   IndicatorDigits(0); //+--формат точности (количество знаков после десятичной точки) для визуализации значений индикатора в окне индикатора (цифры rsi 7 или 7,23)
   string short_name="KAVRSI";   //+-- задаем 2 строчками короткое имя        
   IndicatorShortName("KAVRSI"); //+-- задаем 2 строчками короткое имя
   
   D10=RSIPERIOD;D11=D10*KOEFF1;D12=D11*KOEFF2;; //+--тут мы высчитываем переменные которые описали как масивы выше
 
   SetIndexBuffer(0,Buf0); //+-- описываем 1 массив Buf0[] первый это нулевой второй это первый и т.д.
   SetIndexStyle (0,DRAW_LINE); //+-- говорим что этот масив хотим представить в виде линии 0 это порядковый номер линии соответствует номеру масива 
   SetIndexBuffer(1,Buf1); //+-- описываем 2 массив Buf1[]
   SetIndexStyle (1,DRAW_LINE); //+-- 1 это порядковый номер линии соответствует номеру масива Buf1[]
   SetIndexBuffer(2,Buf2);
   SetIndexStyle (2,DRAW_LINE);
   return(0);
  }
//+-- Блок start сама математика и ОТРИСОВКА                                                                                                             
int start()
  {
   if(Bars<=RSIPERIOD)return(0); //+-- начинаем задавать условия если количество баров меньше расчета (баров 9 а мы считаем по 14) то выдаем 0
   int ExtCountedBars=IndicatorCounted(); //+--Возвращает количество баров, не измененных после последнего вызова индикатора.
   //---- последний посчитанный бар будет пересчитан
   if (ExtCountedBars>0) ExtCountedBars--;
   if (ExtCountedBars<0) return(-1);
   //+-- for(int для int это переменна в нашем случае видимо int ExtCountedBars=IndicatorCounted()
   //+-- и тут мы задаем параметр i - его свойства и описание на основе пересчитаных баров 
   //+-- в нашем случае НЕТ НЕ ПЕРЕСЧИТАННЫХ - считаеться и последний! 
   for(int i=0;i<Bars-RSIPERIOD;i++)
      {
       Buf0[i] = iRSI(NULL,0,D10,0,i);//+-- говорим что 1 массив это рсай с параметром D10
//+-- Пишем в коде что бы ВМЕСТО красной и синей линией RSI2 и RSI3 была одна линия - 
//+-- чтобы вместо красной и синей была одна - мы получаем среднее значение этих линий, т.е.     
       Buf1[i] = (iRSI(NULL,0,D11,0,i)+iRSI(NULL,0,D12,0,i))/2; //+-- и у этой линии, по умолчанию, красный цвет  
//+-- когда выполняется условие
       if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i))
//+-- то мы не меняем цвет линии, т.к. в МТ4 это нельзя сделать,
//+-- а берем и накладываем сверху другую линию с другим цветом      
       Buf2[i] = Buf1[i]; 
       else
       Buf2[i] = EMPTY_VALUE; //+-- добавляем else Buf2[i] = EMPTY_VALUE; EMPTY_VALUE - Пустое значение в индикаторном буфере 
      }
   return(0);
  }
 

Bonjour !

J'aimerais connaître l'avis des programmeurs qui donnent des conseils sur MQL5 contre rémunération !

Ou peut-être que quelqu'un vous donnera un conseil ! Je vous en serais reconnaissant !

 
Peperoni #:

Bonjour !

J'aimerais que tous les programmeurs qui donnent des conseils contre rémunération me fassent part de leurs commentaires !

Ou peut-être que quelqu'un recommandera quelqu'un. Je vous en serais reconnaissant !

Soit en freelance, soit en posant votre question ici.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.11.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5