2 min read

How to Initialize a Symbol on MetaTrader 5 with Python

Checkout how to initialize a symbol on MetaTrader 5 with Python.
Robotic clockwork robot, holding a red ‘Trending Up’ arrow.
Python Trading Bot

Python Trading Bot

With MetaTrader 5, the amazing world of Python Programming suddenly became available to retail traders around the world.

For many, it was a revelation. The powerful (and largely free) world of Pandas, SciKit, and more was now available to unleash on the world of algorithmic trading.

If that’s you, and you’re looking to use Python and MetaTrader 5 together, there are a few critical functions you’re going to need.

  1. How to Connect (including logging in!)
  2. How to Initialize a Symbol (covered in this episode)
  3. How to retrieve historic candle stick data (covered in the next episode)

Initialize a Symbol

MetaTrader 5 will not let you retrieve data about a symbol until it has been initialized. If you’re finding yourself with a no data error, then this may be why.

I’ll assume that for this tutorial, you’ve already figured out how to connect to MetaTrader 5 (if not, check out my article here).

To initialize a symbol, do the following (I’ve included some basic error checking in the code for you):

  1. import MetaTrader5
  2. Create this function
# Function to initialize a symbol on MT5
def initialize_symbols(symbol_array):
    # Get a list of all symbols supported in MT5
    all_symbols = MetaTrader5.symbols_get()
    # Create an array to store all the symbols
    symbol_names = []
    # Add the retrieved symbols to the array
    for symbol in all_symbols:
        symbol_names.append(symbol.name)

    # Check each symbol in symbol_array to ensure it exists
    for provided_symbol in symbol_array:
        if provided_symbol in symbol_names:
            # If it exists, enable
            if MetaTrader5.symbol_select(provided_symbol, True):
                print(f"Sybmol {provided_symbol} enabled")
            else:
                return ValueError
        else:
            return SyntaxError

    # Return true when all symbols enabled
    return True

Say Hi!

I love hearing from my readers, so feel free to reach out. It means a ton to me when you clap for my articles or drop a friendly comment — it helps me know that my content is helping.