Fehler, Irrtümer, Fragen - Seite 648

 
sergeev:
Wird das Prüfgerät debuggt?
Ja, er ist entladen.
 
MoneyJinn:

Ja, da irren Sie sich. Es sind mehrere Formen des ChartGetInteger-Datensatzes zulässig.

Unabhängig von der ChartGetInteger-Datensatzform ist es jedochnicht möglich, den aktuellen Wert der EigenschaftCHART_BRING_TO_TOP abzurufen.

Ohne ein Beispiel ist es schwer zu sagen, was und wie. Bitte prüfen Sie die Dokumentation und die Build-Freigabe.

Wenn es nicht so funktioniert, wie es soll, schreiben Sie eine Anfrage an CA + Code mit einem Beispiel.

Und die zweite Variante sollte die Eigenschaft ohnehin zurückgeben, wobei es vier Parameter gibt.

 

Es gibt eine Prototyp-Funktion

#import "kernel32.dll"
BOOL WriteFile(
HANDLE hFile, //Dateideskriptor
LPCVOID lpBuffer, // Datenpuffer
DWORD nNumberOfBytesToWrite, // Anzahl der zu schreibenden Bytes
LPDWORD lpNumberOfBytesWritten, // Anzahl der geschriebenen Bytes
LPOVERLAPPED lpOverlapped // asynchroner Puffer

);

Die Funktion wird im Programm aufgerufen

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

Wie gebe ich korrekt an, dass buff und Writing per Referenz übergeben werden?

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

Es gibt eine Prototyp-Funktion


Wie gebe ich korrekt an, dass buff und Writing per Referenz übergeben werden?

buff - über Array z.B. uchar &buff[]

written - Sie können auch ein Array oder nur eine Variable int &written verwenden

 
Yedelkin:

Dem Handbuch zufolge wird diese Eigenschaft einfach nicht unterstützt:

Der Fehlercode sagt das Gleiche aus. Die Frage, warum die Diagrammeigenschaft CHART_BRING_TO_TOP nicht unterstützt wird, liegt auf Entwicklerebene... Und wenn die Eigenschaft tatsächlich unterstützt wird, dann ist die Frage wieder auf ihrer Ebene: warum in diesem Fall ChartGetInteger Funktion gibt false?

Denn durch das Setzen der Eigenschaft CHART_BRING_TO_TOP auf true erhält das Terminal den Auftrag , das gegebene Diagramm in den Vordergrund zu bringen. Dabei handelt es sich nicht um eine Eigenschaft im üblichen Sinne, sondern um einen Befehl. Das ist die Erklärung.
 

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

Das bedeutet, dass in unserem Fall der "Eigenschafts"-Befehl CHART_BRING_TO_TOP mit Bezug auf die Funktion ChartGetInteger() einfach nicht unterstützt wird und ChartGetInteger() korrekt false zurückgibt. Dies ist die Antwort für MoneyJinn

 
Rosh:
Denn wenn die Eigenschaft CHART_BRING_TO_TOP auf true gesetzt wird, erhält das Terminal den Auftrag , dieses Diagramm in diesem Moment in den Vordergrund zu bringen. Dabei handelt es sich nicht um eine Eigenschaft im üblichen Sinne, sondern um einen Befehl. Das ist die Erklärung.

Die Entwickler haben keine Möglichkeit vorgesehen, um festzustellen, ob das Diagrammfenster für den Benutzer sichtbar ist oder nicht und wie die relative Position der Fenster ist.

Das ist sehr schlecht. Erneuter Verlust der Kontrolle und neue Risiken.

 

Ich möchte gleich darauf hinweisen, dass ich neu in der Programmierung in MQL bin)

Die Essenz des Problems: Ich möchte das Zeichnen von Ebenen (horizontale Linien) implementieren, indem ich den Standard

Indikator für Fraktale. Das heißt, dass horizontale Linien anstelle von Pfeilen gezeichnet werden sollen.

Die Frage ist also: Ist dies im Rahmen des Indikators möglich? Schließlich ist es notwendig, Folgendes anzugeben

Ich kennedie Anzahl der Zeilen im Indikator vor der Berechnung nicht. Ist es möglich, in der Eigenschaft

#Eigenschaft indicator_plots zur Angabe einer Variablen. Oder ist es unmöglich?

Nachfolgend finden Sie den Code eines leicht veränderten Fraktals. Es zeichnet zwei Linien auf die oberen und unteren Fraktale.

Aber ich brauche horizontale Linien, eine Linie pro Fraktal.

Vielleicht können die horizontalen Linien im Indikator durch ObjectCreate? erstellt werden.

#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
 
Frage zu den Dateien. Wie groß darf die Datei sein, die in µl5 geöffnet werden soll?
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Wie kann ich den Wert ACCOUNT_BALANCE in der Historie abrufen ? Wenn Sie sich die Historie der Transaktionen ansehen, müssen Sie die Veränderung des Saldos kennen.