Exclusive 22% OFF All Quantra by QuantInsti Courses for IBridgePy Users Master algorithmic trading from beginner to advanced — Python for trading, machine learning strategies, options trading, and more.
HUI22 Use HUI22 for 22% off
HUI7 Stack HUI7 for an additional 7% off
Browse Courses →

Release Notes

IBridgePy version history and changelog.

v22.3.0 2026-03-09

  • New Feature: order_algo — Support for IBKR Adaptive Algo Orders Added order_algo() to place orders using Interactive Brokers' algorithmic strategies, starting with the Adaptive Algo. Usage: order_algo(symbol('SPY'), 10, algoStrategy='Adaptive', algoParams=[('adaptivePriority', 'Normal')]) Supported priority levels: Urgent, Normal, Patient The Adaptive Algo aims for price improvement by dynamically placing orders between the bid-ask spread rather than hitting the market price directly. It is most effective for securities with wide spreads or lower liquidity.

v22.2.1 2026-02-09

  • Changed: The last row of returned historical data will include the latest price

v22.1.7 2025-10-01

  • Added: The format of time from IB Gateway changed recently and lead to the error of run_me:: err=time data " does not match format '%Y%m%d %H:%M:%S'. IBridgePy start to support the new time format

v22.1.0 2025-06-03

  • Changed: Rename IBridgePy_plus to IBridgePy in jupyter notebook files

v21.3.0 2025-01-02

  • Added: place_combo_order starts to support outsideRth

v21.2.0 2024-12-18

  • Found a rare case that the nextValidId callback from IBKR is not the latest valid id. A solution is added in IBridgePy to address this issue.

v21.1.4 2024-08-23

  • Fixed the bug of "invalid literal for int() for base 10" when placing orders.

v21.1.2 2024-08-01

  • Fixed the bug of "order.filledTime in backtester throws errors"

v21.1.0 2024-07-13

  • Added new features about filtering options: filter_options_by_closest_strike, filter_options_by_strike_range, filter_options_by_expiry_range, filter_options_by_closest_expiry
  • Fixed the bug of "missing aveFillPrice on orders in backtester"

v21.0.2 2024-07-05

  • Fixed the bug of "cancelling order do not work in Backtester"
  • Added error messages when checking expiry of FUT and OPT

v21.0.0 2024-06-24

  • Deprecated the data provider of IBRIDGEPY.
  • Added bactesting by directly using Yahoo Finance data
  • Fixed the issue of "always get 0 when getting position for some options"
  • Changed the log info when IBridgePy reconnects.

v20.5.1 2024-05-23

  • Added the feature of adding ".py" to the file name if the users forget to do so.
  • Fixed the bug of "searching security_info.csv"

v20.4.1 2024-05-21

  • Deprecated security_info.csv. All symbol related information goes to IBRK contract database.
  • Fixed the bug of show_real_time_price when inputing high, low, open and close
  • Fixed the bug of auto-connection during IBridgePy_plus

v20.3.1 2024-05-03

  • Added the feature of automatically reconnection to TWS or Gateway after daily restart or shutdown. YouTube tutorial is here: https://youtu.be/OHrVd–i3yg

v20.2.1 2024-03-15

  • Added the feature of placing a order type of Market On Open (MOO)

v20.1.2 2024-01-10

  • Added the feature of handling negative values by roundToMinTick and the API document is updated.

v20.1.0 2023-12-15

  • Added tradingClass to superSymbol to solve the issue of "The contract description specified for SPX is ambiguous". Check out this tutorial: https://youtu.be/pCDLfLL0WRo

v20.0.2 2023-12-04

  • Fixed the issue of IBridgePyInDocker
  • Fixed the issue of "errors when run cancelOrder"

v20.0.1 2023-11-29

  • To solve the issue of "AttributeError: 'DatetimeIndex' object has no attribute 'union_many'.", we have decided to deprecate the old market calendar system. The new calendar system only supports NYSE but the users can create their own market calendar easily. The root cause of the issue is that the latest release note of pandas does not support union_many anymore. As the result of V 20.0.1, the user can use any release note of pandas. nth_trading_day_of_month and nth_trading_day_of_week are deprecated from V 20.0.1

v19.2.4 2023-11-17

  • Fixed the issue of "type object is not subscriptable."

