1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-07-14 16:26:55 +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. # Copyright (c) Microsoft Corporation.
# Licensed under the MIT License. # Licensed under the MIT License.
import pandas as pd
from dataclasses import dataclass, field
from typing import ClassVar
@dataclass
class Order: class Order:
"""
SELL = 0 stock_id : str
BUY = 1 amount : float
start_time : pd.Timestamp
def __init__(self, stock_id, amount, start_time, end_time, direction, factor): closed start time for order generation
"""Parameter end_time : pd.Timestamp
direction : Order.SELL for sell; Order.BUY for buy closed end time for order generation
stock_id : str direction : Order.SELL for sell; Order.BUY for buy
amount : float factor : float
trade_date : pd.Timestamp
factor : float
presents the weight factor assigned in Exchange() presents the weight factor assigned in Exchange()
""" """
# check direction stock_id : str
if direction not in {Order.SELL, Order.BUY}: 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") 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.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 "pymongo==3.7.2", # For task management
"scikit-learn>=0.22", "scikit-learn>=0.22",
"dill", "dill",
"dataclasses;python_version<'3.7'",
] ]
# Numpy include # Numpy include