AminHP / gym-mtsim

A general-purpose, flexible, and easy-to-use simulator alongside an OpenAI Gym trading environment for MetaTrader 5 trading platform (Approved by OpenAI Gym)
MIT License
412 stars 101 forks source link

Symbol Data Download #25

Closed FarzanTabrizi closed 2 years ago

FarzanTabrizi commented 2 years ago

Hi how can I download new tick data for Symbols from MT5? is there any way to get live tick data and test the model on it?

Thanks

AminHP commented 2 years ago

Hi @FarzanTabrizi ,

What do you mean by new tick data? If you mean a real-time data stream, I don't think MetaTrader has an API for that. However, you can download new data in short intervals using the MtSimulator.download_data method. Then, append it to the previously downloaded data. Check out the code below:

main_sim = MtSimulator(...)
last = datetime.utcnow()
main_sim.download_data(
    symbols=['EURUSD', 'GBPCAD', 'GBPUSD', 'USDCAD', 'USDCHF', 'GBPJPY', 'USDJPY'],
    time_range=(
        datetime(2010, 5, 5, tzinfo=pytz.UTC),
        last
    ),
    timeframe=Timeframe.M1
)

# run this loop in another thread
while True:
    sleep(5 * 60)  # 5 minutes
    now = datetime.utcnow()

    new_sim = MtSimulator(...)
    new_sim.download_data(
        symbols=['EURUSD', 'GBPCAD', 'GBPUSD', 'USDCAD', 'USDCHF', 'GBPJPY', 'USDJPY'],
        time_range=(last, now),
        timeframe=Timeframe.M1
    )

    for symbol in new_sim.symbols_data:
        main_sim.symbols_data[symbol] = pd.append(main_sim.symbols_data[symbol], new_sim.symbols_data[symbol])

    last = now
FarzanTabrizi commented 2 years ago

Thanks