Erreurs, bugs, questions - page 2768

 
Chère administration. À qui dois-je écrire pour demander la suppression de mon compte (avec inscription en tant que vendeur) sur mql5.com ?
 

Bonjour, Il existe un indicateur MT5 "Grid Builder" qui dessine des lignes horizontales par incréments de prix. Vous pouvez sélectionner par exemple 100p, 200p etc. Et il construit une grille horizontale de haut en bas avec un pas donné. Mais il y a un problème, par exemple, lorsque je dessine des niveaux horizontaux sur le timeframe H4 (je mets des lignes horizontales à partir des outils de dessin dans le terminal) et que je passe à un autre timeframe, toutes mes lignes sont supprimées. Il ne reste que des niveaux d'indicateurs horizontaux. Comment puis-je corriger cette erreur dans le code ? Pour faire en sorte que mes niveaux horizontaux ne soient jamais supprimés. Voici le code de l'indicateur.

//+------------------------------------------------------------------+
//|                                                  GridBuilder.mq5 |
//|                                              Copyright 2015, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property indicator_chart_window

//---- для расчёта и отрисовки индикатора использовано ноль буферов
#property indicator_buffers 0
//---- использовано всего ноль графических построений
#property indicator_plots   0
//--- входные параметры 
input int count = 50;      //количество линий вверх вниз от цены
input int step  = 333;     //шаг линий 
input double pr = 1.4622;  //цена от которой пляшем
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   ObjectsDeleteAll(0,0,OBJ_HLINE);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,0,OBJ_HLINE);
  }
//+------------------------------------------------------------------+ 
//| Создает горизонтальную линию                                     | 
//+------------------------------------------------------------------+ 
bool HLine(const string name="HLine",double price=0)
  {
//--- создадим горизонтальную линию 
   if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price))
     {
      Print(__FUNCTION__,
            ": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
      return(false);
     }
//--- установим цвет линии 
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrGreen);
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
   return(true);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   double price=pr;
//--- создадим горизонтальную линию 
   for(int i=0;i<=count;i++)
     {
      HLine("HLine"+(string)i,price+step*i*_Point);
      HLine("HLine"+(string)(i+count+1),price-step*i*_Point);
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
Александр:

Bonjour, Il existe un indicateur MT5 "Grid Builder" qui dessine des lignes horizontales par incréments de prix. Vous pouvez sélectionner par exemple 100p, 200p etc. Et il construit une grille horizontale de haut en bas avec un pas donné. Mais il y a un problème, par exemple, lorsque je dessine des niveaux horizontaux sur le timeframe H4 (je mets des lignes horizontales à partir des outils de dessin dans le terminal) et que je passe à un autre timeframe, toutes mes lignes sont supprimées. Il ne reste que des niveaux d'indicateurs horizontaux. Comment puis-je corriger cette erreur dans le code ? Pour faire en sorte que mes niveaux horizontaux ne soient jamais supprimés. Voici le code de l'indicateur.

Veuillez essayer d'insérer le code correctement.

MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • www.mql5.com
Теперь вы можете не только читать статьи и скачивать программы на языке MQL5, но и участвовать в обсуждении интересующих вас тем на Форуме, оставлять комментарии к статьям и опубликованным кодам. Кроме того, вы можете не только выкладывать собственные разработки в Code Base, но и публиковать Статьи, за которые мы предлагаем вознаграждение...
 

Beaubra à tous.

Lorsque je change de période qui est restée inactive pendant une longue période, l'indicateur se fige. S'il vous plaît, guidez-moi où le chien est enterré. Merci !

 
BROXIV:

Beaubra à tous.

Lorsque je change de cadre temporel, qui n'a pas été utilisé depuis longtemps, l'indicateur se fige. S'il vous plaît, guidez-moi où le chien est enterré. Merci !

Le chien est en train de charger des données.

 
BROXIV:

Beaubra à tous.

Lorsque je change de période qui est restée inactive pendant une longue période, l'indicateur se fige. S'il vous plaît, guidez-moi où le chien est enterré. Merci !

Au même endroit où le loup a mordu le renard....

Il l'a mordu. Qu'en pensez-vous ? )))))))

 
Comment une fonction peut-elle être appelée d'abord et déclarée ensuite. Le programme se déroule dans le désordre ou quoi ?
 
Ivan_Invanov:
Comment une fonction peut-elle être appelée d'abord et déclarée ensuite ? Le programme ne fonctionne pas en ligne ou quoi ?

MQL-compilateur, pas interprète, google " linker compilateur ".





quelle est la probabilité de recevoir d'une petite chaîne de texte(10-50 symboles) un md5-hash (16 octets) égal à0xAAAAAAAAAAAAAAA + 0xAAAAAAAAAAAAAAAAA

ulong hash[2]
this.hash[0] = this.hash[1] = 0xAAAAAAAAAAAAAAAA; 

en général, j'ai besoin d'un initialisateur HASH_NULL (j'ai besoin de quelques variantes raisonnables), je trouve que 0 n'est pas fiable pour une raison quelconque.


UPD : recherche en ligne du décryptage md5 https://md5.web-max.ca/

 

Bonjour, je suis en train d'écrire une classe pour collecter les extrema basés sur les lectures de l'indicateur iWPR. Voici un morceau de code : je commence par créer un handle pour un indicateur, puis je copie les données dans un tampon. Je crée une boucle pour obtenir les données de l'indicateur en fonction de la taille du tableau et j'écris la progression dans le fichier pour comprendre ce qui se passe. Je tiens à préciser que j'ai copié ce code à partir de MQL4 et, bien sûr, je l'ai adapté à MQL5. Je ne comprends pas ou quelque chose ne va pas, mais les données de la variable dwpr sont écrites dans un fichier avec une sorte de désordre. Qu'est-ce que je fais de mal ? Je joins le fichier texte du soi-disant journal !

   hWPR=iWPR(NULL,period,240);
   CopyBuffer(hWPR,0,0,ibars,WPRBuffer);
   CopyLow(NULL,0,0,ibars,Low);
   CopyHigh(NULL,0,0,ibars,High);
   CopyTime(NULL,0,0,ibars,Time);
   int y=ArraySize(WPRBuffer);
   //int w=ArraySize(Low);
   //int x=ArraySize(High);
   //int z=ArraySize(Time);
   
   ResetLastError(); 
   if(flag){filehandle=FileOpen(Symbol()+"_VertexUpLoad_3.txt",FILE_WRITE|FILE_TXT);}
   if(flag){FileWrite(filehandle,"Количество элементов в буфере WPRBuffer "+IntegerToString(y)+" Low "+IntegerToString(w)+
            " High "+IntegerToString(x)+" Time "+IntegerToString(z));}
   //for(int i=ibars-1;i>0;i--)
   for(int i=1;i</*ibars*/ y-1;i++)
     {
      if(i==344)
      {
      Print("");}
      datetime d=Time[i];
      //if(x<D'2004.04.02. 12:00:00'){continue;}//участок кода для тестирования
      if(flag){FileWrite(filehandle,"======================================================================================");}
      dwpr=NormalizeDouble(WPRBuffer[i],4);
      if(dwpr>=dup&&dwpr<0.0){chflag=2;}//индикатор в верхней экстремальной зоне
      if(dwpr<=ddn&&dwpr>-100.1){chflag=1;}//индикатор в нижней ЭЗ, а остальное все тоже самое
//Самое начало пока индикатор "балтается"      
      if(dwpr>=0.0000){if(flag){FileWrite(filehandle,"Самое начало пока индикатор балтается. Бар № "+IntegerToString(i)+
                                         " dwpr "+DoubleToString(dwpr,4));}
Dossiers :
 
Igor Makanu:

MQL-compilateur, pas interprète, google " linker compilateur ".





quelle est la probabilité de recevoir d'une petite chaîne de texte(10-50 symboles) un md5-hash (16 octets) égal à0xAAAAAAAAAAAAAAA + 0xAAAAAAAAAAAAAAAAA

en général, j'ai besoin d'un initialisateur HASH_NULL (j'ai besoin de quelques variantes raisonnables), je trouve que 0 n'est pas fiable pour une raison quelconque.


UPD : recherche en ligne du décryptage md5 https://md5.web-max.ca/

Merci.
Raison: