From 2b4a493617d759d28f49768310c43c99daa169f9 Mon Sep 17 00:00:00 2001 From: v-mingzhehan Date: Thu, 1 Jul 2021 09:41:08 +0000 Subject: [PATCH] Order patch --- qlib/backtest/order.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/qlib/backtest/order.py b/qlib/backtest/order.py index b013d8723..32c4121fc 100644 --- a/qlib/backtest/order.py +++ b/qlib/backtest/order.py @@ -12,6 +12,7 @@ if TYPE_CHECKING: from qlib.backtest.exchange import Exchange from qlib.backtest.utils import TradeCalendarManager import warnings +import numpy as np import pandas as pd from dataclasses import dataclass, field from typing import ClassVar, Optional, Union, List, Set, Tuple @@ -47,7 +48,7 @@ class Order: direction: int factor: float - deal_amount: float = field(init=False) + deal_amount: Optional[float] = None # FIXME: # for compatible now. @@ -62,11 +63,11 @@ class Order: self.deal_amount = 0 @staticmethod - def parse_dir(direction: Union[str, int, OrderDir]) -> OrderDir: + def parse_dir(direction: Union[str, int, np.integer, OrderDir]) -> OrderDir: if isinstance(direction, OrderDir): return direction - elif isinstance(direction, int): - return OrderDir(direction) + elif isinstance(direction, (int, float, np.integer, np.floating)): + return OrderDir(int(direction)) elif isinstance(direction, str): dl = direction.lower() if dl.strip() == "sell":