Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Y qué?
No existe el vaso vacío. Pero ahí tampoco hay comercio, así que supongo que puede haber ceros, yo no lo he comprobado.
Pero tengo que comprobar que la oferta y la demanda son nulas en los símbolos habituales, el mismo RTS y Si, porque de vez en cuando pasan volando, aunque el vaso no está vacío.
¿Un vaso vacío a las 18:51:09 de hoy?
Se está despejando.
No existe el vaso vacío. Pero ahí tampoco hay comercio, así que supongo que puede haber ceros, yo no lo he comprobado.
Pero tengo que comprobar si la oferta y la demanda son nulas en los símbolos habituales, como RTS y Si, porque de vez en cuando pasan volando, aunque el vaso no esté vacío.
¿De dónde sacas esos "sabelotodo"?
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:
Se está despejando.
No sólo eso, también es pre-mercado, no es tiempo de negociación y también es como dije antes
La operación de compensación entró en el vaso vacío a la hora de negociar.¿De dónde sacas esos "sabelotodo"?
Código (RTS-3.21 futuros, Openreach real):
Resultado:
No se trata de un vaso vacío, sino de un tick con la oferta y/o la demanda vacías, lo que, como he dicho, ocurre probablemente como resultado de algún tipo de fallo.
Lo que yo miraría es un tick vacío en el RTS o Si actual.
No se trata de un vaso vacío, sino de un tick con la oferta y/o la demanda vacías, que, como he dicho, probablemente sea el resultado de algún tipo de fallo.
Esa es la garrapata vacía en el actual RTS o Si yo miraría.
¡Querida!
¿Lees lo que te escriben?
Futuros abiertos, reales, RTS-3.21.
Tienes un código, ¿tal vez no hay una cuenta real?
RTS-3.21 futuros "nacidos"Y el vaso suele estar vacío al principio de la "vida".
Estimado señor.
¿Lees lo que te escriben?
Futuros abiertos, reales, RTS-3.21
Hay un código, ¿quizás no hay una cuenta real?
No he visto MarketBookGet() en el código
Me refiero a los actuales, es decir, a los futuros más cercanos. Y puede tener garrapatas con cero ask/bid, pero eso no hace que el vaso esté vacío.No he visto MarketBookGet() en el código
Ya veo...
Y a menudo el vaso está vacío al principio de la "vida".
Se trataba de hoy.
Se trataba de hoy.
Mira la hora, podría estar despejando.
Calendario de sesiones
7-00 - 14-00
Despeje del baile de graduación
14-05 - 18-45
limpieza principal
19-00(19-05) - 23-50
¿Es usted el vaso vacío de las 18:51:09 de hoy?
Este es el claro principal.
Añadido
El día de negociación puede comenzar a las 19-00 o a las 19-05
Si hay un vencimiento de un futuro o una opción, entonces el día comienza a las 19-05