1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-06-06 05:51:17 +08:00

update Order with dataclass

This commit is contained in:
bxdd
2021-06-01 16:19:01 +08:00
parent 60e082e446
commit bf16e1ab47
2 changed files with 29 additions and 23 deletions

View File

@@ -1,30 +1,35 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
import pandas as pd
from dataclasses import dataclass, field
from typing import ClassVar
@dataclass
class Order:
SELL = 0
BUY = 1
def __init__(self, stock_id, amount, start_time, end_time, direction, factor):
"""Parameter
direction : Order.SELL for sell; Order.BUY for buy
stock_id : str
amount : float
trade_date : pd.Timestamp
factor : float
"""
stock_id : str
amount : float
start_time : pd.Timestamp
closed start time for order generation
end_time : pd.Timestamp
closed end time for order generation
direction : Order.SELL for sell; Order.BUY for buy
factor : float
presents the weight factor assigned in Exchange()
"""
# check direction
if direction not in {Order.SELL, Order.BUY}:
"""
stock_id : str
amount : float
start_time : pd.Timestamp
end_time : pd.Timestamp
direction : int
factor : float
deal_amount : float = field(init=False)
SELL : ClassVar[int] = 0
BUY : ClassVar[int] = 1
def __post_init__(self):
if self.direction not in {Order.SELL, Order.BUY}:
raise NotImplementedError("direction not supported, `Order.SELL` for sell, `Order.BUY` for buy")
self.stock_id = stock_id
# amount of generated orders
self.amount = amount
# amount of successfully completed orders
self.deal_amount = 0
self.start_time = start_time
self.end_time = end_time
self.direction = direction
self.factor = factor

View File

@@ -58,6 +58,7 @@ REQUIRED = [
"pymongo==3.7.2", # For task management
"scikit-learn>=0.22",
"dill",
"dataclasses;python_version<'3.7'",
]
# Numpy include