FORTS: Um Anfängern zu helfen - Seite 13

 
prostotrader:

Und?

Ein leeres Glas gibt es nicht. Aber auch dort gibt es keinen Handel, also nehme ich an, dass es Nullen sein könnten, ich habe es nicht selbst überprüft.

Aber ich muss bei den üblichen Symbolen, den gleichen RTS und Si, auf null Geld- und Briefkurse achten, denn von Zeit zu Zeit fliegen sie durch, obwohl das Glas nicht leer ist.

 
fxsaber:

Ein leeres Glas um 18:51:09 Uhr?

Die Luft ist rein.

 
JRandomTrader:

Ein leeres Glas gibt es nicht. Aber auch dort gibt es keinen Handel, so dass ich vermute, dass es Nullen sein könnten, ich habe es nicht selbst überprüft.

Bei den üblichen Symbolen, wie RTS und Si, muss ich jedoch darauf achten, dass die Geld- und Briefkurse auf Null stehen, da sie gelegentlich durchfliegen, obwohl das Glas nicht leer ist.

Woher nehmen Sie solche "Besserwisser"?

Code (Futures RTS-3.21, Openreach real):

//+------------------------------------------------------------------+
//|                                                   Ticks_zero.mq5 |
//|                                      Copyright 2021 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window

#property indicator_plots   1
#property indicator_buffers 1

datetime start_time, end_time;
datetime time_array[];
int time_cnt;
MqlTick ticks[];

input datetime StTime = D'2019.03.15 19:05:00';    // Начало расчета фьючерса

enum IND_STAGE
{
  LOAD_TICKS = 0,
  FILL_DATA = 1
}ind_stage;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   end_time = datetime(SymbolInfoInteger(Symbol(), SYMBOL_EXPIRATION_TIME));
   start_time = StTime;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator Load ticks function                             |
//+------------------------------------------------------------------+
bool LoadTicks(const datetime &a_times[])
{
  int result = CopyTime(Symbol(), PERIOD_M1, start_time, end_time, time_array);
  if(result > 0)
  {
    time_cnt = result;
    if(time_array[result - 1] == a_times[ArraySize(a_times) - 1])
    {
      result = CopyTicksRange(Symbol(), ticks, COPY_TICKS_INFO, ulong(start_time) * 1000, ulong(end_time) * 1000);
      if(result > 0)
      {
        if(ticks[result-1].time >= time_array[time_cnt - 1]) 
        {
          return(true);
        } else Print(__FUNCTION__, ": Не хватает тиков ", Symbol(), "!"); 
      } else Print(__FUNCTION__, ": Не получены тики по символу ", Symbol(), "!");
    } else Print(__FUNCTION__, ": Не хватает баров по символу ", Symbol(), "!");
  } else Print(__FUNCTION__, ": Не скопировано время баров по символу ", Symbol(), "!");
  return(false);
}  
//+------------------------------------------------------------------+
//| Custom indicator Fill Data function                              |
//+------------------------------------------------------------------+
void FillData()
{
  for(int i = 0; i<ArraySize(ticks);i++)
  {
    if((ticks[i].ask == 0) && (ticks[i].bid == 0) && (ticks[i].last == 0)) 
    {
     Print("Empty book with empty Last! Time: ", ticks[i].time);
    }
    else
    if((ticks[i].ask == 0) && (ticks[i].bid == 0) && (ticks[i].last != 0)) 
    {
      Print("Empty book. Last = ", ticks[i].last, " Time: ", ticks[i].time);
    } 
  }
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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& tick_volume[], 
                 const long& volume[],
                 const int& spread[] )
{  
    switch(ind_stage)
    {
      case LOAD_TICKS:
        if(LoadTicks(time) == true)
        {
          ind_stage = FILL_DATA;
        } else return(0); 
      break;
      case FILL_DATA:
        FillData();
      break;
    }
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Ergebnis:

..............................................................................
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book with empty Last!
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book with empty Last!
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book with empty Last!
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book. Last = 152910.0
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book. Last = 152910.0
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book with empty Last!
2021.03.01 21:58:20.820 Ticks_zero (RTS-3.21,M1)        Empty book with empty Last!
...................................................................................
 
JRandomTrader:

Die Luft ist rein.

Nicht nur das, es ist auch vorbörslich, nicht Handelszeit und so weiter, wie ich bereits sagte.

2021.03.01 22:08:11.016 Ticks_zero (RTS-3.21,M1)        Empty book. Last = 125620.0 Time: 2020.03.02 19:00:02
2021.03.01 22:08:11.016 Ticks_zero (RTS-3.21,M1)        Empty book with empty Last! Time: 2020.03.03 00:04:31
2021.03.01 22:08:11.016 Ticks_zero (RTS-3.21,M1)        Empty book. Last = 130070.0 Time: 2020.03.03 18:44:58
2021.03.01 22:08:11.016 Ticks_zero (RTS-3.21,M1)        Empty book. Last = 130070.0 Time: 2020.03.03 19:00:01
Das Clearinggeschäft ging zur Handelszeit ins leere Glas.
 
prostotrader:

Wie kommen Sie zu solchen "Besserwissern"?

Code (RTS-3.21 futures, Openreach real):

Ergebnis:

Es handelt sich nicht um ein leeres Glas, sondern um einen Tick mit leerem Geld- und/oder Briefkurs, was, wie gesagt, wahrscheinlich auf eine Störung zurückzuführen ist.

Das ist das leere Häkchen auf dem aktuellen RTS oder Si, das ich mir ansehen würde.

 
JRandomTrader:

Es handelt sich nicht um ein leeres Glas, sondern um einen Tick mit leerem Geld- und/oder Briefkurs, was, wie gesagt, wahrscheinlich das Ergebnis eines Fehlers ist.

Das ist das leere Häkchen auf dem aktuellen RTS oder Si, das ich mir ansehen würde.

Oh je!

Lesen Sie, was Ihnen geschrieben wird?

Offene, echte, RTS-3.21-Futures.

2021.03.01 22:08:11.016 Ticks_zero (RTS-3.21,M1)        Empty book. Last = 130070.0 Time: 2020.03.03 19:00:01

Sie haben einen Code, vielleicht gibt es kein echtes Konto?

RTS-3.21 Zukünfte "geboren"
D'2019.03.15 19:05:00

Und das Glas ist zu Beginn des "Lebens" oft leer.

 
prostotrader:

Sehr geehrter Herr!

Lesen Sie, was Ihnen geschrieben wird?

Offene, echte, RTS-3.21-Futures

Es gibt einen Code, vielleicht gibt es kein richtiges Konto?

Ich habe MarketBookGet() nicht im Code gesehen.

Ich spreche von den tatsächlichen, d.h. den nächstliegenden Terminen. Und es kann Zecken mit Null-Brief/Brief haben, aber das macht das Glas nicht leer.
Документация по MQL5: Получение рыночной информации / MarketBookGet
Документация по MQL5: Получение рыночной информации / MarketBookGet
  • www.mql5.com
MarketBookGet - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
JRandomTrader:

Ich habe MarketBookGet() nicht im Code gesehen.

Ich verstehe...

 
prostotrader:

Und oft ist das Glas zu Beginn des "Lebens" leer.

Es ging um den heutigen Tag.

 
fxsaber:

Es ging um den heutigen Tag.

Schauen Sie auf die Uhrzeit, sie könnte sich auflösen.

Zeitplan der Sitzungen

7-00 - 14-00

Abschlussball-Räumung

14-05 - 18-45

Hauptrodung

19-00(19-05) - 23-50

Sind Sie das leere Glas um 18:51:09 Uhr?

Dies ist das Main Clearing.

Hinzugefügt

Der Handelstag kann entweder um 19-00 oder 19-05 Uhr beginnen.

Wenn es einen Verfall eines Futures oder einer Option gibt, dann beginnt der Tag um 19-05

Grund der Beschwerde: