| self = <test_scalp_dip_buyback_stop_gate.TestScalpDipBuybackStopGate object at 0x1228be480>
|
|
|
| def test_dip_blocked_when_buyback_stop_breached(self):
|
| > from rtrader.services.channel_scalp_service import _accumulate_dip_buy
|
|
|
| tests/services/test_scalp_dip_buyback_stop_gate.py:28:
|
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
| rtrader/services/channel_scalp_service.py:3362: in <module>
|
| _ensure_ray_task()
|
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
|
|
| def _ensure_ray_task():
|
| global _ray_evaluate_symbol
|
| if _ray_evaluate_symbol is not None:
|
| return
|
| import ray
|
|
|
| > @ray.remote(num_cpus=1, max_retries=2, retry_exceptions=True)
|
| ^^^^^^^^^^
|
| E AttributeError: module 'ray' has no attribute 'remote'
|
|
|
| rtrader/services/channel_scalp_service.py:3332: AttributeError
|