malloryerik / ibex

Pre-alpha. Elixir wrapper for Interactive Brokers' TWS API.
https://github.com/malloryerik/ibex
MIT License
1 stars 0 forks source link

Ibex

Ibexes are superb climbers.

An ibex is a mountain-climbing goat. Another kind of Ibex is Spain's IBEX 35 stock index -- we have no affiliation or connection.

Ibex aims to be an unofficial Elixir wrapper for the Interactive Brokers TWS API.

A focus on excellent concurrency, stability, and ease of use. Current thinking is to value software quality over feature completeness, so start with a small subset of functionality that works to a high standard and is maintainable, documented, polished. Then grow the API.


First step: a tiny subset of the api allowing Elixir apps to

  1. Connect to the TWS API via a TCP connection using a dedicated GenServer. DONE
  2. Subscribe to historical market data. IN PROGRESS
  3. Subscribe to live data. TODO 4. Subscribe to an economic calendar. TODO

    At first, data will mean futures and spot FX data, then stocks, bonds, futures and stock options, etc.

The subsequent step will focus on getting and sending orders and streaming trading account data.

Installation

Ibex will be on Hex.pm once we've finished "first step" goals above.

<!-- {:ibex, "~> 0.1.0"} -->

REFERENCES:

Python -- https://github.com/erdewit/ib_insync/ -- Excellent library, though in Python async / concurrency is a travesty.

TS -- https://github.com/stoqey/ib https://github.com/stoqey/ib/blob/333b7ba3f6851f9fbed02ba06fd55d1315045786/src/core/io/socket.ts#L91

Julia -- https://github.com/lbilli/Jib.jl

DISCLAIMERS: