core package

Submodules

core.a module

Created by x2h1z on 2021/2/25.

class core.a.A[源代码]

基类:object

A Backtesting Framework

通常你只需要继承 A 然后实现它的两个方法即可, Simple Example:

class Demo(A):
    def __init__(self):
        self.date = datetime.today()
        # 设置回测所用到的数据所在路径
        self.set_source_path("<source/path>")
        # 设置买入时段和卖出时段
        self.init(143000, 30 * 60, 93000, 30 * 60)

    def on_day_stock(self, symbol_code: str, date: str, stock_df: pd.DataFrame) -> bool:
        # 因子计算等操作
        pass

    def on_day_result(self):
        # 对回测结果的分析. 比如计算收益率
        result = self.rate_of_return_calc(self.date, ["000001"])


if __name__ == '__main__':
    d = Demo()
    # 启动回测
    d.start()
COLUMNS = ['BeginTime', 'EndTime', 'OpenPrice', 'HighPrice', 'LowPrice', 'ClosePrice', 'ThisVolume', 'ThisTurnover', 'PreClose', 'UpLimit', 'DropLimit', 'Volume', 'Turnover']
static get_next_day(date: Union[str, datetime.datetime]) datetime.datetime[源代码]

获取下一个交易日

Args:

date: 日期

Returns: 下一个交易日的datetime对象

init(buy_time: int, buy_time_end: int, sell_time: int, sell_time_end: int, encoding: str = 'utf-8') None[源代码]

初始化参数配置

Args:

buy_time: 买入时间 buy_time_end: 买入时长(秒) sell_time: 卖出时间 sell_time_end: 卖出时长(秒) encoding: 文件的编码格式. 作用于程序的所有读取和写入

Returns: None

property market
on_day_result()[源代码]

当遍历完一天的个股时会调用这个函数 子类必须实现

Returns:

Raises: NotImplementedError

on_day_stock(symbol_code: str, date: str, stock_df: pandas.core.frame.DataFrame) bool[源代码]

当遍历完个股一天行情时会调用这个函数 子类必须实现 该方法会运行在子线程

Args:

symbol_code: 股票代码 date: 日期 stock_df: 行情数据

Returns: 是否缓存当前 stock_df. 返回 true 会将当前 stock_df 缓存

该缓存的数据会在计算收益率中使用, 无特殊需求, 返回True即可

Raises: NotImplementedError

rate_of_return_calc(date: str, symbol_codes: Union[list, set, tuple])[源代码]

收益率计算

Args:

date: 日期 symbol_codes: 要计算的股票代码

Returns:

set_source_path(source_path: str)[源代码]

设置资源路径

Args:

source_path: 资源路径

Returns:

start(date: str = '*')[源代码]

启动回测

Args:

date: 回测日期. 默认目录下所有日期

Returns:

class core.a.Market(value)[源代码]

基类:enum.Enum

An enumeration.

SH = 0
SZ = 1

Module contents