v19.2.1 2023-11-09

  • Added the feature of "placing combo orders for options traders"

v19.1.0 2023-10-02

  • Added the feature of "supporting followUp in the legacy data.history so that the user can intentionally ignore the error during retrieving historical data"

v19.0.8 2023-09-25

  • Fixed the issue of "IBridgePy cannot get connected to IB server but there is no error messages." The solution is to search both of localhost and 127.0.0.1 because TWS and Gateway may set up differently.
  • Fixed the error of "9003 Expected order status has not been confirmed by the broker"
  • Adjusted a few log level
  • Fixed the issue of "Need to configure trader by calling trader.setAuthedAcctCode"

v19.0.6 2023-09-22

  • Updated IBridgePy to work with IB Gateway 10.19. The major change is to change the type of the number of shares from int to decimal, which is required by IB API 10.19 to accommodate the feature of fractional shares. If you see the error of "Your API release note does not support fractional size rules. Please upgrade to a minimum release note 163″, this release note of IBridgePy is the solution.

v18.5.1 2023-07-10

  • Added the feature of getting 5 second real time bar, a feature related to Interactive Brokers(IBKR) only. See https://ibridgepy.com/documentation/ for more details

v18.3.1 2023-04-24

  • Added the feature that the user can selectively ignore a list of error messages. We strongly recommend users to address the errors instead of ignoring them but it is a new feature that the users can leverage.

v18.2.1 2023-01-27

  • Enabled a feature of backtesting using second bar data

v18.1.18 2023-01-12

  • Added the feature to handle a new warning from TWS(IB Gateway does not have this new warning) : Warning: Your API release note does not support fractional share size rules. Please upgrade to a minimum release note 163

v18.1.1 2022-06-19

  • IBridgePyInDocker is fully refactored and tested.
  • IBridgePyInCloud is almost ready to roll out.

v17.1.1 2022-05-25

  • Added waitForFeedbackInSeconds to get_scanner_results.
  • Fixed the issue "get_historical_data.py show errors with TD"

v17.0.2 2022-04-29

  • Fixed the issue of "negative price in updateAccountValue".
  • Fixed the issue of "wrong datetime index when get hist data".

v17.0.0 2022-04-26

  • Major refactoring for backtesting system.
  • Fixed the issue of "losing heartbeat under backtesting mode".
  • Fixed the issue of "parsing errors when importing csv file to backtesting system".
  • Added the feature of simulating transaction commission.
  • Updated a few error messages to easier debug.
  • Changed: balanceLog is updated immediately after a cycle of process messages, instead of writing balanceLog at the beginning of a simulation day.

v16.9.11 2022-03-14

  • Improved the feature for multiple account users by specifying account summary tag. in settings.py. The tutorial is coming.

v16.9.7 2022-01-13

  • Improved the feature of uploading local file to the backtester. IBridgePy is able to handle hist files with different timezones in different rows
  • Fixed the bug about "EXIT, there is no reqId" when get_option_info, for example, greeks.

v16.9.4 2021-12-13

  • Fixed the bug about "status=completedAsk when show_real_time_price"

v16.9.3 2021-12-06

  • Fixed the bug when handling errorCode = 200

v16.9.1 2021-10-25

  • Fixed the bug of "get_datetime() does not match the server time on broker side".
  • Added orderRef to order functions. see details in API doc.

v16.8.4 2021-08-17

  • Fixed the bug of "data.current and show_real_time_price do not release note"

v16.8.3 2021-08-12

  • Fixed the bug of "get_datetime() does not match with time.time()"
  • Added "followUp" to show_real_time_price and show_real_time_size.

v16.8.2 2021-08-09

  • Added waitForFeedbackInSeconds to get_contract_details so that user can choose to wait for server responses for longer time.

v16.8.1 2021-08-05

  • When IBridgePy cannot get primaryExchange, use security.exchange if it is available. It is a user friendly improvement.
  • Added waitForFeedbackInSeconds to get_option_info becasue it may take a long time to get whole option chains from IB server.
  • Added followUp=True to request_historical_data so that user can choose not to follow up when IB server is down.
  • Fixed the bug of "cannot find reqId after cancelMktReq.
  • Fixed the bug of "get_datetime is not accurate within handle_data

