Files
NewStock/.kilocode/rules/naming_conventions.md
liaozhaorun 4607555eaf feat: 完善 QMT 交易模块文档和配置展示功能
- 优化前端仪表盘界面
- 添加配置文件可视化展示
- 编写 QMT 模块配置文档
- 完善项目规则体系(KiloCode)
2026-01-27 00:52:35 +08:00

293 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 命名约定规则
本项目定义了统一的命名规范,确保代码可读性和一致性。
## 文件命名
### Python 源文件
- 使用 **小写字母****下划线** (`snake_case`)
- 模块名应简洁明了
- 避免使用缩写
```python
# 推荐
factor_processor.py
data_process.py
utils.py
# 不推荐
factorproc.py
dataProcess.py
Util.py
```
### 目录命名
- 使用 **小写字母****下划线**
- 含义明确的目录名
```
# 推荐
main/factor/
main/utils/
main/data/update/
# 不推荐
main/Factor/
main/Utils/
main/data/Update/
```
### 配置文件
- 使用小写下划线命名
- 后缀明确(如 `.env`, `.yml`, `.yaml`
```
.env
.gitignore
requirements.txt
```
## 变量命名
### 普通变量
- 使用 **小写下划线** (`snake_case`)
- 名称应表达变量的含义
- 避免无意义的单字母(循环变量除外)
```python
# 推荐
stock_code = "600519"
close_prices = df["close"]
rolling_mean = grouped["close"].rolling(window=5).mean()
# 不推荐
s = "600519"
c = df["close"]
rm = grouped["close"].rolling(window=5).mean()
```
### 常量
- 使用 **全大写****下划线** (`UPPER_SNAKE_CASE`)
- 定义在模块顶部或单独的常量文件
```python
# 推荐
WINDOW_SIZE = 20
EPSILON = 1e-8
DEFAULT_JOIN = "left"
# 不推荐
windowSize = 20
epsilon = 1e-8
default_join = "left"
```
### 临时变量
- 使用 **单下划线前缀** 表示临时变量
- 或使用有意义的临时变量名
```python
# 推荐
df["_temp_calc"] = df["close"] * 1.1
result = [x for x in _ if x > 0]
# 不推荐
df["temp"] = df["close"] * 1.1
result = [x for x in a if x > 0]
```
### 私有变量
- 使用 **双下划线前缀**Python 名称修饰)
- 或单下划线前缀(约定私有)
```python
class FactorCalculator:
def __init__(self):
self._default_window = 20 # 约定私有
self.__internal_cache = {} # 名称修饰(更严格)
```
## 函数命名
### 公共函数
- 使用 **小写下划线** (`snake_case`)
- 动词开头,表达函数行为
```python
# 推荐
def get_rolling_factor(df):
pass
def calculate_moving_average(prices, window):
pass
def merge_with_industry_data(df, industry_df):
pass
# 不推荐
def rollingFactor(df): # 违反 snake_case
pass
def Factor(df): # 不清晰
pass
```
### 私有函数
- 使用 **单下划线前缀**
```python
def _internal_calculation(df):
"""内部计算函数,不对外暴露"""
pass
```
### 数据处理函数
```python
# 推荐:明确表达输入输出
def read_and_merge_h5_data(h5_filename, key, columns, df=None, join="left"):
pass
def load_factor_data(factor_type):
pass
def save_predictions(predictions, output_path):
pass
```
## 类命名
- 使用 **大驼峰命名** (`PascalCase`)
- 名词或名词短语
```python
# 推荐
class FactorCalculator:
pass
class DataProcessor:
pass
class StockAnalyzer:
pass
# 不推荐
class factorCalculator: # 违反 PascalCase
pass
class data_processor: # 违反 PascalCase
pass
```
## DataFrame 列命名
### 因子列
- 使用 **小写下划线**
- 清晰表达因子含义
- 分类变量使用 `cat_` 前缀
```python
# 推荐:因子
df["volume_change_rate"] # 成交量变化率
df["flow_lg_elg_intensity"] # 主力资金流强度
df["chip_concentration_range"] # 筹码集中度范围
# 推荐:分类变量
df["cat_is_positive"] # 是否正收益0/1
df["cat_volume_breakout"] # 成交量突破信号
df["cat_winner_price_zone"] # 获利盘价格区域
```
### 中间计算列
- 使用 **单下划线前缀** 表示临时列
```python
# 推荐
df["_is_positive"] = (df["pct_chg"] > 0).astype(int)
df["_pos_returns"] = df["pct_chg"].where(df["pct_chg"] > 0, 0)
# 不推荐
df["temp_positive"] = (df["pct_chg"] > 0).astype(int)
df["posRet"] = df["pct_chg"].where(df["pct_chg"] > 0, 0)
```
### 排名列
- 使用 `rank_` 前缀
```python
df["rank_act_factor1"] = df.groupby("trade_date")["act_factor1"].rank(ascending=False, pct=True)
```
### 通用后缀
| 后缀 | 含义 | 示例 |
|------|------|------|
| `_change` | 变化量 | `cost_support_15pct_change` |
| `_ratio` | 比值 | `flow_divergence_ratio` |
| `_accel` | 加速度 | `flow_lg_elg_accel` |
| `_spike` | 异常值 | `vol_spike` |
| `_std` | 标准差 | `vol_std_5` |
| `_ma` | 移动平均 | `maobv_6` |
| `_return` | 收益率 | `future_return` |
| `_volatility` | 波动率 | `volatility` |
## 股票相关术语缩写
| 缩写 | 全称 | 示例列名 |
|------|------|----------|
| `ts_code` | 股票代码 | - |
| `trade_date` | 交易日期 | - |
| `vol` | 成交量 | `vol` |
| `amount` | 成交额 | `amount` |
| `open` | 开盘价 | `open` |
| 最高价 | `high` | `high` |
| `low` | 最低价 | `low` |
| `close` | 收盘价 | `close` |
| `pct_chg` | 涨跌幅 | `pct_chg` |
| `turnover_rate` | 换手率 | `turnover_rate` |
| `circ_mv` | 流通市值 | `circ_mv` |
## 命名一致性检查
### 因子命名模式
```python
# 资金流因子
df["lg_elg_net_buy_vol"] # 大单+超大单净买入量
df["sm_net_buy_vol"] # 小单净买入量
df["flow_divergence_ratio"] # 资金流分歧比
# 筹码因子
df["chip_concentration_range"] # 筹码集中度
df["chip_skewness"] # 筹码偏度
df["floating_chip_proxy"] # 浮筹比例代理
# 收益因子
df["return_5"] # 5日收益率
df["return_20"] # 20日收益率
```
### 模型命名
```python
# 推荐
my_catboost_model.cbm
best_model.pth
# 不推荐
model1.cbm
final.pth
```