qka 2.2.1.dev2__tar.gz → 2.2.2.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/PKG-INFO +1 -1
  2. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/backtest.py +1 -9
  3. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/references/backtest.md +1 -2
  4. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/references/strategy.md +3 -5
  5. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/.github/workflows/release.yml +0 -0
  6. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/.gitignore +0 -0
  7. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/.vscode/settings.json +0 -0
  8. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/CHANGELOG.md +0 -0
  9. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/LICENSE +0 -0
  10. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/README.md +0 -0
  11. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/pyproject.toml +0 -0
  12. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/__init__.py +0 -0
  13. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/cli.py +0 -0
  14. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/__init__.py +0 -0
  15. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/accessor.py +0 -0
  16. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/analysis.py +0 -0
  17. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/broker.py +0 -0
  18. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/data.py +0 -0
  19. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/indicator.py +0 -0
  20. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/report.py +0 -0
  21. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/sizing.py +0 -0
  22. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/core/strategy.py +0 -0
  23. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/utils/__init__.py +0 -0
  24. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/qka/utils/logger.py +0 -0
  25. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/SKILL.md +0 -0
  26. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/references/analysis.md +0 -0
  27. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/references/broker.md +0 -0
  28. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/references/data.md +0 -0
  29. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/skills/qka/references/sizing.md +0 -0
  30. {qka-2.2.1.dev2 → qka-2.2.2.dev2}/tools/generate_api_ref.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: qka
3
- Version: 2.2.1.dev2
3
+ Version: 2.2.2.dev2
4
4
  Summary: QKA(快量化 / Quant Kit for A-shares)- 简洁易用的 A 股量化回测框架
5
5
  Project-URL: Home, https://github.com/zsrl/qka
6
6
  Project-URL: Repository, https://github.com/zsrl/qka
@@ -79,7 +79,7 @@ class Backtest:
79
79
 
80
80
  def run(self, cash: float = 100000.0,
81
81
  start_date: str = None, end_date: str = None,
82
- benchmark: Optional[str] = None, warmup: int = 0):
82
+ benchmark: Optional[str] = None):
83
83
  """
84
84
  执行回测
85
85
 
@@ -95,10 +95,6 @@ class Backtest:
95
95
  end_date: 回测截止日期 YYYY-MM-DD,None 表示数据最晚日期
96
96
  benchmark: 基准代码,如 '000300.SH'(沪深300)。
97
97
  如果提供,会下载基准数据用于对比。
98
- warmup: 指标预热天数(默认 0)。自动多读取 warmup 个交易日的历史数据用于
99
- 计算指标,使策略从第一个交易日起即拿到有效指标值,无需手写
100
- warmup guard 跳过前 N 根 bar。仅用于计算,on_bar 调用次数不变。
101
- 显式传入(>0)时覆盖 Data 构造时的 warmup 设定。
102
98
 
103
99
  Returns:
104
100
  None。回测结果保存在 self.results、self.metrics、self.trade_history 中。
@@ -109,10 +105,6 @@ class Backtest:
109
105
  self.strategy.sizing = SizingAccessor(self.strategy.broker)
110
106
  self.strategy._data = DataAccessor()
111
107
 
112
- # 指标预热:run 显式传入时覆盖 Data 构造时的 warmup 设定
113
- if warmup > 0:
114
- self.data.warmup = warmup
115
-
116
108
  # 获取数据
117
109
  raw = self.data.get(lazy=True, start_date=start_date, end_date=end_date)
118
110
 
@@ -19,7 +19,7 @@ bt = Backtest(data, strategy)
19
19
 
20
20
  ### run()
21
21
 
22
- `run(cash=100000.0, start_date=None, end_date=None, benchmark=None, warmup=0)`
22
+ `run(cash=100000.0, start_date=None, end_date=None, benchmark=None)`
23
23
 
24
24
  执行回测。注入 broker/sizing/data 后遍历每个交易日,调用 `strategy.on_bar(date)`。
25
25
 
@@ -29,7 +29,6 @@ bt = Backtest(data, strategy)
29
29
  | `start_date` | `None` | 回测起始日期 `'YYYY-MM-DD'` |
30
30
  | `end_date` | `None` | 回测截止日期 |
31
31
  | `benchmark` | `None` | 基准指数代码,baostock 格式如 `'sh.000300'` |
32
- | `warmup` | `0` | 指标预热天数。自动多读 `warmup` 天历史计算指标,使策略第 1 个 bar 起指标即有效(无需手写 warmup guard)。on_bar 调用次数不变;显式传入(>0)时覆盖 Data 的 warmup 设定 |
33
32
 
34
33
  > 500 bar 以上自动分块迭代,避免一次性加载全量数据。
35
34
 
@@ -24,7 +24,7 @@ class MyStrategy(Strategy):
24
24
  | `__init__` | **必须**调用 `super().__init__()`。不需要传任何参数 |
25
25
  | `on_bar` 签名 | 只有 `self` 和 `date`。**没有** `get` 参数(旧版 API,已废弃) |
26
26
  | `self.params` | **不存在**。不要写 `self.params.get('fast', 5)`,直接用实例属性 |
27
- | 预热 guard | **不要**手写 `if len(hist) < N: continue` 跳过前 N 根 bar。改用 `Data(warmup=N)` 或 `bt.run(warmup=N)`,qka 自动多读历史计算指标 |
27
+ | 预热 guard | **不要**手写 `if len(hist) < N: continue` 跳过前 N 根 bar。改用 `Data(warmup=N)`,qka 自动多读历史计算指标 |
28
28
 
29
29
  `Backtest.run()` 在执行时注入以下属性:
30
30
 
@@ -79,14 +79,12 @@ hist = self.history('close', 20) # 最近 20 天的收盘价
79
79
  ### 指标预热(warmup)
80
80
 
81
81
  若策略用到的指标/因子需要较长历史窗口(如动量排名需看前 200 天数据),**不要**在 `on_bar` 里
82
- 手写 `if len(hist) < N: continue` 跳过前 N 根 bar。改用 `Data(warmup=N)` 或 `bt.run(warmup=N)`,
82
+ 手写 `if len(hist) < N: continue` 跳过前 N 根 bar。改用 `Data(warmup=N)`,
83
83
  qka 自动在 `[start_date, end_date]` 之前多读 `warmup` 天数据用于计算指标,但回测仍从 `start_date`
84
84
  首个交易日开始(`on_bar` 调用次数不变),指标自始有效:
85
85
 
86
86
  ```python
87
- data = Data(symbols=[...], indicators={...}, warmup=200) # 构造时声明
88
- # 或
89
- bt.run(warmup=200) # 回测时声明(覆盖 Data 的设定)
87
+ data = Data(symbols=[...], indicators={...}, warmup=200) # 构造时声明预热天数
90
88
  ```
91
89
 
92
90
  > 注意:qka 只能从 ta 指标的整数参数自动推断预热窗口;自定义 lambda 指标推断不到,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes