Questions des débutants MQL5 MT5 MetaTrader 5 - page 1222

 
Aleksey Mavrin:

Besoin )

Alexey, merci !

Veuillez dire à une personne inexpérimentée :
quel rôle le dossier MQL5/Sounds devrait (peut) jouer dans nos vies ? (ma question se trouve en haut de la page 1221)

 

Pouvez-vous me dire pourquoi la barre ne change de position sur le graphique que lorsqu'un nouveau tick arrive ? MT5, Just2Trade build du 5 juin

#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
CAppDialog Main;
CBmpButton nadpr, nadlos, nadot;
CBmpButton podpr, podlos, podot;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
   Main.Create(0,"Main",0,50,50,260,130);
   Main.Run();
      
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Main.Destroy(reason);
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam)  // параметр события типа string
{
  Main.OnEvent(id,lparam,dparam,sparam);
}
 
Nikita Chernyshov:

Pouvez-vous me dire pourquoi la barre ne change de position sur le graphique que lorsqu'un nouveau tick arrive ? MT5, Just2Trade build du 5 juin

Comparez votre code et l'exemple du panneau de la norme [dossier de données] \MQL5\Experts\Examples\Controls\Controls.mq5

 

Bonjour, une question pour les connaisseurs :

J'essaie de construire une telle construction - une fonction, quatre variables sont alimentées par des liens comme paramètres et un tableau à partir duquel les données seront obtenues à l'intérieur de la fonction pour calculer ces quatre variables. Il y a deux tableaux de ce type (à passer dans la fonction) dans le programme - les extrémités supérieure et inférieure du zigzag. La fonction doit calculer les points pour dessiner la TrendLine.

La question est la suivante : comment vérifier lequel des deux tableaux est utilisé dans une itération particulière, pour appliquer + ou - au calcul ?

Si la formulation est maladroite, demandez à nouveau, je vous expliquerai avec plaisir. Vous trouverez ci-joint un aperçu de la construction.

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1, ind_time_2;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_1    = zigbuf[i];
      ind_time_1 = i;
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_2    = zigbuf[i];
      ind_time_2 = i;

   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться 
+ или - , < или >. 
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   //Вопрос не сложный - как это написать???   
} 

Cela signifie que le paramètrezigbuf[] n'aura que deux options à substituer - soit ZigzagPeakBuffer[], soitZigzagBottomBuffer[]. Comment puis-je vérifier à l'intérieur de la fonction, laquelle des options est actuellement définie ?


 

Jusqu'à présent, j'ai inventé de déterminer lequel des tableaux est concerné - en comparant la valeur trouvée, celui qui correspond, celui-là est le nôtre. Mais il existe sûrement une solution plus agréable et plus courte.

Connaissance - dites-nous s'il vous plaît ! !!

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1 = 0;
   int ind_time_2 = 0;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            price_1    = zigbuf[i];
            ind_time_1 = i;
            break;
      }
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            {
               if(zigbuf[i] == ZigzagPeakBuffer[i] && zigbuf[i] > price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
               if(zigbuf[i] == ZigzagBottomBuffer[i] && zigbuf[i] < price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
            }
      }
   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться + или - , < или >.
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   // Вопрос не сложный - как это написать???   
}
 

Bonjour à tous))


Question : OBJ_FIBO ne donne pas une fenêtre pop-up sur le graphique (OBJPROP_TOOLTIP) lors du traçage. Tout est organisé graphiquement à travers OBJPOP_TXT/ Comment et est-il même possible de faire une fenêtre pop-up dans FIBO à travers une info-bulle ?

But : en passant la souris sur le niveau Fibo, faire apparaître une fenêtre comme dans HLINE (à titre d'exemple).

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
kopeyka2:

Bonjour à tous))


Question : OBJ_FIBO ne donne pas une fenêtre pop-up sur le graphique (OBJPROP_TOOLTIP) lors du traçage. Tout est organisé graphiquement à travers OBJPOP_TXT/ Comment et est-il même possible de faire une fenêtre pop-up dans FIBO à travers une info-bulle ?

Objectif : en passant la souris sur le niveau Fibo, faire apparaître une fenêtre comme HLINE (à titre d'exemple).

Utilisez la propriété OBJPROP_TEXT

ObjectSetString(chart_ID,name,OBJPROP_TEXT,"Это всплывающая подсказка");
 
Comment puis-je me débarrasser des produits de démonstration que je n'utilise pas ? Je continue à recevoir des messages du système "Nouvelle version ........".
 
Sergey Voytsekhovsky:

Jusqu'à présent, j'ai inventé de déterminer lequel des tableaux est concerné - en comparant la valeur trouvée, celui qui correspond, celui-là est le nôtre. Mais il existe sûrement une solution plus agréable et plus courte.

Ceux qui savent - s'il vous plaît dites-moi !!!

Pourquoi inventes-tu tes propres problèmes ? Ils seront suffisants comme ça.

Il suffit de créer deux fonctions distinctes.

 
Pouvez-vous me dire comment obtenir un tableauMqlParam à partir d'un fichier set?