Files
Deep-Reinforcement-Learning…/notebooks/1_Data.ipynb
T
2025-10-05 07:52:39 +02:00

5.9 KiB

1) Data — Collect & Save OHLC (MT5)

This notebook fetches OHLCV data from MT5 via a tiny adapter and saves it to CSV.

  • Keep your credentials in .env and do not commit .env.
  • If MT5 is not available, you can skip this and drop in a CSV manually.
In [1]:
import sys, os; sys.path.append(os.path.abspath('..')) # Path fix

# Prereqs: `pip install -r requirements.txt` (locally)
import os
from pathlib import Path
import pandas as pd
from dotenv import load_dotenv

from adapters import broker

# Load settings from env
load_dotenv()
SYMBOL = os.getenv("TRAINING_SYMBOL", "EURUSD")
TIMEFRAME = os.getenv("TIMEFRAME", "M15")
START = os.getenv("DATA_START", "2023-01-01")
END   = os.getenv("DATA_END", "2025-01-01")

print("Connecting to MT5...")
ok = broker.open_session(
    login=int(os.getenv("MT5_LOGIN", "0")) or None,
    password=os.getenv("MT5_PASSWORD"),
    server=os.getenv("MT5_SERVER")
)
print("MT5 connected:", ok)
Connecting to MT5...
MT5 connected: True
In [2]:

# Fetch OHLC and save
DATA_DIR = Path("data"); DATA_DIR.mkdir(exist_ok=True)
df = broker.fetch_ohlc(SYMBOL, TIMEFRAME, START, END)
out_csv = DATA_DIR / f"ohlc_{SYMBOL}_{TIMEFRAME}.csv"
df.to_csv(out_csv)
print("Saved:", out_csv.resolve())
df.tail()
Out [2]:
Saved: G:\My Drive\Bots DRL\DRL\DRL-MT5-Lab\notebooks\data\ohlc_EURUSD_M15.csv
open high low close volume
time
2024-12-31 20:45:00+00:00 1.03568 1.03568 1.03528 1.03531 529
2024-12-31 21:00:00+00:00 1.03528 1.03625 1.03518 1.03619 425
2024-12-31 21:15:00+00:00 1.03618 1.03647 1.03575 1.03590 465
2024-12-31 21:30:00+00:00 1.03590 1.03590 1.03543 1.03560 545
2024-12-31 21:45:00+00:00 1.03560 1.03571 1.03539 1.03542 306
In [ ]:

# Clean shutdown
broker.close_session()