FORTS: Yeni başlayanlara yardımcı olmak için - sayfa 13

 
prostotrader :

Ne olmuş?

Boş bardak yok. Ama orada ticaret yok, bu yüzden sıfır olabilir, kendim kontrol etmedim.

Ancak sıfır teklif için bir kontrol yapmanız ve sıradan semboller, aynı RTS ve Si'yi sormanız gerekir, çünkü bazen bardak boş olmasa bile uçarlar.

 
fxsaber :

Bugün 18:51:09'da boş bardak mı?

Bu temizleniyor.

 
JRandomTrader :

Boş bardak yok . Ama orada ticaret yok, bu yüzden sıfır olabilir, kendim kontrol etmedim.

Ancak sıfır teklif için bir kontrol yapmanız ve sıradan semboller, aynı RTS ve Si'yi sormanız gerekir, çünkü bazen bardak boş olmasa bile uçarlar.

Böyle "her şeyi bilen" şeyleri nereden alıyorsun?

Kod (RTS-3.21 vadeli işlemler, Gerçek Açıcı):

//+------------------------------------------------------------------+
//|                                                   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);
  }
//+------------------------------------------------------------------+

Sonuç:

..............................................................................
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 :

Bu temizleniyor.

Sadece piyasa öncesi değil, işlem süresi değil ve daha önce de söylediğim gibi

 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
Takas işlemi, işlem süresi boyunca boş bir emir defterine girdi.
 
prostotrader :

Böyle "her şeyi bilen" şeyleri nereden alıyorsun?

Kod (RTS-3.21 vadeli işlemler, Gerçek Açıcı):

Sonuç:

Bu boş bir bardak değil, dediğim gibi, muhtemelen bir tür başarısızlığın sonucu olan, boş bir teklif ve/veya soru içeren bir onay işaretidir.

Burada mevcut RTS veya Si'deki boş bir bardağa bakardım.

 
JRandomTrader :

Bu boş bir bardak değil, dediğim gibi, muhtemelen bir tür başarısızlığın sonucu olan, boş bir teklif ve/veya soru içeren bir onay işaretidir.

Burada mevcut RTS veya Si'deki boş bir bardağa bakardım.

Sayın!

Sana yazdıklarını okuyor musun?

Açıcı, gerçek, vadeli RTS-3.21

 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

Bir kod var, belki gerçek bir hesap yok?

Vadeli İşlemler RTS-3.21 "doğdu"
D'2019.03.15 19:05:00

Ve genellikle "yaşamın" başlangıcında bardak boştur.

 
prostotrader :

Sayın!

Sana yazdıklarını okuyor musun?

Açıcı, gerçek, vadeli RTS-3.21

Bir kod var, belki gerçek bir hesap yok?

MarketBookGet() kodunda görmedim

Şimdiki zamandan bahsediyorum - yani en yakın gelecekten. Ve sıfır talep / teklif ile keneler uçabilir, ancak bu sipariş defterini boş yapmaz.
Документация по MQL5: Получение рыночной информации / MarketBookGet
Документация по MQL5: Получение рыночной информации / MarketBookGet
  • www.mql5.com
MarketBookGet - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
JRandomTrader :

MarketBookGet() kodunda görmedim

Anlaşılır şekilde...

 
prostotrader :

Ve genellikle "yaşamın" başlangıcında bardak boştur.

Bugün hakkındaydı.

 
fxsaber :

Bugün hakkındaydı.

Saate bak, temizleniyor olabilir.

Oturum Programı

7-00 - 14-00

ilan vermek

14-05 - 18-45

ana takas

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

Bugün 18:51:09'da bardağı boş musun?

Bu Ana Takas.

Katma

İşlem günü hem 19-00'da hem de 19-05'te başlayabilir.

Bir vadeli işlem veya opsiyonun sona ermesi varsa, gün 19-05'te başlar.