v16.7.1 2021-08-03

  • Refactored get_option_greek to get_option_info. More tutorials are coming.
  • Added the features of getting option open interests. More tutorials are coming.
  • Fixed the bug of "closest_expiry and closest_strike when the length is not correct"
  • Added the feature of choose_expiry_range in IbridgpyTools.py

v16.6.2 2021-07-20

  • Updated the hint when IB server did not response at all.
  • Fixed the bug "error message reqId does not match during request_historical data"
  • Added retry mechanism to simpleLoger to solve "Permission denied error when writing the TraderLog.txt file"

v16.6.1 2021-07-14

  • Added a new feature of request historical data from Yahoo Finance. The tutorial is coming.
  • Updated a few demos.
  • Added a few examples of running IBridgePy in Jupyter notebook.

v16.5.4 2021-07-06

  • Optimized dataProvider_IBridgePy

v16.5.3 2021-06-22

  • Optimized internal implementations

v16.5.2 2021-06-11

  • Enabled standard debugger in IDE, such as PyCharm.
  • Refactored the logic related to OCA in backtester.
  • Added sorting the hist dataframes that are uploaded by users for backtesting. The oldest timestamp is the 1st row and the latest timestamp is the last row.
  • Fixed the format issue in order_status_monitor.

v16.4.1 2021-06-02

  • Added new features in Backtester. It supports backtesting on stoploss and takeprofit orders.
  • Added new features in IBridgePy_plus by removing "duplicated order id" error message. settings.py -> BROKER_CLIENT -> 'IB_CLIENT' -> 'syncOrderId': True

v16.2.3 2021-05-18

  • Fixed the bug of "duplicate orderid when place_order_with_stoploss_takeprofit"

v16.2.2 2021-05-12

  • Fixed a few bugs in backtesting system.
  • Fixed the bug of "KeyError: 'S'"

v16.2.1 2021-05-11

  • Added get_option_greek to IBridgePy_plus
  • Added get_scanner_result to IBridgePy_plus

v16.1.4 2021-05-02

  • Fixed the bug of "self.log is None in ./Config/config_defs.py"
  • Fixed the typo related SPY_1day_55D.csv
  • Enabled standard debugger in IDE like PyCharm.
  • Fixed the bug of "duplicated orderId when running multiple strategies at same time"

v16.1.3 2021-04-26

  • Added historical data to Input folder so that users can backtest the sample strategy of demo_buy_low_sell_high.py
  • Simplified TEST_ME sample files.
  • Fixed the bug of "get_all_order and get_order failed in IBridgePy_plus when placing orders"

v16.1.1 2021-04-17

  • From IB TW 983+, a few new error codes are added and they are not backward compatible. 10268 = The EtradeOnly order attribute is not supported and 10269 = The firmQuoteOnly order attribute is not supported. This is an urgent fix to accommodate these changes.

v15.1.8 2021-04-12

  • Updated a few URLs
  • Refactored backtester implementations

v15.1.7 2021-03-29

  • Updated a few error messages.

v15.1.6 2021-03-15

  • Added "lastFillPrice" to the Order object. See documentation for more details. A section of Order is added.
  • Fixed a bug in backtester when random numbers are used.

v15.1.5 2021-03-01

  • Added port 4002 to the auto-search port list
  • Refactored IbridgePyOrder class to accommodate an IB issue of missing orderStatus callback.

v15.1.4 2021-02-16

  • Enforced order.totalQuantity to be an Integer.

v15.1.3 2021-02-06

  • Fixed the issue on Ubuntu plain Python 3.7
  • Changed errorCode 2109 to non critical
  • Enforced port number and clientId to Integer

v15.1.2 2021-02-02

  • Fixed the issue of "using Miniconda on Windows and stopped on the new system check."

v15.1.1 2021-01-31

  • New feature: Search IB TWS/Gateway port numbers of 4001, 7496 and 7497 automatically so that user do not need to set it anymore. YouTube tutorial is coming.
  • New feature: Enable high frequency trading(HFT), handle_date( ) can be invoked many times within a second. YouTube tutorial is coming.
  • New feature: Print out user's Python release note and notify if it does not match with IBridgePy release note. YouTube tutorial is coming.
  • New feature: Add backtesting initial portfolio value to config system so that user can change it easily. YouTube tutorial is coming.
  • Improvements: Backtest is much faster than previous versions because the log is in memory during backtesting. YouTube tutorial is coming.

