Skip to content

Commit a96e44e

Browse files
authored
Update README.md
1 parent 80172a1 commit a96e44e

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

README.md

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# InteractiveBrokers-Algo-System
22
This Java/MySQL framework implements the Interactive Brokers API for algorithmic trading. Included are all essential components to support a basic trading execution system: live price feed, handling for IB price quote limits, order tracking system, margin tracking system, handling for order submission and execution, option chain information request, and kill switches. A system based on this framework, with additional custom modules and proprietary strategies is currently being used to profitably trade US equities and equity options
33
- Requires either TWS or IB Gateway (desktop applications provided by IB) and IB Java API 9.71 (API library package). The API scripts initiate a live socket connection to the desktop TWS and IB Gateway application, which routes requests
4-
- Requires US Securities Snapshot and Futures Value Bundle ($10/month), US Equity and Options Add-On Streaming Bundle ($4.95/month) for live price streams. If solely using the framework for executing orders, then these add on costs are not necessary; it is possible to use another data source for live price streams such as IEX, which is free
4+
- Requires US Securities Snapshot and Futures Value Bundle ($10/month), US Equity and Options Add-On Streaming Bundle ($4.95/month) for live price feed. If solely using the framework for executing orders, then these add on costs are not necessary; it is possible to use another data source for live price feeds such as IEX, which is free
55
- It's recommended to simultaneously run price feed and solely reading processes on an IB Gateway paper trading instance (port 4002 in the example) and trade execution/other writing processes on a TWS instance (port 7496 in the example)
66
- API function documentation: http://interactivebrokers.github.io/tws-api/
77
![Flowchart](https://github.com/rediar/InteractiveBrokers-Algo-System/blob/master/IB%20Algo%20Flowchart.png)
@@ -28,25 +28,46 @@ Cash, margin and risk balance:
2828
# Module descriptions
2929

3030
### SimplePriceFeed ###
31-
Read in TickerList.csv - a presaved list of contracts to receive live price streams from. Here, a contract is defined as either a specific option, or stock
31+
Read in TickerList.csv - a presaved list of contracts to receive live price feeds from. Here, a contract is defined as either a specific option, or stock
3232
- TickerList.csv fields: Active (T/F) | symbol | secType | exchange | currency | expiry | strike | right | multiplier
3333
- Output prices to the IBAlgoSystem.price MySQL table
3434

3535
### LargePriceFeed ###
36-
Read in IBAlgoSystem.MasterChainList - a list of options contracts to receive live price streams from
36+
Read in IBAlgoSystem.MasterChainList - a list of options contracts to receive live price feeds from
3737
- The number of entries may exceed IB's feed limit (FEED_LIMIT). In that case, this script divides the entries into smaller batches to submit to IB
3838
- Output prices to IBAlgoSystem.price MySQL table
3939

4040
### FetchOptionsChain ###
41-
Read in TickerList.csv, a presaved list of contracts to receive live price streams from. Here, a contract is defined as either a specific option, or stock
41+
Read in TickerList.csv, a presaved list of contracts to receive live price feeds from. Here, a contract is defined as either a specific option, or stock
4242
- TickerList.csv fields: Active (T/F) | symbol | secType | exchange | currency | expiry | strike | right | multiplier
4343
Read in PennyPilot.csv, a presaved list of Penny Pilot tickers
4444
- Output option chain to IBAlgoSystem.MasterChainList MySQL table
4545

4646
### TradeStrategy ###
47-
Template to implement trade strategies - call price stream, submit order execution requests, manage orders and risk
47+
Template to implement trade strategies - call price feed, submit order execution requests, manage orders and risk
4848
- Output order management to IBAlgoSystem.orderTracking MySQL table
4949
- Output margin management to IBAlgoSystem.margin MySQL table
5050

5151
### KillSwitch ###
5252
Kills all active orders
53+
54+
# Simple walkthrough description
55+
56+
### Receive price feed ###
57+
1. Start an IB Gateway instance on port 4002 (or custom defined port number)
58+
2. Define the contracts to receive stock and/or option price feeds for in TickerList.csv
59+
3. Execute SimplePriceFeed to start price feeds for contracts in TickerList.csv
60+
4. If TickerList.csv contains only stock tickers, execute FetchOptionsChain to generate the option chain for those tickers
61+
5. Execute LargePriceFeed to start price feeds for option chains
62+
6. Restart SimplePriceFeed or LargePriceFeed if problems occur
63+
64+
### Execute trade strategy ###
65+
1. Start a TWS instance on port 7496 (or custom defined port number)
66+
2. Execute TradeStrategy
67+
68+
### Trigger KillSwitch ###
69+
In event of emergency only:
70+
1. Terminate TradeStrategy
71+
2. Execute KillSwitch to remove outstanding orders
72+
73+
Note the KillSwith does not impact SimplePriceFeed or LargePriceFeed (price feed)

0 commit comments

Comments
 (0)