Здравствуйте,
Перелопатил много учебников и примеров, но соответствующего решения не нашел.
Python:
import MetaTrader5 as mt5
import pandas as pd
import numpy as np
import time
# Импортирую данные из Metatrader5.
symbol_list = ['EURUSD','BTCUSDT.cfd']
timeframe = mt5.TIMEFRAME_H1
start_pos = 0
num_bars = 10
check_bar = pd.DataFrame(columns = ['time', 'symbol'], index = range(0, len(symbol_list)))
check_bar['time'] = pd.to_datetime(1900-1-1)
check_bar['symbol'] = symbol_list
while True:
for symbol in symbol_list:
bars = mt5.copy_rates_from_pos(symbol, timeframe, start_pos, num_bars)
df = pd.DataFrame(bars)[['time', 'open', 'high', 'low', 'close']]
df['symbol'] = symbol
df['time'] = pd.to_datetime(df['time'], unit='s')
df.dropna(inplace=True)
# Далее необходимо сравнить ячейку из check_bar['time'] соответствующего символа check_bar['symbol'] с
# последней ячейкой df['symbol', 'time'], если время последнего бара текущего символа из df не соответствует
# времени, записанного в check_bar, вернуть True и записать новое время в соответствующую ячейку
Перелопатил много учебников и примеров, но соответствующего решения не нашел.