Skip to content

ig-python/trading-ig

Repository files navigation

Latest Version Supported Python versions Wheel format License Development Status Downloads monthly Documentation Status Test Coverage

trading-ig

A lightweight Python wrapper for the IG Markets API. Simplifies access to the IG REST and Streaming APIs.

What is it?

IG Markets provides financial spread betting and CFD platforms for trading equities, forex, commodities, indices, cryptocurrencies, bonds, rates, options and more.

IG provide APIs so that developers can access their platforms programmatically. Using the APIs you can get live and historical data, automate your trades, or create apps. For details about the IG APIs please see their site:

https://labs.ig.com/

NOTE: this is not an IG project. Use it at your own risk

Dependencies

A number of dependencies in this project are marked as 'optional', this is by design. There is a brief explanation in this FAQ item.

For full details, see pyproject.toml

Installation

This project uses Poetry.

Adding to an existing Poetry project:

$ poetry add trading-ig

With all the optional dependencies:

$ poetry add trading-ig[pandas,munch,tenacity]

Cloning the project with Poetry:

$ git clone https://github.com/ig-python/trading-ig
$ cd trading-ig
$ poetry install

And with all optional dependencies:

$ poetry install --extras "pandas munch tenacity"

Installing with pip:

$ pip install trading-ig

And with all optional dependencies:

$ pip install trading-ig pandas munch tenacity

What if I need help?

This library is maintained by one busy developer in his spare time, with very little time for support.

If you have a problem using this library, the first thing to do is to try to isolate where the problem is. The IG platform is a complex application, and there are many ways to make mistakes using it. Just because you see an error, it does not necessarily mean there is a problem with this library. If you encounter an issue, you should follow these steps, in order:

1 - Check if there a problem with the IG platform. From time to time the IG platform itself has issues, especially the DEMO environment. If you see a message like ConnectionRefusedError, or a 500 Server error, then it could be an issue with the IG platform. IG provide a status page, though its accuracy is questionable. You can also check the IG Community forums. If there are platform issues, its likely someone will have already posted a message there.

2 - Check if there is a problem with your code. Most of the API endpoints have multiple options, multiple versions, multiple ways of accessing them, and multiple interdependent parameters. Incoming data is validated on the server, and problems will be reported back in the response. You should

  • check the documentation (REST, Streaming) to make sure you are calling the APIs correctly
  • look at the sample code and unit and integration tests. There are example snippets for most API endpoints.
  • repeat the API call using the IG companion tools (REST, Streaming). If you get the same result, then it is likely that you are using the API incorrectly.

In this case you should:

3 - If you're sure that the problem is with this library, please:

  • provide everything necessary to reproduce the problem
  • include the full script that produces the error, including import statements
  • ideally this should be a minimal example - the shortest possible script that reproduces the problem
  • dependencies and their versions
  • the full output trace including the error messages

An issue without all this information may be ignored and/or closed without response

Docs

https://trading-ig.readthedocs.io/

License

BSD (See LICENSE)