Wie erhalte ich Open, Low, High, Close Parameter in MQL5? - Seite 3

 

Ein Beispiel für ein Skript:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int i=0;i<3;i++)
      Print("# ",i,": ",DoubleToString(iOpen(Symbol(),PERIOD_CURRENT,i),Digits()));
//---
  }
//+------------------------------------------------------------------+

und das Ergebnis:

2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 0: 1.11399
2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 1: 1.11425
2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 2: 1.11319


Bearbeitet.

Dateien:
1.mq5  2 kb
 

Hier sind sie.

Funktioniert sowohl bei 4pc als auch bei 5pc

In 4-rka gelten Period(), Symbol() usw.

In 5-pc, _Period, _Symbol(), etc. anwenden.

iBars

Gibt die Anzahl der Balken in der Historie für ein bestimmtes Symbol und einen bestimmten Zeitraum zurück

iBarShift

Gibt den Offset des Balkens zurück, zu dem die angegebene Zeit gehört

iClose

Gibt den Schlusskurs des Balkens des entsprechenden Charts zurück

iHigh

Gibt den Wert des maximalen Preises des Balkens im Diagramm zurück

iHighest

Gibt den Index des höchsten gefundenen Wertes des entsprechenden Diagramms zurück

iLow

Gibt den Wert des minimalen Barpreises des entsprechenden Charts zurück

iLowest

Gibt den Index des kleinsten gefundenen Wertes des entsprechenden Diagramms zurück

iOpen

Gibt den Wert des Eröffnungspreises des entsprechenden Charts zurück

iTime

Gibt die Öffnungszeit des entsprechenden Charts zurück

iVolume

Gibt den Wert des Tickvolumens des Balkens im Diagramm zurück

iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Mit CopyRates hat es funktioniert. Es funktioniert.
 

Und hier ist dieCopyRates-Variante

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   MqlRates rates[];
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(CopyRates(Symbol(),Period(),start_pos,count,rates)!=count)
      return;

   for(int i=0;i<count;i++)
      Print("Open # ",i,": ",DoubleToString(rates[i].open,Digits()));
//---
  }
//+------------------------------------------------------------------+

und Ergebnis

2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 0: 1.11399
2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 1: 1.11425
2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 2: 1.11319
Dateien:
1.mq5  3 kb
 
Alexey Viktorov:

Alexey, das ist für diejenigen, die in einem Panzer sitzen. Und für die normalen ist CopyRates() auch in mql4 verfügbar. Vergessen Sie also iOpen und anderen Unfug. Ich verstehe nicht einmal, warum sie es in mql5 eingebaut haben.

Oh! Es sind klitzekleine Jungs aufgetaucht))

Warum brauchen wir in der Praxis viele aufeinanderfolgende OHLC-Werte - die Sie vorgeschlagen haben, mit CopyRates() zu erhalten? - außer zum Meditieren? ))))

es gibt nicht viel praktischen Nutzen, hier ist eine triviale Aufgabe, die Entladung (oder Verwendung) des Fractals Indikator, ich habe einen solchen Code:

#define  Time(n)   iTime(NULL,0,n)
//+------------------------------------------------------------------+
void OnStart()
  {
   int handle=iFractals(NULL,0);
   if(handle==INVALID_HANDLE)
     {
      Print("Error№,",::GetLastError()," create handle indicator");
      return;
     }
   int count=0,i=0;
   double buffup[1],buffdn[1];
   while(i<Bars(_Symbol,_Period) && count<10)
     {
      if(CopyBuffer( handle,0,i,1, buffup)<1) Print("buffup , error № ",::GetLastError());
      if(CopyBuffer( handle,1,i,1, buffdn)<1) Print("buffup , error № ",::GetLastError());
      if(buffup[0]<EMPTY_VALUE && ++count>0)  Print("Bar № ",i," : ",Time(i)," , Fractals Up = ",buffup[0]);
      if(buffdn[0]<EMPTY_VALUE && ++count>0)  Print("Bar № ",i," : ",Time(i)," , Fractals Dn = ",buffdn[0]);
     i++;
     }
  }
//+------------------------------------------------------------------+


Zeigen Sie mir Ihren Code mit Verwendung von CopyRates()...

 
Vladimir Karputov:

Und hier ist dieCopyRates-Variante

und Ergebnis

Aber, wenn wir brauchen, um ständig Daten auf neue Bars zu verfolgen, bedeutet es, CopyRates auf jedem Tick zu beziehen und eine Zeitreihe auf jedem Tick zu machen?

Ich versuche herauszufinden, wo ich die CopyRates am besten unterbringen kann.

 
Реter Konow:

Aber wenn Sie ständig Daten über neue Balken verfolgen müssen, müssen Sie dann bei jedem Tick auf CopyRates verweisen und bei jedem Tick eine Zeitreihe erstellen?

Ich versuche zu verstehen, wo ich die CopyRates besser unterbringen kann.

Ich habe bereits oben gefragt: WARUM? Ist es notwendig, den Wert des Nullbalkens (der Balken ganz rechts im Diagramm) zu berücksichtigen?

 
Vladimir Karputov:

Ich habe bereits oben gefragt: WARUM? Sollte der Wert des Nullbalkens (der Balken ganz rechts im Diagramm) berücksichtigt werden?

Für den Tisch. Es gibt vier Parameter in der Tabelle: Open, Close, High, Low, die letzten 10 Balken, ohne den aktuellen.

Zuletzt, im Sinne einer Rückwärtsbewegung von der aktuellen (Null).

 
Igor Makanu:

Ooh! Teenies sind aufgetaucht))

warum sollte man in der Praxis viele aufeinanderfolgende OHLC-Werte haben, die man mit CopyRates() erhalten möchte? - außer zum Meditieren? ))))

es gibt nicht viel praktischen Nutzen, hier ist eine triviale Aufgabe, die Entladung (oder Verwendung) des Fractals Indikator, ich habe einen solchen Code:


Zeigen Sie mir Ihren Code mit CopyRates()...

Igor, du solltest in die erste Klasse gehen. Dort werden Buchstaben gelehrt, und nach dem Studium werden Sie den Unterschied zwischen CopyRates und CopyBuffer verstehen.

Bieten Sie mir lieber eine Lösung für dieses Problem OHNE CopyRates(!)

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wie erhalte ich Open,Low,High,Close Parameter in MQL5?

Retrog Konow, 2019.07.29 19:58

Für den Tisch. Es gibt vier Parameter in der Tabelle: Open, Close, High, Low, die letzten 10 Bars, ohne den aktuellen.

Als Letztes meine ich, wenn man von der aktuellen Zahl (Null) rückwärts geht.


 
Реter Konow:

Für den Tisch. Es gibt vier Parameter in der Tabelle: Open, Close, High, Low, die letzten 10 Balken, ohne den aktuellen.

Zuletzt, im Sinne einer Rückwärtsbewegung von der aktuellen (Null).

In diesem Fall ist CopyRates vom ersten Takt an eindeutig 10. Und rufen Sie sie nicht bei jedem Tick auf, sondern immer dann, wenn ein neuer Balken erscheint.