app.backbone.utils.get_data

 1import pandas as pd
 2import pandas_ta as pandas_ta
 3import MetaTrader5 as mt5
 4import MetaTrader5 as mt5
 5import pandas as pd
 6
 7import random
 8random.seed(42)
 9
10def get_data(
11        ticker, 
12        timeframe, 
13        date_from, 
14        date_to, 
15        save_in=None
16    ):
17
18    print("MetaTrader5 package author: ", mt5.__author__)
19    print("MetaTrader5 package version: ", mt5.__version__)
20
21    # Establecer conexión con el terminal de MetaTrader 5
22    if not mt5.initialize():
23        raise Exception("initialize() failed, error code =", mt5.last_error())
24
25    rates = mt5.copy_rates_range(ticker, timeframe, date_from, date_to)
26
27    if rates is None or len(rates) == 0:
28        return pd.DataFrame()
29
30    prices_df = pd.DataFrame(rates)
31
32    # Convertir el tiempo de segundos a formato datetime
33    prices_df['time'] = pd.to_datetime(prices_df['time'], unit='s')
34
35    # Renombrar columnas para el ticker principal
36    prices_df = prices_df.rename(columns={
37        'time': 'Date',
38        'open': 'Open',
39        'high': 'High',
40        'low': 'Low',
41        'close': 'Close',
42        'tick_volume': 'Volume'
43    }).set_index('Date')
44
45    prices_df.index = prices_df.index.tz_localize('UTC').tz_convert('UTC')
46
47    return prices_df
def get_data(ticker, timeframe, date_from, date_to, save_in=None):
11def get_data(
12        ticker, 
13        timeframe, 
14        date_from, 
15        date_to, 
16        save_in=None
17    ):
18
19    print("MetaTrader5 package author: ", mt5.__author__)
20    print("MetaTrader5 package version: ", mt5.__version__)
21
22    # Establecer conexión con el terminal de MetaTrader 5
23    if not mt5.initialize():
24        raise Exception("initialize() failed, error code =", mt5.last_error())
25
26    rates = mt5.copy_rates_range(ticker, timeframe, date_from, date_to)
27
28    if rates is None or len(rates) == 0:
29        return pd.DataFrame()
30
31    prices_df = pd.DataFrame(rates)
32
33    # Convertir el tiempo de segundos a formato datetime
34    prices_df['time'] = pd.to_datetime(prices_df['time'], unit='s')
35
36    # Renombrar columnas para el ticker principal
37    prices_df = prices_df.rename(columns={
38        'time': 'Date',
39        'open': 'Open',
40        'high': 'High',
41        'low': 'Low',
42        'close': 'Close',
43        'tick_volume': 'Volume'
44    }).set_index('Date')
45
46    prices_df.index = prices_df.index.tz_localize('UTC').tz_convert('UTC')
47
48    return prices_df