v14.1.2 2021-01-19

  • Fixed the bug of "cannot place orders in IBridgePy_plus"

v14.1.1 2021-01-18

  • Added a new Premium feature of automatically reconnecting IBridgePy to IB TWS/Gateway after they restart/shut down without user intervention. YouTube tutorial is coming.
  • Added a few imports to sample codes to reduce user's work
  • Fixed the warning about "timezone-aware DatetimeIndex" on Python 3.9
  • Started to support Python 3.9 on Mac. YouTube tutorial is coming.https://youtu.be/MCZcmxqDL94

v13.5.5 2021-01-03

  • Fixed the bug in TD and Robinhood when the portfolio has options.
  • Fixed the bug when backtesting FOREX.
  • Added backtest while 1 minute bars are simulated by daily bars. YouTube tutorial is coming.
  • Added more explanations to sample TEST_ME files

v13.4.2 2020-12-29

  • Fixed the bug in IBridgePy_plus tutorial jupyter notebook due to new OrderTypes.

v13.4.1 2020-12-28

  • Added the features of placing MarketOnCloseOrder
  • Fixed the bug of "duplicate orderId" or "cannot modify a filled order" in IBridgePy_plus
  • Added the feature of "isEarlyClose" to check if today is an early close trading day in NYSE

v13.1.3 2020-12-23

  • Fixed the bugs in tutorial jupyter notebook files

v13.1.2 2020-12-22

  • Added a new feature called IBridgePy_plus which allow users to integrate IBridgePy with other python packages by "import" and creating objects. See this tutorial: https://youtu.be/gEtkpyOm4V8
  • IBridgePy Backtester can ingest csv files with datetime as index, not only epoch seconds.
  • Added a few hist converter in /tools folder. See this tutorial: https://youtu.be/hYL6SYgy7wE
  • Added a tutorials/ folder including tutorials in jupyter notebook
  • Fixed the bug of "data.current() return None"

v12.3.5 2020-12-20

  • ErrorCode of 2137("The closing order quantity is greater than your current position.") is not a critical error anymore so that it is a warning and the code will not terminate due to this error.
  • Added more error messages to users about backtester.
  • Added a tutorials folder to hold tutorial files.

v12.3.3

  • Fixed the bug of data.current(‘volume’) always return -1
  • Updated sharpe ratio sample code

v12.3.1

  • HistIngestPlan is not required for backtesting using TEST_ME.py but it is still recommended for faster backtesting. YouTube tutorial is coming.
  • Added an example of portfolio_sharpe_ratio.py to demo how to calculate sharpe ratio based on the balanceLog generated during backtesting. YouTube tutorial is https://youtu.be/4xTHdzAMhcI.

v12.2.8

  • Fixed the bug of “missing open price from TD when data.current”

v12.2.7

  • Fixed the bug of handling errorCode=162
  • Fixed the bug of “ibpyOrderId is None” when placing orders to TD

v12.2.5

  • Switched a few “exit” to raising exceptions of CustomError

v12.2.4

  • Fixed the bug of ‘no exist is defined in BrokerClient_IB’

v12.2.3

  • Fixed the bug when handling bracket orders from TD

v12.2.2

  • Fixed the bug of parentTrader.log.
  • Replaced “is not” by “!=” for Python 3.8 compatibility

v12.2.1

  • Added a new feature of get_ibpy_expiry_in_days( ) to know how many days IBridgePy will expire in.
  • Added a new feature of get_TD_access_token_expiry_in_days( ) to know how many days TD access token will expire in.
  • Added a new feature of get_new_TD_refresh_token( ) to get a new TD refresh token by code

v12.1.2

  • Fixed the bug of missing CustomError.py

v12.1.1

  • Switched to “raise Exception” instead of terminations. Check out YouTube tutorial for more details.

v11.1.5

  • Fixed the bug of missing setAsDataProviderService
  • Refactored a few clients

v11.1.4

  • Fixed the bug of using superSymbol in test_me.py

