[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 317

 
drknn:


Der Markt ruht - also ruhen auch Sie.

Der Markt wird am Montag in Tokio eröffnet. Schließt am Freitag in Chicago. Öffnet gegen 2 Uhr morgens, schließt gegen 22 oder 23 Uhr (Zeitzone Moskau oder Kiew)

Herzlichen Dank!))) Das bringt mich zum Lachen. Ich habe erst am Dienstag angefangen zu arbeiten und wusste nicht, dass der Markt am Wochenende frei ist:))
 
Zhunko:
Es gibt keine Funktion, aber es kann in MQL4 + WinAPI gemacht werden.

//+------------------------------------------------------------------+
//|          Function  : int GetChartScale()[1,2,4,6,13]             |
//|          Copyright © 2012, XrustSolution.  mail:xrustx@gmail.com |
//|          https://www.youtube.com/user/opmlv http://forexrust.info |
//+------------------------------------------------------------------+
//|          Description: Возвращает ширину свечи по масштабу чарта  |
//+------------------------------------------------------------------+
#import "user32.dll"
  bool GetWindowRect(int h, int& pos[4]);
#import
//+------------------------------------------------------------------+
int GetChartScale(){
        int h = WindowHandle(Symbol(), Period());
        int rect[4];
        if(h==0) return(1);
        GetWindowRect(h, rect);
        int wW  = rect[2] - rect[0]; // ширина окна
        int bpc = WindowBarsPerChart();
        if(bpc==0) return(1);
        int scale = MathFloor((wW-48)/bpc);
        switch(scale){
                case  1 :       return(0);
                case  2 :       return(1);
                case  4 :       return(2);
                case  8 :       return(3);
                case 16 :       return(6);
                case 32 :       return(13);
                default :   return(1);
        }
        return(1);
}
//+------------------------------------------------------------------+
 

Guten Tag! Können Sie mir bitte sagen, warum die Indikatorlinie nicht angezeigt wird, der Code scheint elementar zu sein und nichts Kompliziertes. Ich habe es mit Print (T_V) überprüft - es gibt den Wert, aber die Zeile wird aus irgendeinem Grund nicht angezeigt?

Ich möchte eine Frage hinzufügen: Ich habe den Indikator gelöscht und ihn erneut in ein Diagramm eingefügt, und die Linie wird angezeigt. Warum wird der Indikator bei der Kompilierung nicht neu errechnet?

#property indicator_separate_window
#property indicator_minimum -3
#property indicator_maximum 3
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_level1 0.0         //горизонтальный уровень N в отдельном окне индикатора, где N от 1 до 8 
#property indicator_levelcolor Black   // цвет горизонтальных уровней индикатора е 
#property indicator_levelwidth 1       //толщина горизонтальных уровней индикатора
double T_Vol[];

int init()
  {  SetIndexBuffer (0, T_Vol); 
     SetIndexStyle  (0, DRAW_HISTOGRAM, STYLE_SOLID, 1); 
     IndicatorDigits(Digits);
   return(0); }
int start(){
   int limit;
   int сounted_bars=IndicatorCounted();
   if (сounted_bars==0) limit=Bars-1;
   if (сounted_bars>0) limit=Bars-сounted_bars-1;
   for(int i=limit;i>=0;i--){
       int T_V=0; 
       if (Volume[i]>Volume[i+1])T_V=1;
       if (Volume[i]<Volume[i+1])T_V=-1;
       T_Vol[i]=T_V;
   }
   return(0);
}
 
PapaYozh:


1.

Welchen Wert hat die Variable "SignalBar" und wird der Indikator auf diesen Balken berechnet?

Vielleicht ist SignalBar=0 und der Indikator berechnet nicht den 0.

2.

Ja, während der visuellen Prüfung werden die Indikatorpuffer nicht angezeigt, bis die Prüfung abgeschlossen ist oder unterbrochen wird. Aber die Indikatoren zählen.

Danke für den Hinweis! Aber nichts hilft bisher :(

Jetzt studiere ich also die Übertragung von Indikatoren auf Expert Advisor. Wenn Sie einen klugen Rat haben, werde ich ihn nicht ablehnen! :)

 

Hallo zusammen!

Ich habe das Programmieren als Amateur studiert, ich habe schon lange nicht mehr programmiert, deshalb habe ich eine Frage:

Warum brauche ich Haltepunkte in MQL4, wenn nach dem Setzen dieser Punkte bei der Kompilierung nichts passiert? Früher habe ich viel in C# programmiert, wo es eine Pause in der Programmausführung gab und man die Werte der Variablen, die aufgerufenen Funktionen und die Fehlerliste sehen konnte. Aber hier drücke ich auf Compile und nichts passiert. Oder Sie können Debug irgendwie aktivieren, ich weiß nur nicht wie?

 

es gibt eine Funktion "double MathRound( double value)", aber ich brauche die Rundung auf einen größeren Dezimalbruch, und wenn die Zahl ganzzahlig oder bereits dezimal ist, dann lasse ich sie in Ruhe.

Zum Beispiel: 1) 0,744 gerundet auf 0,8; 1,233 gerundet auf 1,3

2) 0,9 oder 3 oder 1,5 nicht berühren.



Wer kann bitte helfen?
 

Ich frage mich, ob Sie überhaupt wissen, dass es eine vollständige und detaillierte Dokumentation der Sprache gibt?

NormalizeDouble

 
FAQ:

Ich frage mich, ob Sie überhaupt wissen, dass es eine vollständige und detaillierte Dokumentation der Sprache gibt?

NormalizeDouble

nach oben, das ist doch ganz einfach für dich, oder?...
 
okvseok:
nach oben ist es ein bisschen einfach, nicht wahr...?

Sie können eine Zahl in eine Zeichenkette übersetzen und eine Funktion schreiben, um die Zeichen dieser Zeichenkette zu verarbeiten. Hier ist es nicht kompliziert - wir runden nur auf, wenn die Zahl mehr als eine Stelle nach dem Komma hat.
 
drknn:

Sie können eine Zahl in eine Zeichenkette umwandeln und eine Funktion schreiben, um die Zeichen in dieser Zeichenkette zu verarbeiten. Hier ist es nicht kompliziert - wir runden eine Zahl nur, wenn sie mehr als eine Stelle nach dem Komma hat.
OK, ich werde es wirklich versuchen. Vielen Dank für die Idee!