Python
Changelog

CHANGELOG


2024-11-5

v1.4.31 Cybotrade Update

  • bugfix: Bitget post_only limit orders will return error when attempting to retrieve open_order.
  • feat: reconnection resync now replaces entire data_map with just-retrieved data.

2024-10-24

v1.4.30 Cybotrade Update

  • feat: Introduce new periodic_resync option for RuntimeConfig.
  • bugfix: coinglass historical data retrieval may sometimes retrieve unnecessary additional data.
  • bugfix: 1 minute delay when closing backtest strategies.

2024-10-03

v1.4.29 Cybotrade Update

2024-09-23

v1.4.28 Cybotrade Update

  • bugfix: OrderUpdate from BitgetLinear does not connect consistently on Cloud instances.

2024-09-21

v1.4.27 Cybotrade Update

  • bugfix: OrderUpdate from BitgetLinear filledSize does not return cumulative filled size.

v1.4.26 Cybotrade Update

  • bugfix: WebSocket connection to BitgetLinear attempts to subscribe prior to authentication success.

v1.4.25 Cybotrade Update

  • bugfix: OrderUpdate from BitgetLinear returns incorrect client_order_id.

2024-09-19

v1.4.24 Cybotrade Update

  • bugfix: Live trade randomly panics with error message 'Timeout(1min)...'.

2024-09-18

v1.4.23 Cybotrade Update

  • feature: Introduce new optional field for Strategy.open and Strategy.close known as time_in_force the default value is GTC.
  • bugfix: Particular glassnode endpoints were causing issues with end time parameter.
  • bugfix: Market orders on Bybit set to IOC instead of GTC by default.

2024-09-2

v1.4.22 Cybotrade Update

  • feature: Introduce data caching for RuntimeMode.Backtest.
  • feature: Introduce new optional field cache_path for RuntimeConfig only valid in Backtest.

2024-08-24

v1.4.21 Cybotrade Update

2024-08-14

v1.4.20 Cybotrade Update

  • bugfix: RuntimeMode.Backtest is unable to place any order.
  • bugfix: When there is downtime, a connection will not exit leading to a bricked state.

2024-08-9

v1.4.19 Cybotrade Update

  • feat: spot candles are now available from this version onwards.

2024-08-8

v1.4.18 Cybotrade Update

  • bugfix: cybotrade runtime might panic unexpectedly when taking to long for reconnection.

2024-07-31

v1.4.17 Cybotrade Update

  • bugfix: cryptoquant data cannot be retrieved in full for certain dates.
  • bugfix: resync data_map and split_data_map leads to unnecessary on_candle_closed/on_datasource_interval invocation .

2024-07-23

v1.4.16 Cybotrade Update

  • bugfix: getting position for binance using all_position will return erroneous quantity

2024-07-20

v1.4.15 Cybotrade Update

  • bugfix: getting position will return 0.0 quantity for any short position
  • bugfix: calling strategy.position() with Exchange.ZoomexLinear will result in an error

2024-07-17

v1.4.14 Cybotrade Update

-bugfix: resync'd data_map and split_data_map will invoke user's on_candle_closed and on_datasource_interval despite not having any new data.

2024-07-12

v1.4.13 Cybotrade Update

  • bugfix: calling get_open_orders with bitget whilst having no open orders results in an error.
  • bugfix: resync'd data_map and split_data_map panics when there is no data in the map.
  • improvement: proactive ping-pong on Datasource WS connection for better realiability.

2024-07-08

v1.4.12 Cybotrade Update

  • bugfix: Backtest unable to be ran when setting start_time to a date prior to Exchange Market existing. E.g: 1/1/2020 for Bybit BTC/USDT candle.

2024-07-05

v1.4.11 Cybotrade Update

  • improvement: self.data_map and self.split_data_map now gets resynchronized upon any connection issues.
  • improvement: permutation.py no longer warns about SyntaxWarning.

2024-07-02

v1.4.10 Cybotrade Update

  • bugfix: update_ringbuffer throws an error on shutdown on Windows.
  • bugfix: self.data_map does not get updated data.
  • feat: Introduce new self.split_data_map.

2024-06-25

v1.4.9 Cybotrade Update

  • bugfix: Unable to retrieve >100k data from specific CryptoQuant endpoints.
  • bugfix: Windows CPU incompatibility.
  • feat: Introduce Zoomex exchange support.
  • feat: Introduce better optimized data_map (split_data_map).

2024-06-21

v1.4.8 Cybotrade Update

  • bugfix: bitget order placement with post-only fails.
  • bugfix: on_shutdown does not get executed when running Cybotrade on Windows.

2024-06-20

v1.4.7 Cybotrade Update

  • bugfix: on_active_order_interval causes python to exit when an error is encountered.

2024-06-4

v1.4.6 Cybotrade Update

-bugfix: Strategy.get_wallet_balance not supported for Bitget.

-bugfix: Error logs showing when running any Live/LiveTestnet strategies.

-bugfix: Duplicated logs when running permutations in Backtest strategies.

-performance: Improved Backtest permutation performance by 75%.