v11.1.3

  • Added the features of ingesting data from 3rd party data providers, YouTube tutorial is coming.
  • Added the features of interacting with multiple brokers in one code strategy, YouTube tutorial is coming.
  • Fixed the bug of handling cash_equivalent for TD Ameritrade
  • Fixed the bug of missing brokerClient_factory

v10.1.4

  • Fixed the issue on Mac_Python3.7 for ImportError: dlopen

v10.1.3

  • Forced to the string size of expiry of FUT OPT to 8 characters because users input 6 characters and IB callback contract is 8 characters, which causes many troubles.
  • Updated print_decision when decision is empty.
  • Fixed bugs in rebalance

v10.1.2

  • Removed portfolio.cash_fro_trade and user should check availableFunds before placing order. If not enough fund for trading, brokers will return error codes.
  • Added saveToFile=True to histIngestionPlan so that the fetched historical data will be saved to IBridgePy/Input/ folder as csv files and user can load them directly to backtest later. YouTube tutorial is coming.

v9.5.4

  • Fixed the bug of “short positions on TD does not display correctly”
  • Updated the feature of “raise RuntimeExceptions when TD does not respond a request of real time prices after retry 3 times”

v9.5.3

  • Fixed the bug of AttributeError: ‘float’ object has no attribute ‘portfolio_value’
  • Added IBridgePy for Windows Anaconda Python 3.8

v9.5.2

  • Updated the parameter of send_email to remove confusions.

v9.5.1

  • Added a new feature of send_email so that users can send out emails easily in IBridgePy

v9.4.1

  • Added a new function isTradingDay to check if today is a tradingDay.
  • Updated the error message when requesting quote from TD
  • Updated rebalance with a buyAdvantage and a sellAdvantage

v9.3.4

  • Fixed the bug of “TypeError: can only concatenate str (not “NoneType”) to str””

v9.3.3

  • Fixed the bug of “request_historical_data to TD cannot specify endDate”
  • Added more explanations to examples.

v9.3.2

  • Fixed the bug of “request_historical_data to TD cannot specify endDate”
  • Fixed the bug of “show_account_info returns string instead of float when float is more meaningful

v9.3.1

  • Added features of show_account_info to show more values, such as buyingPower
  • Updated the logic of getting TotalCashValue from TD Ameritrade

v9.2.1

  • Added a method of show_timestamp to know how fresh the prices retrieved from IB server are.
  • Changed exit to throw exceptions when request_historical_data fail, which allows users to decide what to do as the next step.
  • Fixed the bug of UnicodeDecoder in Win Anaconda 3.7

v9.1.4

  • Added more info about YouTube tutorials
  • Fixed a python 3.x compatibility bug in get_contract_details

v9.1.3

  • Fixed the bug in TD client

v9.1.2

  • Added more info about connection to TD Ameritrade

v9.1.1

  • Released the features of trading with TD Ameritrade
  • Fixed a few minor bugs

v8.2.1

  • Added more explanations
  • Added a feature to check the expiration of TD Ameritrade client refresh token
  • Added close_all_positions_LMT internally

v8.1.6

  • Fixed the bug in “rebalance account”

v8.1.5

  • Added more explanations when request_historical_data fails

v8.1.4

  • Added more explanations and hints when failures happen during backtester loading hist
  • Fixed the bug of “volume=-1 in request_historical_data when TEST_ME.py”
  • Added more explanations when request_historical_data fails
  • Fixed minor bugs in public examples

v8.1.3

  • Added more explanations when failures happen during backtester loading hist
  • Add more info when requesting hist data failure due to connectivity issues.

v8.1.2

  • Fixed the bug of “cannot trade Forex”

v8.1.1

  • Replaced pandas.Panel by pandas.DataFrame MultiIndex in request_historical_data so that the warning of pandas.Panel is deprecated is solved.
  • Minimized the usage of security_info.csv. No need to add securities into security_info.csv for Premium version.
  • Added the feature of schedule_function when traderRunMode = REGULAR
  • Fixed the potential issue of float precision when working with TD Ameritrade

v7.1.3

  • Fixed the bug of “hist cannot ingest in TEST_ME.py”

v7.1.2

  • Fixed the bug of “record( ) is not missing”
  • Fixed the bug of “No module named IBridgePy.transformers”
  • Fixed the bug of “sudo_run_like_quantopian does not run as expected”
  • Minimized the issue of “client ID is occupied”

v7.1.1

  • Changed orderId from integer to string to accommodate Robinhood and TD Ameritrade because their orderId is string. The rule of converting IB orderId is to add “ib” in front of integer orderId. For example, the original IB orderId is int 99 and the new string orderId is “ib99”.
  • Added a new function of “get_all_open_orders”

v6.1.3

  • Fixed the bug of “date_rules is not defined”

v6.1.2

  • Fixed the bug of “ModuleNotFoundError of base_settings” on Windows

v6.1.1

  • Updated to a new configuration system
  • Packaged IBridgePy entrance into a function interface so that it is much easier to integrate IBridgePy with other applications. Refer to run_me(fileName, globals()) in RUN_ME.py
  • Fixed the bug of “wrong datetime display format in request_historical_data”

v5.8.3

  • Updated a few comments

v5.8.2

  • Added a new feature of “specify the timezoneOfReturn when request_historical_data”
  • Fixed the bug of “calculated_startTimePosition”
  • Fixed the bug of “cannot handle goBack=6 M barSize=15 mins”
  • Fixed the bug of “TraderExtendedResources_deprecated error“

v5.8.1

  • Added the feature of “do not follow up on the order status immediately so that multiple orders can be placed quickly”

v5.7.6

  • Fixed the bug of “place_combination_orders return None as orderId”
  • Fixed the bug of STP_LMT orderType
  • Refactored a few methods

v5.7.5

  • Fixed the bug of “timestamp is not correct” in backtester using local file

v5.7.4

  • Fixed the bug in get_open_orders
  • Updated the API document of premium features, get_contract_details, get_scanner_results and get_option_greeks

v5.7.3

  • Fixed the bug in get_open_orders
  • Added features of “designating ocaGroup when placing order_with_stoploss_takeprofit
  • Added feature of “modifying ocaGroup of an order”
  • Updated the API document with “get_all_orders” and “get_all_positions”

v5.7.2

  • Fixed a bug in Multi Acct version, related to get_order failures of KeyError
  • Added a few logs to easier debug

v5.7.1

  • Started to support orderType of STP LMT

v5.6.4

  • Refactored a few methods

v5.6.3

  • Silenced error messages about data farm broken.
  • Fixed the bug of “timezone in get_datetime”
  • Fixed the bug of “returning None as orderId in order_with_stoploss_takeprofit”

v5.6.1

  • Trading with Robinhood is rolled out!

v5.5.15

  • Refactored for Robinhood integration

v5.5.14

  • Fixed the bug of ” errorCode=2157 errorMessage=Sec-def data farm connection is broken : secdefnj “. This new errorCode was introduced by IB Gateway new version 977.3c
  • Added Robinhood services

v5.5.13

  • Fixed the bug of ” errorCode=2157 errorMessage=Sec-def data farm connection is broken : secdefnj “. This new errorCode was introduced by IB Gateway new version 977.3c

v5.5.12

  • Fixed the bug of ” errorCode=2158 errorMessage=Sec-def data farm connection is OK : secdefnj “. This new errorCode was introduced by IB Gateway new version 977.3c

v5.5.11

  • Fixed the bug of “missing BrokerService_Common”

v5.5.10

  • Fixed the bug of “last_option_computation = None”

v5.5.9

  • Fixed the bug of “cannot handle tickType=last_option_computation”

v5.5.8

  • Prepared for Robinhood integration

v5.5.7

  • Examples of IBridgePy managing multiple accounts are added.
  • Fixed the bug of “Local_file.py is missing”

v5.5.6

  • Fixed a bug of “superSymbol in TEST_ME.py is missing”
  • Prepared for integration with Robinhood

v5.5.5

  • Fixed a bug related to a secType of CMDTY

v5.5.4

  • Prepared to integrate with Robinhood

v5.5.3

  • Fixed the bug of “crash after show_real_time_price when the price”

v5.5.2

  • Fixed the bug of “context.portfolio.position of IOPT with localSymbol always return 0”
  • Added the validation of “type of strike == float for SuperSymbol”, which also fixed the issue of incorrect positions.

v5.4.1

  • Handle orderId = 0
  • Add transactionLog and balanceLog in backtesting mode

v5.3.1

  • Added the feature of placing order with waitForFeedbackInSeconds

v5.2.3

  • Fixed the bug of “OrderId x that needs to be cancelled is not found”

v5.2.2

  • Fixed the bug of silence exit when orders exist

v5.2.1

  • Added the feature of setting waitForFeedbackInSeconds for request_historical_data
  • Fixed the bug of existing orders

v5.1.1

  • Added the feature of “show_real_time_size”
  • Changed the serialization method of Security Objects to solve the issues of “positions[symbol].amount = 0”

v5.0.8

  • Added features of “do not exit the program due to errors issued when the connection to IB server is lost”.
  • Refactored the mechanism of requesting data from IB server to be prepared to add more features.

v5.0.7

  • Fixed the bug of logLevel = ‘ERROR’
  • Added error message for “global name ‘startTimePosition’ is not defined”

v5.0.6

  • Prepared to integrate with Robinhood

v5.0.5

  • Fixed the bug of “unharmful print”

v5.0.4

  • Fixed the bug of “showTimeZone not working”
  • Fixed the bug of “unhashable type: Security”

v5.0.3

  • Fixed the bug of “schedule_function week_start does not work”.
  • Fixed the bug of “showTimeZone does not take effect”
  • Add equality check for Security objects.

v5.0.2

  • IBridgePy Backtester is available in Windows versions.
  • IBridgePy started to support Anaconda python 3.7 on Windows

v5.0.1

  • IBridgePy Backtester is released in Mac version. The documentation will be published soon. Other version will come soon as well.

v4.4.2

  • Refactored to support IBridgePy back tester.

v4.4.1

  • Added the feature of specifying tif when placing orders with stoploss and takeprofit.

v4.3.3

  • Refactored a few to build IBridgePy back tester.

v4.3.2

  • Separated sysTimeZone and showTimeZone
  • Simulated updateAccountValue after an execDetails. Refer to this webpage.
  • Fixed the bug of portfolio.returns

v4.3.1

  • Fixed the bug of “cannot handle dataProviderName”
  • Added the feature of orderType of TrailStopOrder

v4.2.14

  • Fixed the bug of cancel_order( orderId or order )
  • Fixed the bug of backtester

v4.2.13

  • Fixed the bug of before_trading_start running on weekends.

v4.2.12

  • Implemented count_positions

v4.2.11

  • Fixed the bug of “the return type of get_open_orders are not as same as Quantopian’s function”
  • Changed the display message of orders in orderStatusBook

v4.2.9

  • Added cost_basis to Position object to have backward compatibility to V 3.2.4
  • Fixed sample codes

v4.2.8

  • Fixed the bug of “processMessages() missing 1 required positional argument: ‘timeNow’”

v4.2.7

  • Made Changes to prepare IBridgePy backtester
  • Fixed the bug of “exit is not defined”

v4.2.6

  • Made Changes to prepare IBridgePy backtester

v4.2.5

  • Fixed the bug of “for security in context.portfolio.positions”
  • Fixed the bug of “returned hist ‘s index is not datetime”

v4.2.4

  • Fixed the bug of “print context.portfolio.positions returns empty dict even if a position exists”

v4.2.3

  • Fixed a deployment bug

v4.2.2

  • create_order and place_combination_orders are supported.

v4.2.1

  • Fixed a minor bug
  • Solved the backward compatibility issues: the 1st time of running handle_data with repBarFreq = xx is set at 00 seconds. For example, if repBarFreq = 5, the time of running handle_data will be 0, 5, 10, 15, 20, 25, …55.

v4.2.0

  • Support the following code “for stock, position in context.portfolio.positions.items():”

v4.1.1

  • Fixed the bug of “context.portfolio.positions[symbol(‘AAPL’)]
  • Fixed the bug of “schedule_functions are not working”
  • Fixed the bug of “index of data.history is not in the type of datetime”
  • Fixed the bug of “showTimeZone is not working”
  • Fixed the bug of “TrailStopLimitOrder is not defined”
  • Fixed the bug of “modify_order is not working”

