FORTS: Para ajudar iniciantes - página 13

 
prostotrader:

Então?

Não existe tal coisa como um copo vazio. Mas também não há comércio lá, então presumo que possa haver zeros, eu mesmo ainda não verifiquei.

Mas eu tenho que verificar se há oferta zero e perguntar sobre os símbolos usuais, o mesmo RTS e Si, porque de vez em quando eles voam através deles, embora o vidro não esteja vazio.

 
fxsaber:

Um copo vazio às 18:51:09 de hoje?

Está desobstruído.

 
JRandomTrader:

Não existe tal coisa como um copo vazio. Mas também não há comércio lá, então acho que pode haver zeros, eu mesmo ainda não verifiquei.

Mas tenho que verificar se há oferta zero e perguntar sobre símbolos usuais, como RTS e Si, porque eles ocasionalmente voam através deles, embora o vidro não esteja vazio.

Onde você consegue tais "know-it-alls"?

Código (futuros 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);
  }
//+------------------------------------------------------------------+

Resultado:

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

Está desobstruído.

Não só isso, como também é pré-mercado, não é tempo de negociação e assim por diante, como eu disse anteriormente

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
O comércio de compensação foi para o copo vazio na hora do comércio.
 
prostotrader:

De onde você vem com tais "sabe-tudo"?

Código (RTS-3.21 futuros, Openreach real):

Resultado:

Não se trata de um copo vazio, mas de um tique com lance e/ou pedido vazio, o que, como eu disse, acontece provavelmente como resultado de algum tipo de falha.

Esse é o tique vazio no atual RTS ou Si que eu olharia.

 
JRandomTrader:

Não é um copo vazio, mas um tique com lance e/ou pedido vazio, o que, como eu disse, é provavelmente o resultado de algum tipo de fracasso.

Essa é a marca vazia no atual RTS ou Si I'd look at the current RTS.

Prezado!

Você lê o que está sendo escrito para você?

Futuro aberto, real, 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

Você tem um código, talvez não exista uma conta real?

RTS-3.21 futuros "nascidos"
D'2019.03.15 19:05:00

E o copo está frequentemente vazio no início da "vida".

 
prostotrader:

Prezado Senhor!

Você lê o que está escrito para você?

Futuro aberto, real, RTS-3.21

Existe um código, talvez não exista uma conta real?

Não vi MarketBookGet() no código

Estou falando do atual - isto é, dos futuros mais próximos. E pode ter carrapatos com pedido/licença zero, mas isso não torna o copo vazio.
Документация по MQL5: Получение рыночной информации / MarketBookGet
Документация по MQL5: Получение рыночной информации / MarketBookGet
  • www.mql5.com
MarketBookGet - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
JRandomTrader:

Não vi MarketBookGet() no código

Estou vendo...

 
prostotrader:

E muitas vezes o copo está vazio no início da 'vida'.

Era mais ou menos hoje.

 
fxsaber:

Era mais ou menos hoje.

Veja o tempo, pode estar desobstruído.

Horário das sessões

7-00 - 14-00

Limpeza do baile de finalistas

14-05 - 18-45

limpeza principal

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

Você é o copo vazio às 18:51:09 de hoje?

Esta é a Compensação Principal.

Adicionado

O dia de negociação pode começar às 19-00 ou 19-05

Se houver um vencimento de um futuro ou opção, então o dia começa em 19-05