2024-05-24

v1.4.5 Cybotrade Update

-bugfix: Strategy.position() not supported for Okx.

-bugfix: on_shutdown() event handler does not get called when Datasource Cloud instance gets stopped.

2024-05-20

v1.4.4 Cybotrade Update

-bugfix: Spam logs when running Live or LiveTestnet Strategies.

-bugfix: get_current_available_balance() results in Error when using Bitget.

2024-05-14

v1.4.3 Cybotrade Update

-bugfix: Unable to retrieve data from Datasource topic with the same endpoints but different parameters.

-feat: Introduce Bitget exchange support.

2024-05-07

v1.4.2 Cybotrade Update

-bugfix: Order update does not receive updates after reconnection to Exchange via WS.

2024-05-05

v1.4.1 Cybotrade Update

-bugfix: Incorrect end_time values from datasource cryptoquant data.

-bugfix: on_shutdown event handler exiting prematurely.

-improvement: Improved LSP auto-completion for Strategy method open() for is_post_only and is_hedge_mode parameters.

-feat: Introduce OKX exchange support.

-feat: Introduce Binance exchange support.

-feat: Introduce new Strategy method, get_order_book().

2024-04-04

v1.4.0 Cybotrade Update

-bugfix: Calling any CryptoQuant endpoints for block will result in an infinite loop.

-bugfix: When calling CryptoQuant endpoints that require the token parameter the parameter is ignored by accident.

-feat: Updated on_datasource_interval API arguments. It now accepts a new data_list

-feat: Updated ActiveOrderParams fields. It now contains a boolean is_reduce_only and float price (limit price).

-feat: Introduce new Strategy method, get_open_orders().

-feat: Introduce new parameter for Strategy method open() and OrderParam data structure, 'post_only'.

-feat: Introduce new event handler on_shutdown().

-feat: Added support skeleton for Glassnode provider.

2024-03-25

v1.3.9 Cybotrade Update

-bugfix: Running any backtests with coinglass datasource will get capped limit of 4500 data points.

2024-03-21

v1.3.8 Cybotrade Update

-bugfix: Attempting to index into self.data_map with any DataSource topic will fail.

2024-03-20

v1.3.7 Cybotrade Update

-bugfix: Opening a trade in an opposite direction of the last closed trade after having placed orders will cause Order Pool to not get updated in Backtest, leading to incorrect Position data.

-bugfix: When attempting to call close() on Live, it will fail with error Attempted to call close() with no position despite having positions.

-feat: Introduces single request per Permutation sets, improving time performance for running Permutations in Backtest.

-feat: Introduces Ping-Pong system to ensure connectivity between DataSource server and Cybotrade when Cybotrade encounters network issues.

2024-03-17

v1.3.6 Cybotrade Update

-bugfix: When starting a Backtest with any cryptoquant data, the self.data_map will store the data_count set of data in reversed order of datetime.

-bugfix: When running strategies with Coinglass V3 topics, the data received is hard capped at 1000.

Datasource

-feat: Handles disconnection from Cybotrade by forcibly closing connection when Cybotrade is unresponsive.

2024-03-15

v1.3.5 Cybotrade Update

  • bugfix: Short position TP order when created with Strategy.open() will always execute on the next candle closed despite not being in range of the candle.

  • bugfix: on_order_update will cause the entire strategy to exit when it receives an update from any trading symbol that is not included in the candle_topics parameter for RuntimeConfig.

  • bugfix: If format=csv is passed in when calling CryptoQuant topics, it will result in an exit, the format parameter is now ignored.

  • feat: performance.json does not get produced if the strategy that was ran did not produce any trades.

  • feat: on_active_order_interval parameter for RuntimeConfig is now based on seconds rather than minutes.

  • feat: New strategy function all_position().

  • feat: New symbol class field for Position model.

2024-03-12

v1.3.4 Cybotrade Update

  • bugfix: When retrieving more than 100,000 sets of data for CryptoQuant data, the runtime will be stuck in an infinite loop.

  • bugfix: The second last value in the self.data_map[topic] for candles during RuntimeMode.LiveTestnet and RuntimeMode.Live is off by 1000 counts.

  • bugfix: Removed is_hedge_mode argument from Strategy.cancel()

  • feat: removed redundant logs for on_active_order_interval as well as on_order_update

DataSource

  • feat: caching after first request, this will improve 'data fetching' time.

Documentation

  • feat: Updated Coinglass V1 documentation to Coinglass V3.

2024-03-10

v1.3.3 Cybotrade Update

  • bugfix: The first candle closed received in a backtest is duplicated within the self.data_map().

  • feat: removed hedge_mode from the RuntimeConfig struct.

  • feat: introduced is_hedge_mode argument for Strategy.open(), Strategy.close() convenience methods, as well as the OrderParams struct.

You may notice that Strategy.cancel() has a function signature that accepts the is_hedge_mode argument, this should be ignored.

  • feat: Strategy.position() now retrieves position directly from exchange.

  • feat: Introduces support for Coinglass V3 topics.

  • feat: Deprecated Coinglass V1 topics.