v4.1.0

  • Support “context.portfolio.position_values”, “context.portfolio.portfolio_values”, “context.portfolio.position_cash” and “context.portfolio.positions”
  • Fixed the bug related to “Unable connect as the client id is already in use”
  • Fixed the bug related to “modify orders”

v4.0.3

  • Fixed a bug related to Python 3.x compatibility issue
  • Fixed a bug related to schedule_functions

v4.0.2

  • Fixed a bug related to Python 3.x compatibility issue

v4.0.1

  • New backend IBridgePy engine which will power up back-tester later
  • A few API signatures have been optimized. More details will be updated in https://ibridgepy.com//ibridgepy-documentation/
  • Please let us know if you have any questions about IBridgePy 4 and we will try our best to fix them as soon as possible.

v3.2.4

  • Minor release note related to TrailStopLimitOrder
  • Fixed the bug of placing hidden orders

v3.2.2

  • Fixed the bug of Trailing Stop Limit Order

v3.2.1

  • Fixed the bug of “cannot get volume/size of securities”
  • Fixed the bug of “placing hidden order to ISLAND”

v3.1.10

  • Fixed the bug of “real time price is not tree real time in runMode of run_like_quantopian”

v3.1.9

  • Modified read_in_hashcode
  • Removed the error message when open price is not available. User need to check by themselves.

v3.1.6

  • Fixed a bug

v3.1.4

  • Added a new feature of placing hidden order at ISLAND
  • Fixed a bug of consuming too many resources

v3.1.2

  • Fixed a bug

v3.1.1

  • Added a new feature in superSymbol to defined “localSymbol”

v3.0.14

  • Add a new feature of “modify_order”

v3.0.11

  • Fixed the bug of “STK BRK B is missing”

v3.0.6

  • Fixed the bug of “real time price does not release note”

v3.0.5

  • Fixed the bug related to barSize in data.history
  • Fixed the bug of “repBarFreq does not work”
  • Fixed the bug of waitForFeedbackInSeconds

v3.0.2

  • New IBridgePy engine
  • Added trailingPercent to TrailStopLimitOrder
  • Fixed the bug related to secType of “BOND”

v2.2.12

  • Added more examples

v2.2.11

  • Fixed the bug of “No security definition has been found for the request” because of holding positions

v2.2.10

  • More examples are added.
  • Fixed the bug related to premium functions.

v2.2.9

  • Fixed the bug of “scheduled functions do not run as scheduled”

v2.2.8

  • Fixed the following bug in Win_Anaconda36_64
  • import pandas_market_calendars as mcal ModuleNotFoundError: No module named ‘pandas_market_calendars’

v2.2.7

  • Fixed the following bug
  • import pandas_market_calendars as mcal ModuleNotFoundError: No module named ‘pandas_market_calendars’ 2. Added Mac_Anaconda27_64 version.

v2.2.6

  • Fixed a bug related to request_historical_data when disconnection happens
  • Added a new feature. User can choose a market calendar. handle_data will run according to the chosen market calendar when runMode = ‘run_like_quantopian’

v2.2.5

  • Fixed the bug of “ask_price = na”

v2.2.4

  • Fixed the bug of “missing self.setHashConfig” in IBrigePy_python2_64

v2.2.3

  • Fixed a typo

v2.2.2

  • Fixed a few bugs in Windows Python 3.6 for incompatibility issues.

v2.2.1

  • The default time-in-force for LimitOrder and StopOrder is to cancel the open orders by the end of the day. A feature is added to allow traders to designate time-in-force. See details at https://ibridgepy.com//ibridgepy-documentation/#order8212_similar_as_order_at_Quantopian
  • place_order_with_stoploss, place_order_with_stoploss_takeprofit and place_order_with_takeprofit are added to make placing orders much easier than before.
  • Fixed a bug related to context.portfolio.position[a_security] returning 0 shares when the position is not 0.

v2.1.2

  • Add a trader property of runScheduledFunctonBeforeHandleData. The scheduled_functions will run before handle_data runs when runScheduledFunctonBeforeHandleData = True. The default setting of Quantopian is to run handle_data before all scheduled functions.

v2.1.1

  • Improved the performance of searching securities internally.
  • Add a new function of place_order_with_SL_TP

v2.0.1

  • Fixed the bug “No security definition when a position was in the account”
  • Change the version number to semantic version 2.0.1