Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 694

 
Maxim Kuznetsov:

NEIN, KANN NICHT...

Es ist komisch, aber das, was der Benutzer auf der Registerkarte "Farben" ausgewählt hat, ist normalerweise NICHT im Indikator verfügbar.

Vielen Dank für die Antwort.

Ich habe immer noch einen Traum, dass der Entwickler in MT4 (für Windows) ADAPTIZED die Umleitungen auf meinem tablet....

Ich schrieb ihnen, sie schrieben zurück, sie sagten, dass alle ihre Bemühungen auf MT5 konzentriert sind...

 
kopeyka2:

Ich danke Ihnen für Ihre Antwort.

Ich träume immer noch davon, dass der Entwickler in MT4 (für Windows) das Redesign für das Tablet angepasst hat....

Ich schrieb ihnen, sie antworteten, sie sagten, dass alle ihre Bemühungen auf MT5 konzentriert sind...

In mt4 ist es unwahrscheinlich, dass es etwas Neues geben wird.

 
kopeyka2:

Hallo.

Frage: Ist es in MT4 möglich, die Farbe des EZ-Buffers an den Chart anzupassen, wenn sich die Farbe des Indikators im Chart geändert hat?

Im Code

#Eigenschaft indikatoren_farbe1 clrGelb

***

***

ObjectCreate(.......);

ObjectSetInteger(... indicators_color1);


Problem: Wenn Sie die Farbe im Indikator ändern, ändert sich die Farbe der Pufferlinie, aber im Diagramm bleibt sie die gleiche wie in #property. Muss angepasst werden.

So weit gelöst durch Eingabe Farbe, ABER es ist zwei Einträge in den Code, zwei Änderungen in den Einstellungen, und ich möchte eine Einstellung durch den Puffer.


Danke für jede Rückmeldung.

Ich habe es schematisch auf meinem Smartphone abgetippt.


Wir nehmen den Indikator, auf dem das Diagramm angezeigt wird, und schauen nach:

//+------------------------------------------------------------------+
//| Описание                                                         |
//+------------------------------------------------------------------+
void Descriptions(void)
  {
   int x=4;
   int y=1;
   int arr_colors[]={indicator_color1,indicator_color2,indicator_color3,indicator_color4,indicator_color5};
   string arr_texts[]={"Up direction","Down direction","Crossing to up","Crossing to down","Neutral"};
   string arr_names[COUNT];
   for(int i=0; i<COUNT; i++)
     {
      arr_names[i]=prefix+"label"+(string)i;
      arr_colors[i]=PlotIndexGetInteger(i,PLOT_LINE_COLOR);
      int shift=(i*(i<2 ? 90 : i<COUNT-1 ? 96 : 100)-(i>0 ? x : 0));
      x+=shift;
      Label(arr_names[i],x,y,CharToString(167),16,arr_colors[i],"Wingdings");
      Label(arr_names[i]+"_txt",x+10,y+5,arr_texts[i],10,clrGray,"Calibri");
     }
  }
//+------------------------------------------------------------------+

Ein Array von Farben wird deklariert und mit den vom Benutzer in den Indikatoreinstellungen angegebenen Farben initialisiert.

Dann wird der Farbwert aus dem Array an die Ausgabefunktion für das Textlabel übergeben.

Bei der Ausgabefunktion für Textetiketten ist alles Standard:

//+------------------------------------------------------------------+
//| Выводит текстовую метку                                          |
//+------------------------------------------------------------------+
void Label(const string name,const int x,const int y,const string text,const int size,const color clr,const string font)
  {
   if(ObjectFind(0,name)!=wnd)
      ObjectCreate(0,name,OBJ_LABEL,wnd,0,0,0,0);
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
   ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,size);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//---
   ObjectSetString(0,name,OBJPROP_FONT,font);
   ObjectSetString(0,name,OBJPROP_TEXT,text);
   ObjectSetString(0,name,OBJPROP_TOOLTIP,"\n");
  }
//+------------------------------------------------------------------+

Die an die Funktion übergebene Farbe legt die Farbe der Textmarkierung fest. Und alles funktioniert...

 
Artyom Trishkin:

Wir nehmen den Indikator, in dem das Diagramm angezeigt wird, und sehen ihn uns an:

Ein Array von Farben wird deklariert und mit den vom Benutzer in den Indikatoreinstellungen angegebenen Farben initialisiert.

Dann wird der Farbwert aus dem Array an die Ausgabefunktion für das Textlabel übergeben.

In der Funktion der Textetikettenausgabe ist alles Standard:

Die Farbe, die der Funktion übergeben wird, legt die Farbe der Textbeschriftung fest. Und alles funktioniert...

Ich habe die Option des Arrays in Betracht gezogen... Es ist nicht klar, WIE er mit dem Puffer verbunden ist...? Die Frage bezog sich auf EINE Farbwechsel-Bewegung... für den Puffer und die Beschriftung(en).

Oder verstehe ich es nicht ?)))

Danke für das Beispiel)))


PS

dachte, vielleicht irgendwie die Farbe aus dem Puffer ziehen (vergleichen) ... Ich denke, das ist Unsinn...

 

Grüße. Können Sie mir sagen, wie ich einen Indikator schreiben kann, der nur mit dem Briefkurs arbeitet?

RSI = NormalizeDouble((iRSI(NULL,0,14,0,0)),Digits());

 
Anatolij Anufriev:

Grüße. Können Sie mir sagen, wie ich einen Indikator schreiben kann, der nur mit dem Briefkurs arbeitet?

RSI = NormalizeDouble((iRSI(NULL,0,14,0,0)),Digits());

in MT4 Bars - OHLC sind von Bid gebaut, in der Tat, Ask Preise sind nicht verfügbar in der Geschichte. als eine Option, sammeln Ask in Ticks und verwenden iRSIOnArray()

 

Was ist die beste/bequemste Lösung für die Verwendung von Datenbanken mit MQL4/5?

Es gibt so viele Artikel, dass es schwer ist, sich für einen zu entscheiden.

 
Igor Makanu:

in MT4 Bars - OHLC sind von Bid gebaut, in der Tat Ask Preise sind nicht verfügbar in der Geschichte, alternativ sammeln in Ask Ticks und verwenden iRSIOnArray()

Dankeschön

 
Sergey Likho:

Was ist die beste/bequemste Lösung für die Verwendung von Datenbanken mit MQL4/5?

Es gibt so viele Artikel, dass es schwierig ist, sich für einen zu entscheiden.

Wenn Sie keinen Artikel haben, suchen Sie unter "Artikel" im Forum. Sie können alle Informationen im Bereich "Forum" finden. Es gibt viele Dinge, die mit MT4, SQL und Anwendungen wie MathLab oder R kombiniert wurden... Suchen Sie, was Sie wollen, suchen Sie ziemlich gut in diesem Forum

https://www.mql5.com/ru/search#!keyword=sql&module=mql5_module_articles

Поиск - MQL5.community
Поиск - MQL5.community
  • www.mql5.com
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
 

Aus irgendeinem Grund kann ich in der Schleife, die um 15 Uhr beginnt, keinen Takt einfangen.

Wenn ich if(i<24) als Bedingung aufschreibe, zeigt das Protokoll die Zeit jedes Balken für den Tag an, aber die erforderliche Bedingung ist nicht erfüllt:


   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      
      if( TimeHour(iTime(NULL,PERIOD_H1,i)==15)  )
      //if(i<24)
      Print("TimeHour = ", TimeHour(iTime(NULL,PERIOD_H1,i)));
      
      CrossDown[i]=High[i]+250*Point;
   
      i--;                          // Расчёт индекса следующего бара
     }
Grund der Beschwerde: