Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 700

 
Vitalie Postolache:
Dringend an real!!!!!!!!!!!!!
nicht so dringend, erst eine Kopie an mich)
 
Treder9:
Ich würde selbst gerne einen echten für 50 Dollar kaufen.

So ein Pfund kann einen ganz schön aus der Fassung bringen.

♪ but no one can do it ♪

Ich antworte!
 
Taras Slobodyanik:

Sie müssen einen Parameter hinzufügen

request.type_time=ORDER_TIME_DAY;


Danke, ich wünschte nur, ich könnte herausfinden, wie man...

 

Ich kann nicht herausfinden, wie man High[] in fünf Worten ausdrücken kann.

double High[]
double High[];
int count;        // сколько копируем
ArraySetAsSeries(High,true);
CopyHigh(_Symbol,_Period,0,count,High);
 
-Aleks-:

Ich kann nicht herausfinden, wie man High[] in 5? ausdrückt.

Ich drücke es so aus, dass es vielleicht nicht richtig geschrieben ist, aber es funktioniert:

double iOpen(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Open[];
  double open=0;
   ArraySetAsSeries(_Open,true);
   int copied=CopyOpen(symb,tf,0,Bars(symb,tf),_Open);
   if(copied>0 && index<copied) open=_Open[index];
   return(open);
}
double iClose(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Close[];
  double close=0;
   ArraySetAsSeries(_Close,true);
   int copied=CopyClose(symb,tf,0,Bars(symb,tf),_Close);
   if(copied>0 && index<copied) close=_Close[index];
   return(close);
}
double iHigh(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _High[];
  double high=0;
   ArraySetAsSeries(_High,true);
   int copied=CopyHigh(symb,tf,0,Bars(symb,tf),_High);
   if(copied>0 && index<copied) high=_High[index];
   return(high);
}
double iLow(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Low[];
  double low=0;
   ArraySetAsSeries(_Low,true);
   int copied=CopyLow(symb,tf,0,Bars(symb,tf),_Low);
   if(copied>0 && index<copied) low=_Low[index];
   return(low);
}
 
-Aleks-:

Ich kann nicht herausfinden, wie man High[] in 5? ausdrückt.

MqlRates rates[];
int copied=CopyRates(NULL,0,0,100,rates);


dann, falls erforderlich, Aufruf: rates[x].high.
 
Vitaly Muzichenko:

Ich drücke es so aus, dass es vielleicht nicht richtig aufgeschrieben ist, aber es funktioniert:

Und das habe ich auch - aber warum sollte ich es in five.... so sehr vermasseln?

Vitalie Postolache:

MqlRates rates[];
int copied=CopyRates(NULL,0,0,100,rates);


dann, falls erforderlich, Aufruf: rates[x].high.

Und was wird in der Regel alles kopiert? Welchen Vorteil hat dieses Kopieren überhaupt? Benötigt er weniger Speicherplatz als in 4?

Fiel in einen Stupor von

Es ist zu beachten, dass in MQL5 die numerischen Werte der Konstanten der Diagrammperioden (beginnend mit H1) nicht mit der Anzahl der Minuten in einem Balken übereinstimmen (zum Beispiel, in MQL5 ist der numerische Wert von PERIOD_H1=16385, während in MQL4 PERIOD_H1=60). Dieser Umstand muss beim Umstieg auf MQL5 berücksichtigt werden, wenn im Programm in MQL4 numerische Werte für Berechnungen verwendet wurden.

Um die Anzahl der Minuten einer bestimmten Periode eines Diagramms zu erfahren, teilen Sie den Wert der Funktion PeriodSeconds durch 60.

Woher kommt die Zahl 16385 - wo ist die Logik?

 
Vitalie Postolache:

MqlRates rates[];
int copied=CopyRates(NULL,0,0,100,rates);


und dann, falls erforderlich, aufzurufen: rates[x].high.

OK, Sie haben eine Lösung für das aktuelle Zeichen, ich habe einen Multisymbolabruf.

Frage: Ist meine Schreibweise korrekt, oder gibt es einen Fehler im Code?

-Aleks-:

Ich bin verwirrt durch

Es ist zu beachten, dass in MQL5 die numerischen Werte der Konstanten der Diagrammperioden (beginnend mit H1) nicht mit der Anzahl der Minuten in einem Balken übereinstimmen (zum Beispiel ist in MQL5 der numerische Wert von PERIOD_H1=16385, während in MQL4 PERIOD_H1=60). Dieser Umstand muss beim Umstieg auf MQL5 berücksichtigt werden, wenn im Programm in MQL4 numerische Werte für Berechnungen verwendet wurden.

Um die Anzahl der Minuten einer bestimmten Periode eines Diagramms zu erfahren, teilen Sie den Wert der Funktion PeriodSeconds durch 60.

Woher kommt die Zahl 16385 - wo ist die Logik?

Ich muss die Quantenphysik studieren, da muss der Wert herkommen
 
-Aleks-:

Ich auch - aber warum sollte ich es in den fünf.... so sehr vermasseln?

Und was ist es, das die Menschen dazu bringt, alle Werte zu kopieren? Welchen Vorteil hat dieses Kopieren überhaupt? Benötigt er weniger Speicherplatz als in 4?

Warum alle? Vollständige Informationen für jeweils 100 Takte (Sie können natürlich auch weniger oder mehr Takte angeben). Nützlich, wenn Sie mehr als nur Hoch benötigen.

Es kann aber auch separat heruntergeladen werden, wieVitaly Muzichenko gezeigt hat.

Vitaly Muzichenko:

Okay, Sie haben die Lösung für das aktuelle Symbol, ich habe eine Multisymbolfähigkeit.

Frage: Ist das richtig, oder gibt es einen Fehler in meinem Code?

Es ist leicht, diese Lösung in eine Lösung mit mehreren Symbolen zu "verwandeln", indem man einfach ein Zeichen anstelle von NULL angibt. Nun, und TF, wenn nötig, genau wie in Ihren Beispielen.

Was die Korrektheit des Codes angeht, so gibt es Beispiele in der Hilfe( sieheCopyHigh ), dort nur Arrays auf globaler Ebene.

 
-Aleks-:

gerät in Unordnung .........

Da ist das hier.

Am Anfang ist es ein bisschen stachelig. Das Umschreiben von MT4 ist jedoch kein Problem.

Ich weiß nicht, wie es anderen geht, aber 4-Rka denkt schneller.

Und was auf 4-Rka gemacht wurde, geht ohne Probleme in den Markt, während die Umschreibung von MT4 auf MT5 manchmal nicht durchkommt, einfach weil der Markt keine Zeit hat, ein identisches Produkt in der ihm zustehenden Zeit zu testen.

Grund der Beschwerde: