Improvements
- Current and total transactions available from client
- blotter.strategy_selection_orders func added (speed improvement on exposure calc)
Bug Fixes
- Refactor of client transaction control to correctly apply the 5000 limit
Improvements
- Major refactor to order placement using Transaction class to allow user control over order placement
- Trading controls executed on place rather than OrderPackage level (Breaking change to controls)
- strategy order placement to be depreciated (Breaking change from version 1.18.0)
- OrderPackage no longer processed through the queue (quicker tick to trade)
- Error correctly raised on duplicate place calls
- Execution worker count bumped
Bug Fixes
- Minor fix when combining data and market stream strategies
Improvements
- Blotter strategy orders added for faster lookup
- Strategy name hash cached
- Minor selection_exposure optimisations
- Simulated optimisations
Improvements
- Various optimisations on pending_packages and low level listener updates
- Cache stream_id when backtesting
- Always run integrations tests (now possible with faster backtesting from bflw 2.12.0)
Improvements
- bflw changes / further listener optimisations
Libraries
- betfairlightweight upgraded to 2.12.0
Improvements
- Restrict catalogue requests to market version update
Bug Fixes
- #192 correctly lapse limit orders
Libraries
- betfairlightweight upgraded to 2.11.2
Bug Fixes
- Correctly handle runner removal / order void for LimitOnClose/MarketOnClose orders
Improvements
- Order execution args added on place/cancel/update/replace
- License update
- Example update (@lunswor)
Bug Fixes
- #358 dynamic keep alive (based on trading client)
Libraries
- py3.5 removed from setup.py
Improvements
- #356 Jupyter logging control added (POC) with info improvements
- #344 lookup cache added and info optimisations
- #327 correctly return orderStatus
- Middleware optimisation by only processing updated runners
- Minor test improvements
Libraries
- betfairlightweight upgraded to 2.11.1
Improvements
- Updates for bflw 2.11.0
- logging improved on orphan orders
Bug Fixes
- #347 incorrect adjustment factor (sub 1.01)
Libraries
- betfairlightweight upgraded to 2.11.0
Improvements
- Backtest market catalogue middleware example (@lunswor)
- #344 Initial work on improving calls when subscribed to 5k+ markets
Bug Fixes
- #342 market/limit on close order size remaining bug
Improvements
- 'on_process' function optimised
Libraries
- betfairlightweight upgraded to 2.10.2
Improvements
- Flaky flaky integration tests
Bug Fixes
- Missing 'on_process' function (now subclassed)
Bug Fixes
- Revert removal of add_stream (removed by accident)
Improvements
- Historic stream cleanup for bflw 2.10.1
- Adding logging of order validation
Libraries
- betfairlightweight upgraded to 2.10.1
Improvements
- Config event added and processed on start
Bug Fixes
- #320 prevent market on close limit order when below min bsp liability
Improvements
- Minor bug on initial init with calculate_traded func
Improvements
- Refactor on calculate_traded func (15% speed increase)
Bug Fixes
- Refactoring create_order_from_current, so that it is not dependent on the '-' separator (@jsphon)
Improvements
- Docs cleanup
Bug Fixes
- #318 process customer order ref
- Rounding on order properties
Improvements
- #310 typing update and bool return added on stream
- add min_bet_validation flag to prevent control checking min size
Bug Fixes
- filters out violated orders from being used to calculate the selection exposure (@lunswor)
- handle simulated cancel when size reduction is larger than size remaining
- pass correct size into create replace order based on api response
- #314 Calculates size_remaining from size and size_matched when not set from placeResponse
Improvements
- size reduction bug
Improvements
- _process_cleared_orders called on market closure when backtesting / paper trading
- size reduction handling added to simulated execution on cancel
- Add py3.9 actions test
Libraries
- betfairlightweight upgraded to 2.10.0 (exchange stream api release 10/11/20)
Improvements
- #297 add violation msg to order on violation
- Graceful worker shutdown
- Terminate worker example added
Libraries
- betfairlightweight upgraded to 2.9.2
- python-json-logger upgraded to 2.0.1
Improvements
- Prevent MarketBook latency logging when update is from a snap
Bug Fixes
- #291 Bug in calculated_unmatched_exposure func
Libraries
- betfairlightweight upgraded to 2.9.0 (#248 memory leak)
Improvements
- Updates the pricerecorder example method parameters (@lunswor)
- #248 Remove runner_context from strategy on market remove
- #287 order separator (jsphon)
Improvements
- #270 strategy exposure improvements on trading control
Bug Fixes
- Handle unhandled exceptions in execution
- Replace now fixed (regression on removal of order_package.market
- Backtest process orders now called before strategy calls impacts backtesting profit
Libraries
- python-json-logger upgraded to 2.0.0
Bug Fixes
- Missing book / bet_delay in live fix
Bug Fixes
- #248 completely remove circular reference to market->blotter
- Correct market closure when recording data (raw)
Bug Fixes
- #275 Laying Limit Orders, Persistence Type MARKET_ON_CLOSE (@jsphon)
- PR added to actions
Improvements
- #269 latency warning added
Bug Fixes
- #248 addition of weakref to try and break circular reference (@synapticarbors) + deletion of each event
Libraries
- betfairlightweight upgraded to 2.8.0 (orjson)
- black updated to 20.8b1
Improvements
- Minor refactor and test improvements on FlumineBacktest
- Tennis/inplayservice worker example added
Bug Fixes
- Validates runner is active on placeOrder when simulating (@lunswor)
- Complete.trade moved to when order or trade status updates rather than process.py, previously it was missing any orders that violated when no other orders active
Improvements
- #187 strategy and trade runner context additions
Bug Fixes
- Handling for SP orders on startup
- Bug fix on client control max orders when backtesting
Improvements
- invested migrated to executable_orders on RunnerContext *breaking change
- Use MarketCatalogue where available for market descriptions
- Create session added, sessions closed and deleted if stale for 200s or more
Bug Fixes
- Limit process to limit orders to prevent SP orders from being completed when not + test bug fix
Bug Fixes
- Prevent closed markets being removed when paper trading
- Fix missing MarketBook from market (closes #FLUMINE-PROD-EE)
Bug Fixes
- Prevent closed markets being removed when backtesting
- Adds check to check removal_adjustment_factor is not None when processing runner removal (@lunswor)
Improvements
- updates for bflw 2.7.2
Libraries
- betfairlightweight upgraded to 2.7.2
Bug Fixes
- Handle missing id in raw data (race stream)
- Handle no market passed to market recorder (race stream)
Improvements
- _process_raw_data refactored to create market objects and call market.closed_market on closure
Bug Fixes
- Docs typo (thanks @petercoles)
Libraries
- betfairlightweight upgraded to 2.7.1
Bug Fixes
- Add middleware moved to init, Simulated needs to be the first middleware
Improvements
- #180 client paper trade now implemented
- #193 initial work on multi client implementation
- #192 simulation improvements with handling on runner removal
Bug Fixes
- Move remove_markets logic to process_closed_markets (previously not called if no orders)
- Travis remove py3.5
Improvements
- update_market_notes refactor and move to utils to make patching easier
Bug Fixes
- Market.closed now updated when reopened + logging improvements
Improvements
- #184 package retry on error (limited to 3 with back-off)
- requests.Session now closed and deleted
Improvements
- #201 requests session kept and reused to reduce latency
- Middleware add/remove market functions added and integrated into Simulated
- Logging improvements
Libraries
- betfairlightweight upgraded to 2.6.0
Improvements
- Previous 'middle' and 'matched' added to simulated
Bug Fixes
- Simulated bug fix on when data is not recorded from the beginning
- Client control 'None' bug fix
Bug Fixes
- Reduce MC count (debugging seg fault)
Improvements
- Custom historical listener/stream added
- Large order count (per market) optimisations
- #203 client transaction count
- #224 multi market processing
Bug Fixes
- #221 RuntimeError: market/order looping
Libraries
- betfairlightweight upgraded to 2.5.0
Improvements
- market_notes added to Trade
- market removed after closed for 3600 seconds
- client.best_price_execution handling added
Improvements
- Simulated optimisations on matched size/price (@jsphon)
Libraries
- betfairlightweight upgraded to 2.4.0
Improvements
- #185 cleared orders meta implemented
- Order.elapsed_seconds_executable added
Improvements
- Error handling added to logging control
Bug Fixes
- Incorrect event type passed to log_control
Improvements
- #205 MarketBook publishTime added to simulated.matched / order.execution_complete time added
- Controls error message added
- Info properties improved
- Order/Trade .complete refactored
Bug Fixes
- Log order moved to after execution (missing betId)
Improvements
- Client passed in AccountBalance event
- PublishTime added to order (MarketBook)
- GH Actions fixed
Improvements
- #178 Client order stream disable/enable
- #179 Info properties
Bug Fixes
- #191 missing git config
Improvements
- #191 Github actions added for testing and deployment
Bug Fixes
- #195 refactor to prevent RuntimeError
Improvements
- #175 Update/Replace simulated handling
- Trade context manager added
Bug Fixes
- #163 selection exposure improvement
- BetfairExecution replace bugfix
Bug Fixes
- Sentry uses name in extra so do not override.
Improvements
- #186 Error handling when calling strategy functions
- Start delay bumped on workers and name changed
- Minor typos / cleanups
Improvements
- Missing Middleware inheritance
- get_sp added
Bug Fixes
- MarketCatalogue missing from Market when logged
Bug Fixes
- Market close bug
Improvements
- Market properties added
Bug Fixes
- Memory leak in historical stream fixed (queue)
- process_closed_market bug fix in process logic
Bug Fixes
- pypi bug?
Improvements
- Worker refactor to make init simpler when adding custom workers
Improvements
- Logging control added and integrated
- PriceRecorder example added
- Balance polling added
- Cleared Orders/Market polling added
- Trade.notes added
- Middleware moved to flumine level
- SimulatedMiddleware refactored to handle all logic
- Context added to worker functionality
Improvements
- Simulated execution created (place/cancel only)
- Backtest simulation created and integrated
- patching added, major speed improvements
Bug Fixes
- Handicap missing from order
- Client update account details added
- Replace/Update update_data fix (now cleared)
Libraries
- betfairlightweight upgraded to 2.3.1
Improvements
- BetfairExecution now live (place/cancel/update/replace)
- Trading and Client controls now live
- Trade/Order logic created and integrated
- OrderPackage created for execution
- Market class created
- process.py created to handle order/trade logic and linking
- Market catalogue worker added
- Blotter created with some initial functions (selection_exposure)
- Strategy runner_context added to handle selection investment
- OrderStream created and integrated
Bug Fixes
- Error handling on keep_alive worker added
Libraries
- requests added as dependency
Improvements
- Backtest added and HistoricalStream refactor (single threaded)
- Flumine clients created and integrated
- MarketCatalogue polling worker added
Libraries
- betfairlightweight upgraded to 2.3.0
Improvements
- context added to strategy
- .start / .add refactored to make more sense
- HistoricalStream added and working but will change in the future to not use threads (example added)
Libraries
- betfairlightweight upgraded to 2.1.0
Improvements
- Refactor to trading framework / engine
- Remove recorder/storage engine and replace with 'strategies'
- Market and data streams added
- Background worker class added
- Add docs
- exampleone added
Libraries
- betfairlightweight upgraded to 2.0.1
- Add tenacity 5.0.3
- Add python-json-logger 0.1.11
Improvements
- py3.7/3.8 testing and Black fmt
- main.py update to remove flumine hardcoding
- Remove docker and change to 'main.py' example
- Refactor to local_dir so that it can be overwritten
Bug Fixes
- File only loaded if < than 1 line
- FLUMINE_DATA updated to /tmp to prevent permission issues
Libraries
- betfairlightweight upgraded to 1.10.4
- Add py3.8 support
Improvements
- logging improvements (exc_info)
- Python 3.4 removed and 3.7 support added
Libraries
- betfairlightweight upgraded to 1.10.3
Improvements
- black fmt
- _async renamed to async_ to match bflw
- py3.7 added to travis
- #28 readme update
Libraries
- betfairlightweight upgraded to 1.10.2