1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-07-23 04:01:00 +08:00
Files
qlib/qlib/rl/strategy/single_order.py
Huoran Li 5eb5ac1f1f RL backtest pipeline on 5-min data (#1417)
* Workflow runnable

* CI

* Slight changes to make the workflow runnable. The changes of handler/provider should be reverted before merging.

* Train experiment successful

* Refine handler & provider

* test passed

* Ready to test on server

* Minor

* Test passed

* TWAP training

* Add PPOReward

* Add a FIXME

* Refine PPO reward according to PR comments

* Minor

* Resolve PR comments

* CI issues

* CI issues

* CI issues
2023-02-13 12:43:22 +08:00

34 lines
1.0 KiB
Python

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
from __future__ import annotations
from qlib.backtest import Order
from qlib.backtest.decision import OrderHelper, TradeDecisionWO, TradeRange
from qlib.strategy.base import BaseStrategy
class SingleOrderStrategy(BaseStrategy):
"""Strategy used to generate a trade decision with exactly one order."""
def __init__(
self,
order: Order,
trade_range: TradeRange | None = None,
) -> None:
super().__init__()
self._order = order
self._trade_range = trade_range
def generate_trade_decision(self, execute_result: list | None = None) -> TradeDecisionWO:
oh: OrderHelper = self.common_infra.get("trade_exchange").get_order_helper()
order_list = [
oh.create(
code=self._order.stock_id,
amount=self._order.amount,
direction=self._order.direction,
),
]
return TradeDecisionWO(order_list, self, self._trade_range)