I’m trying to get all ticks from all symbols in the B3 exchange. But, for some reason, for specific dates I get empty vectors as result. That usually happens with highly liquid equities.
<code>import vectorbt as vbt
from datetime import datetime
import MetaTrader5 as mt5
import pandas as pd
import pytz
from IPython.display import display, HTML, Markdown
from pandas.tseries.offsets import CustomBusinessDay
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday
import os
from tqdm import tqdm
pd.set_option('display.expand_frame_repr', True)
pd.set_option('display.min_rows', 100)
login, password = open(r'C:UsersJoãoWeckerleDownloadsmeta.txt').read().split()
timezone = pytz.timezone('Etc/GMT-3')
class feriados(AbstractHolidayCalendar):
rules = [
Holiday('New Years Day', month=1, day=1, year=2022),
Holiday('May Day', month=5, day=1, year=2022),
Holiday('14/04', month=4, day=17, year=2022),
Holiday('Constitution Day', month=4, day=21, year=2022),
Holiday('Pentecost Sunday', month=5, day=1, year=2022),
Holiday('Corpus Christi', month=9, day=7, year=2022),
Holiday('Assumption of the Blessed Virgin Mary', month=10, day=12, year=2022),
Holiday('All Saints Day', month=11, day=2, year=2022),
Holiday('Independence Day', month=11, day=15, year=2022),
Holiday('Christmas Day', month=12, day=25, year=2022),
Holiday('New Years Day', month=1, day=1, year=2023),
Holiday('Carnival', month=2, day=20, year=2023),
Holiday('Carnival', month=2, day=21, year=2023),
Holiday('Passion of Christ', month=4, day=7, year=2023),
Holiday('TakeTooths', month=4, day=21, year=2023),
Holiday('Labour Day', month=5, day=1, year=2023),
Holiday('Corpus Christi', month=6, day=8, year=2023),
Holiday('Independence Day', month=9, day=7, year=2023),
Holiday('Nossa Sr.a Aparecida - Padroeira do Brasil', month=10, day=12, year=2023),
Holiday('Finados', month=11, day=2, year=2023),
Holiday('Proclamação da República', month=11, day=15, year=2023),
Holiday('Christmas Day', month=12, day=25, year=2023),
Holiday('New Years Day', month=1, day=1, year=2024),
Holiday('Carnival', month=2, day=12, year=2024),
Holiday('Carnival', month=2, day=13, year=2024),
Holiday('Passion of Christ', month=3, day=29, year=2024),
Holiday('TakeTooths', month=4, day=21, year=2024),
Holiday('Labour Day', month=5, day=1, year=2024),
Holiday('Corpus Christi', month=5, day=30, year=2024),
Holiday('Independence Day', month=9, day=7, year=2024),
Holiday('Nossa Sr.a Aparecida - Padroeira do Brasil', month=10, day=12, year=2024),
Holiday('Finados', month=11, day=2, year=2024),
Holiday('Proclamação da República', month=11, day=15, year=2024),
Holiday('Black Consciousness', month=11, day=20, year=2024),
Holiday('Christmas Day', month=12, day=25, year=2024)]
BUSINESS_DAY = CustomBusinessDay(
calendar=feriados(),
weekmask='Mon Tue Wed Thu Fri')
agora = pd.Timestamp.now()
ontem = (agora - 1*BUSINESS_DAY)
anteontem = (agora - 2*BUSINESS_DAY).strftime('%Y%m%d')
mt5.shutdown()
if not mt5.initialize(login = 59307110, server= "XPMT5-DEMO", password = password):
print("initialize() failed, error code =",mt5.last_error())
mt5.shutdown()
# request connection status and parameters
print(mt5.terminal_info())
# get data on MetaTrader 5 version
print(mt5.version())
inicio = datetime(ontem.year,ontem.month,ontem.day, tzinfo = timezone)
fim = datetime(ontem.year, ontem.month, ontem.month, tzinfo = timezone)
tickers = pd.read_csv(fr'C:UsersJoãoWeckerleOneDrive - B6 CapitalDados B3TradeInformationConsolidatedFile_{anteontem}_1.csv', low_memory=False,
skiprows=1, delimiter=';')
tickers = tickers['TckrSymb']
ticks = mt5.copy_ticks_range(
'PETR4', # Símbolo desejado
inicio, # Data Inicial
fim, # Data Final
mt5.COPY_TICKS_ALL) # Flag da busca. Podemos passar também mt5.COPY_TICKS_TRADE e mt5.COPY_TICKS_INFO.
ticks = pd.DataFrame(ticks)
</code>
<code>import vectorbt as vbt
from datetime import datetime
import MetaTrader5 as mt5
import pandas as pd
import pytz
from IPython.display import display, HTML, Markdown
from pandas.tseries.offsets import CustomBusinessDay
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday
import os
from tqdm import tqdm
pd.set_option('display.expand_frame_repr', True)
pd.set_option('display.min_rows', 100)
login, password = open(r'C:UsersJoãoWeckerleDownloadsmeta.txt').read().split()
timezone = pytz.timezone('Etc/GMT-3')
class feriados(AbstractHolidayCalendar):
rules = [
Holiday('New Years Day', month=1, day=1, year=2022),
Holiday('May Day', month=5, day=1, year=2022),
Holiday('14/04', month=4, day=17, year=2022),
Holiday('Constitution Day', month=4, day=21, year=2022),
Holiday('Pentecost Sunday', month=5, day=1, year=2022),
Holiday('Corpus Christi', month=9, day=7, year=2022),
Holiday('Assumption of the Blessed Virgin Mary', month=10, day=12, year=2022),
Holiday('All Saints Day', month=11, day=2, year=2022),
Holiday('Independence Day', month=11, day=15, year=2022),
Holiday('Christmas Day', month=12, day=25, year=2022),
Holiday('New Years Day', month=1, day=1, year=2023),
Holiday('Carnival', month=2, day=20, year=2023),
Holiday('Carnival', month=2, day=21, year=2023),
Holiday('Passion of Christ', month=4, day=7, year=2023),
Holiday('TakeTooths', month=4, day=21, year=2023),
Holiday('Labour Day', month=5, day=1, year=2023),
Holiday('Corpus Christi', month=6, day=8, year=2023),
Holiday('Independence Day', month=9, day=7, year=2023),
Holiday('Nossa Sr.a Aparecida - Padroeira do Brasil', month=10, day=12, year=2023),
Holiday('Finados', month=11, day=2, year=2023),
Holiday('Proclamação da República', month=11, day=15, year=2023),
Holiday('Christmas Day', month=12, day=25, year=2023),
Holiday('New Years Day', month=1, day=1, year=2024),
Holiday('Carnival', month=2, day=12, year=2024),
Holiday('Carnival', month=2, day=13, year=2024),
Holiday('Passion of Christ', month=3, day=29, year=2024),
Holiday('TakeTooths', month=4, day=21, year=2024),
Holiday('Labour Day', month=5, day=1, year=2024),
Holiday('Corpus Christi', month=5, day=30, year=2024),
Holiday('Independence Day', month=9, day=7, year=2024),
Holiday('Nossa Sr.a Aparecida - Padroeira do Brasil', month=10, day=12, year=2024),
Holiday('Finados', month=11, day=2, year=2024),
Holiday('Proclamação da República', month=11, day=15, year=2024),
Holiday('Black Consciousness', month=11, day=20, year=2024),
Holiday('Christmas Day', month=12, day=25, year=2024)]
BUSINESS_DAY = CustomBusinessDay(
calendar=feriados(),
weekmask='Mon Tue Wed Thu Fri')
agora = pd.Timestamp.now()
ontem = (agora - 1*BUSINESS_DAY)
anteontem = (agora - 2*BUSINESS_DAY).strftime('%Y%m%d')
mt5.shutdown()
if not mt5.initialize(login = 59307110, server= "XPMT5-DEMO", password = password):
print("initialize() failed, error code =",mt5.last_error())
mt5.shutdown()
# request connection status and parameters
print(mt5.terminal_info())
# get data on MetaTrader 5 version
print(mt5.version())
inicio = datetime(ontem.year,ontem.month,ontem.day, tzinfo = timezone)
fim = datetime(ontem.year, ontem.month, ontem.month, tzinfo = timezone)
tickers = pd.read_csv(fr'C:UsersJoãoWeckerleOneDrive - B6 CapitalDados B3TradeInformationConsolidatedFile_{anteontem}_1.csv', low_memory=False,
skiprows=1, delimiter=';')
tickers = tickers['TckrSymb']
ticks = mt5.copy_ticks_range(
'PETR4', # Símbolo desejado
inicio, # Data Inicial
fim, # Data Final
mt5.COPY_TICKS_ALL) # Flag da busca. Podemos passar também mt5.COPY_TICKS_TRADE e mt5.COPY_TICKS_INFO.
ticks = pd.DataFrame(ticks)
</code>
import vectorbt as vbt
from datetime import datetime
import MetaTrader5 as mt5
import pandas as pd
import pytz
from IPython.display import display, HTML, Markdown
from pandas.tseries.offsets import CustomBusinessDay
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday
import os
from tqdm import tqdm
pd.set_option('display.expand_frame_repr', True)
pd.set_option('display.min_rows', 100)
login, password = open(r'C:UsersJoãoWeckerleDownloadsmeta.txt').read().split()
timezone = pytz.timezone('Etc/GMT-3')
class feriados(AbstractHolidayCalendar):
rules = [
Holiday('New Years Day', month=1, day=1, year=2022),
Holiday('May Day', month=5, day=1, year=2022),
Holiday('14/04', month=4, day=17, year=2022),
Holiday('Constitution Day', month=4, day=21, year=2022),
Holiday('Pentecost Sunday', month=5, day=1, year=2022),
Holiday('Corpus Christi', month=9, day=7, year=2022),
Holiday('Assumption of the Blessed Virgin Mary', month=10, day=12, year=2022),
Holiday('All Saints Day', month=11, day=2, year=2022),
Holiday('Independence Day', month=11, day=15, year=2022),
Holiday('Christmas Day', month=12, day=25, year=2022),
Holiday('New Years Day', month=1, day=1, year=2023),
Holiday('Carnival', month=2, day=20, year=2023),
Holiday('Carnival', month=2, day=21, year=2023),
Holiday('Passion of Christ', month=4, day=7, year=2023),
Holiday('TakeTooths', month=4, day=21, year=2023),
Holiday('Labour Day', month=5, day=1, year=2023),
Holiday('Corpus Christi', month=6, day=8, year=2023),
Holiday('Independence Day', month=9, day=7, year=2023),
Holiday('Nossa Sr.a Aparecida - Padroeira do Brasil', month=10, day=12, year=2023),
Holiday('Finados', month=11, day=2, year=2023),
Holiday('Proclamação da República', month=11, day=15, year=2023),
Holiday('Christmas Day', month=12, day=25, year=2023),
Holiday('New Years Day', month=1, day=1, year=2024),
Holiday('Carnival', month=2, day=12, year=2024),
Holiday('Carnival', month=2, day=13, year=2024),
Holiday('Passion of Christ', month=3, day=29, year=2024),
Holiday('TakeTooths', month=4, day=21, year=2024),
Holiday('Labour Day', month=5, day=1, year=2024),
Holiday('Corpus Christi', month=5, day=30, year=2024),
Holiday('Independence Day', month=9, day=7, year=2024),
Holiday('Nossa Sr.a Aparecida - Padroeira do Brasil', month=10, day=12, year=2024),
Holiday('Finados', month=11, day=2, year=2024),
Holiday('Proclamação da República', month=11, day=15, year=2024),
Holiday('Black Consciousness', month=11, day=20, year=2024),
Holiday('Christmas Day', month=12, day=25, year=2024)]
BUSINESS_DAY = CustomBusinessDay(
calendar=feriados(),
weekmask='Mon Tue Wed Thu Fri')
agora = pd.Timestamp.now()
ontem = (agora - 1*BUSINESS_DAY)
anteontem = (agora - 2*BUSINESS_DAY).strftime('%Y%m%d')
mt5.shutdown()
if not mt5.initialize(login = 59307110, server= "XPMT5-DEMO", password = password):
print("initialize() failed, error code =",mt5.last_error())
mt5.shutdown()
# request connection status and parameters
print(mt5.terminal_info())
# get data on MetaTrader 5 version
print(mt5.version())
inicio = datetime(ontem.year,ontem.month,ontem.day, tzinfo = timezone)
fim = datetime(ontem.year, ontem.month, ontem.month, tzinfo = timezone)
tickers = pd.read_csv(fr'C:UsersJoãoWeckerleOneDrive - B6 CapitalDados B3TradeInformationConsolidatedFile_{anteontem}_1.csv', low_memory=False,
skiprows=1, delimiter=';')
tickers = tickers['TckrSymb']
ticks = mt5.copy_ticks_range(
'PETR4', # Símbolo desejado
inicio, # Data Inicial
fim, # Data Final
mt5.COPY_TICKS_ALL) # Flag da busca. Podemos passar também mt5.COPY_TICKS_TRADE e mt5.COPY_TICKS_INFO.
ticks = pd.DataFrame(ticks)
Does anyone know why this is happening? My guess would be the size of the data as if there is too much data to return you get nothing instead.