1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-07-03 11:00:57 +08:00

fix annotation recursive error

This commit is contained in:
Young
2021-07-06 05:20:53 +00:00
parent 50c0e99f98
commit cb72857710
2 changed files with 16 additions and 3 deletions

View File

@@ -1,9 +1,13 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
from __future__ import annotations
import copy
from typing import Union
from typing import Union, TYPE_CHECKING
from .account import Account
if TYPE_CHECKING:
from ..strategy.base import BaseStrategy
from .exchange import Exchange
from .executor import BaseExecutor
from .backtest import backtest_loop
@@ -11,7 +15,6 @@ from .backtest import collect_data_loop
from .utils import CommonInfrastructure
from .order import Order
from ..strategy.base import BaseStrategy
from ..utils import init_instance_by_config
from ..log import get_module_logger
from ..config import C
@@ -137,6 +140,11 @@ def get_strategy_executor(
pos_type: str = "Position",
):
# NOTE:
# - for avoiding recursive import
# - typing annotations is not reliable
from ..strategy.base import BaseStrategy
trade_account = create_account_instance(
start_time=start_time, end_time=end_time, benchmark=benchmark, account=account, pos_type=pos_type
)

View File

@@ -1,7 +1,12 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
from __future__ import annotations
from qlib.backtest.order import BaseTradeDecision
from qlib.strategy.base import BaseStrategy
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from qlib.strategy.base import BaseStrategy
from qlib.backtest.executor import BaseExecutor
from ..utils.time import Freq
from tqdm.auto import tqdm