//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+
结果。
..............................................................................
2021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book with empty Last!
2021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book with empty Last!
2021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book with empty Last!
2021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book. Last = 152910.02021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book. Last = 152910.02021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book with empty Last!
2021.03.0121:58:20.820 Ticks_zero (RTS-3.21,M1) Empty book with empty Last!
...................................................................................
那么?
没有空杯子这回事。但是那里也没有交易,所以我想可能有零,我自己没有检查过。
但我必须检查通常符号的零买入和零卖出,同样的RTS和Si,因为它们不时地飞过,尽管杯子不是空的。
今天18:51:09的空杯?
它正在清除。
没有空杯子这回事。但是那里也没有交易,所以我猜可能有零,我自己没有检查过。
但我必须检查通常符号的零买入和零卖出,如RTS和Si,因为它们偶尔会飞过,尽管杯子不是空的。
你从哪里得到这样的 "知识分子"?
准则(期货RTS-3.21,Openreach真实)。
结果。
它正在清除。
不仅如此,现在还是盘前,不是交易时间,等等,正如我之前 所说的那样
清算的交易在交易时间进入了空杯。你怎么会有这样的 "万事通 "呢?
代码(RTS-3.21期货,Openreach真实)。
结果。
这不是一个空杯子,而是一个空的买入和/或卖出的刻度线,正如我所说,这可能是由于某种故障而发生的。
这是目前RTS或Si上的空勾,我会看一下。
这不是一个空杯子,而是一个空的买入和/或卖出的勾,正如我所说,这可能是某种失败的结果。
这是目前RTS或Si上的空勾,我会看一下。
亲爱的!
你读过写给你的东西吗?
公开、真实、RTS-3.21期货。
你有一个密码,也许没有真正的账户?
RTS-3.21期货 "出生"而在 "生活 "的开始,杯子往往是空的。
亲爱的先生!
你读过写给你的东西吗?
公开、真实、RTS-3.21期货
有一个代码,也许没有真正的账户?
在代码中没有看到MarketBookGet()。
我说的是实际的--也就是最近的期货。而且,它可能有零卖价/出价的刻度,但这并不意味着杯子是空的。在代码中没有看到MarketBookGet()。
我明白了...
而在 "生活 "的开始,杯子往往是空的。
这是关于今天。
这是关于今天。
看看时间,可能是晴天。
会议日程安排
7-00 - 14-00
舞会清场
14-05 - 18-45
主要清理
19-00(19-05) - 23-50
你是今天18:51:09的 那个空杯子 吗?
这是主清算所。
添加
交易日可以在19-00或19-05开始
如果有一个期货或期权到期,那么这一天就从19-05开始。