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

 
Bon après-midi... C'est probablement une question simple, mais je ne sais pas par où commencer. J'ai besoin d'un script qui dessine un rectangle avec un nom contenant la date et l'heure de création. Peut-être que quelqu'un a un exemple que je peux adapter à ma tâche.

Merci d'avance :).
 
svob:
Bon après-midi... C'est probablement une question simple, mais je ne sais pas par où commencer. J'ai besoin d'un script qui dessine un rectangle avec un nom contenant la date et l'heure de création. Peut-être que quelqu'un a un exemple que je peux adapter à ma tâche.

Merci d'avance :).

Prenez l'exemple de référenceOBJ_RECTANGLE comme base,

mais changez cette ligne

//--- создадим прямоугольник
   if(!RectangleCreate(0,InpName,0,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }

à ça :

//--- создадим прямоугольник
   if(!RectangleCreate(0,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS),0,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
  • www.mql5.com
//| Cоздает прямоугольник по заданным координатам                    |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Перемещает точку привязки прямоугольника                         |...
 
Vladimir Karputov:

Utilisez l'exemple de référenceOBJ_RECTANGLE comme base,

changez seulement cette ligne

à ça :

Merci ! :) Je l'ai...

 
Bonjour, le nombre de décimales dans l'indicateur (dans la fenêtre séparée) dépend-il des _Digits de l'outil ? Si oui, comment puis-je le contourner ? L'indicateur reçoit des valeurs fractionnaires, alors qu'il ne dessine que des valeurs entières sur l'échelle.
 
VANDER:
Bonjour, le nombre de décimales dans un indicateur (dans une fenêtre séparée) dépend-il des _Digits d'un symbole ? Si oui, comment l'éviter ? L'indicateur produit des valeurs fractionnaires, alors qu'il n'affiche que des nombres entiers sur l'échelle.

Exemple d'indicateur [dossier de données] \MQL5\Indicators\Examples\ATR.mq5

OnInit() -> définir la précision de l'affichage

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- check for input value
   if(InpAtrPeriod<=0)
     {
      ExtPeriodATR=14;
      printf("Incorrect input parameter InpAtrPeriod = %d. Indicator will use value %d for calculations.",InpAtrPeriod,ExtPeriodATR);
     }
   else ExtPeriodATR=InpAtrPeriod;
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS);
//---
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- sets first bar from what index will be drawn


Exemple n°2 -> [dossier de données] \MQL5\Indicators\Examples\Custom Moving Average.mq5

ici la précision est plus élevée

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
//--- set accuracy
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);


Exemple n°3 -> [dossier de données] \MQL5\Indicators\Examples\ADX.mq5

il y a toujours une précision de deux valeurs - indépendamment de Digits()

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- check for input parameters
   if(InpPeriodADX>=100 || InpPeriodADX<=0)
     {
      ExtADXPeriod=14;
      printf("Incorrect value for input variable Period_ADX=%d. Indicator will use value=%d for calculations.",InpPeriodADX,ExtADXPeriod);
     }
   else ExtADXPeriod=InpPeriodADX;
//---- indicator buffers
   SetIndexBuffer(0,ExtADXBuffer);
   SetIndexBuffer(1,ExtPDIBuffer);
   SetIndexBuffer(2,ExtNDIBuffer);
   SetIndexBuffer(3,ExtPDBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,ExtNDBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtTmpBuffer,INDICATOR_CALCULATIONS);
//--- indicator digits
   IndicatorSetInteger(INDICATOR_DIGITS,2);
 

Est-il possible d'accéder à d'autres graphiques dans le testeur de stratégie en mode visuel (en test multidevises). Par exemple :

int OnInit()
  {
   int bars=iBars("EURUSD",PERIOD_H1);
   bars=iBars("GBPUSD",PERIOD_H1);
   bars=iBars("USDJPY",PERIOD_H1);
   
   return(INIT_SUCCEEDED);
  }
void OnTick()
  {
   long arr[];
   ArrayResize(arr,1);
   arr[0]=ChartFirst();
   long id=arr[0];
   while (!IsStopped()){
      id=ChartNext(id);
      if(id>=0){
         int s=ArraySize(arr);
         ArrayResize(arr,s+1);
         arr[s]=id;
      }
      else break;
   }
   Comment("Total charts: ",ArraySize(arr));   
  }

Si vous exécutez cet EA dans le testeur de stratégie, le visualiseur ouvrira les graphiques de l'EURUSD, du GBPUSD, de l'USDJPY, mais

Comment("Total charts: ",ArraySize(arr));

cela montrera qu'il n'y a qu'un seul graphique.

 

Comment puis-je connaître la taille de l'étiquette en termes de taille de police et de longueur de texte ? Pour le positionner par rapport à d'autres éléments

ObjectGetInteger(0,"label",OBJPROP_XSIZE,0);

Donne 0

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 
Maksym Mudrakov:

Est-il possible d'accéder à d'autres graphiques dans le testeur de stratégie en mode visuel (en test multidevises). Par exemple :

Si vous exécutez cet EA dans le testeur de stratégie, le visualisateur ouvrira les graphiques de l'EURUSD, du GBPUSD, de l'USDJPY, mais

cela montrera qu'il n'y a qu'un seul graphique.

Il s'agit d'un problème de récupération des poignées de fenêtre du moteur de rendu. Et il n'y a aucun moyen de le battre.

 
Roman Sharanov:

Comment puis-je connaître la taille de l'étiquette en termes de taille de police et de longueur de texte ? Pour le positionner par rapport à d'autres éléments

Donne 0

Si j'utilise des polices à largeur unique, comme "Courier New", la largeur de chaque caractère correspondra approximativement à la taille de la police.
 
indirectement par la longueur des lignes et la taille des caractères.
Raison: