Erreurs, bugs, questions - page 648

 
sergeev:
Le testeur est-il en cours de débogage ?
Oui, il est déchargé.
 
MoneyJinn:

Oui, vous vous trompez. Plusieurs formes d'enregistrement ChartGetInteger sont autorisées.

Mais quelle que soit la forme de l'enregistrement ChartGetInteger, iln'est pas possible d'obtenir la valeur actuelle de la propriétéCHART_BRING_TO_TOP.

Sans exemple, il est difficile de dire quoi et comment. Veuillez vérifier la documentation et la version de compilation.

S'il ne fonctionne pas comme il le devrait, écrivez une demande à CA + code avec un exemple.

Et la deuxième variante devrait retourner la propriété de toute façon. où il y a quatre paramètres.

 

Il existe une fonction prototype

#import "kernel32.dll"
BOOL WriteFile(
HANDLE hFile, //déscripteur de fichier
LPCVOID lpBuffer, // tampon de données
DWORD nNumberOfBytesToWrite, // nombre d'octets à écrire
LPDWORD lpNumberOfBytesWritten, // nombre d'octets écrits
LPOVERLAPPED lpOverlapped // tampon asynchrone

) ;

La fonction est appelée dans le programme

op_err=WriteFile(h1,buff,LenPos, Writing,NULL) ;

Comment puis-je spécifier correctement que le tampon et l'écriture sont passés par référence ?

Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Основы языка / Функции - Документация по MQL5
 
tor30515:

Il existe une fonction prototype


Comment puis-je spécifier correctement que le tampon et l'écriture sont passés par référence ?

buff - via un tableau, par exemple uchar &buff[]

written - vous pouvez également utiliser un tableau ou une seule variable int &written

 
Yedelkin:

Selon le manuel, cette propriété n'est tout simplement pas prise en charge :

Le code d'erreur dit la même chose. La question de savoir pourquoi la propriété du graphique CHART_BRING_TO_TOP n'est pas supportée se situe au niveau du développeur... Et si la propriété est effectivement supportée, alors la question se pose à nouveau à leur niveau : pourquoi dans ce cas la fonction ChartGetInteger renvoie false ?

Parce qu'en mettant la propriété CHART_BRING_TO_TOP à true, le terminal reçoit l'ordre de mettre le graphique donné au premier plan à l'instant même. Il ne s'agit pas d'une propriété au sens habituel du terme, mais d'une commande. C'est l'explication.
 

Rosh:
Потому что установка свойства CHART_BRING_TO_TOP в значение true дает терминалу приказ вывести данный чарт на передний план в данный момент. Это не свойство в обычном понимание, а команда. Вот такое объяснение.

Cela signifie que dans notre cas, la commande "propriété" CHART_BRING_TO_TOP avec référence à la fonction ChartGetInteger() n'est tout simplement pas supportée et ChartGetInteger() renvoie correctement false. C'est la réponse pour MoneyJinn

 
Rosh:
Parce qu'en mettant la propriété CHART_BRING_TO_TOP à true, le terminal donne l'ordre de mettre ce graphique au premier plan à cet instant. Il ne s'agit pas d'une propriété dans son acception habituelle, mais d'un commandement. C'est l'explication.

Les développeurs n'ont laissé aucun moyen de déterminer si la fenêtre du graphique est visible ou non par l'utilisateur et quelle est la position relative des fenêtres.

C'est très mauvais. Encore une fois, perte de contrôle et nouveaux risques.

 

Je tiens à préciser tout de suite que je suis novice en matière de programmation en MQL).

L'essence du problème : je veux implémenter le dessin de niveaux (lignes horizontales) en refaisant le standard

indicateur de fractales. Il s'agit de dessiner des lignes horizontales au lieu de flèches.

La question est donc : est-ce possible dans le cadre de l'indicateur ? Après tout, il est nécessaire de spécifier

Je ne connais pasle nombre de lignes de l'indicateur avant le calcul. Est-il possible dans la propriété

#Propriété indicator_plots pour spécifier une variable. Ou bien c'est impossible ?

Vous trouverez ci-dessous le code d'une fractale légèrement modifiée. Il dessine deux lignes sur les fractales du haut et du bas.

Mais j'ai besoin de lignes horizontales, une ligne par fractale.

Peut-être que les lignes horizontales peuvent être créées dans l'indicateur par ObjectCreate ?

#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
//---- indicator settings
#property indicator_chart_window 
//Для индикаторов расположение на графике цены (indicator_chart_window)
//или в отдельном окне (indicator_separate_window)
#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_color1  clrDeepPink
#property indicator_color2  clrRoyalBlue
#property indicator_label1  "Resistance lvl"
#property indicator_label2  "Support lvl"
#property indicator_style1  STYLE_SOLID
#property indicator_style2  STYLE_SOLID
#property indicator_width1  2
#property indicator_width2  2
//---- indicator buffers
double ExtUpperBuffer[];
double ExtLowerBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtUpperBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtLowerBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);// точность индикатора равна точности графика
//---- sets first bar from what index will be drawn
//  PlotIndexSetInteger(0,PLOT_ARROW,217);
//  PlotIndexSetInteger(1,PLOT_ARROW,218);
//---- arrow shifts when drawing
//  PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,ExtArrowShift);
//  PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-ExtArrowShift);
//---- sets drawing line empty value--
//  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
// PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
  }
//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
  {
   int i,limit;
//---
   if(rates_total<5)
      return(0);
//---
   if(prev_calculated<7)
     {
      limit=2;
      //очистка буферов
      ArrayInitialize(ExtUpperBuffer,EMPTY_VALUE);
      ArrayInitialize(ExtLowerBuffer,EMPTY_VALUE);
     }
   else limit=rates_total-5;

   for(i=limit;i<rates_total-3 && !IsStopped();i++)//(?условие нач.цикла;усл.оконч.цикла;вычисление)
                                                   //i++ тоже самое что и i=i+1
     {
      //---- Upper Fractal
      if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])
         ExtUpperBuffer[i]=High[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtUpperBuffer[i]=ExtUpperBuffer[i-1];
      //else ExtUpperBuffer[i]=ExtUpperBuffer[1];

      //---- Lower Fractal
      if(Low[i]<Low[i+1] && Low[i]<Low[i+2] && Low[i]<=Low[i-1] && Low[i]<=Low[i-2])
         ExtLowerBuffer[i]=Low[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtLowerBuffer[i]=ExtLowerBuffer[i-1];
      //else ExtLowerBuffer[i]=ExtLowerBuffer[1];
      
     // ObjectCreate(0,Level_obj,OBJ_HLINE);

     }
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }

//+------------------------------------------------------------------+
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
question sur les fichiers. quelle est la limite de la taille du fichier à ouvrir dans µl5 ?
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Comment puis-je obtenir la valeur ACCOUNT_BALANCE dans l'historique ? Lorsque vous consultez l'historique des transactions, vous devez connaître la variation du solde.