# 代码格式规则 (Formatting Rules) 本项目遵循以下代码格式规范: ## 1. Python 代码规范 ### 1.1 缩进 - 使用 **4个空格** 进行缩进 - 不使用 Tab 键 ### 1.2 行长度 - 每行代码最大长度:**100 字符** - 文档字符串最大长度:**80 字符** ### 1.3 空行 - 类定义之间:**2个空行** - 方法定义之间:**1个空行** - 函数定义之间:**2个空行** - 逻辑段落之间:**1个空行** ### 1.4 导入顺序 ```python # 标准库导入 import os import sys from datetime import datetime # 第三方库导入 import numpy as np import pandas as pd # 本地项目导入 from src.backtest_engine import BacktestEngine from src.data_manager import DataManager ``` ### 1.5 空格使用 - 在逗号后添加空格:`func(a, b, c)` - 在运算符两侧添加空格:`a + b` - 不要在括号内添加空格:`func(a)` 而不是 `func( a )` - 函数参数列表内不要有多余空格 ## 2. 命名规范 ### 2.1 变量命名 - 使用 **小写字母 + 下划线**:`trade_volume`, `stop_loss_points` - 私有变量使用前缀下划线:`_internal_cache` ### 2.2 常量命名 - 使用 **全大写 + 下划线**:`MAX_POSITION`, `DEFAULT_STOP_LOSS` ### 2.3 函数命名 - 使用 **小写字母 + 下划线**:`calculate_metrics()`, `get_bar_history()` ### 2.4 类命名 - 使用 **大驼峰命名法 (PascalCase)**:`SimpleLimitBuyStrategy`, `BacktestEngine` ## 3. 文档字符串规范 ### 3.1 所有公共类和方法必须有文档字符串 ```python class SimpleLimitBuyStrategy(Strategy): """ 一个基于当前K线Open、前1根和前7根K线Range计算优势价格进行限价买入的策略。 具备以下特点: - 每根K线开始时取消上一根K线未成交的订单 - 最多只能有一个开仓挂单和一个持仓 - 包含简单的止损和止盈逻辑 Args: context: 模拟器实例 symbol: 交易合约代码 trade_volume: 单笔交易量 """ ``` ### 3.2 复杂逻辑必须添加注释说明 ## 4. 类型提示规范 - 推荐为函数参数和返回值添加类型提示 - 使用 `from typing` 导入类型 - 循环导入时使用 `TYPE_CHECKING`: ```python from typing import Dict, Any, Optional, TYPE_CHECKING if TYPE_CHECKING: from src.backtest_engine import BacktestContext ``` ## 5. Git 提交规范 - 提交信息使用中文或英文 - 格式:`[类型] 描述` - 类型:feat, fix, docs, style, refactor, test, chore