跳转至内容

aitrader量化系统 代码学习&问题反馈

aitrader 是咱们量化实验室 自研的 投研 框架(分为开源框架版本和本地核心版本)。
从金融数据、因子表达式引擎,因子分析到机器模型训练,回测系统,实盘整合等。
这里可以反馈问题,提出建议。

您可以通过 aitrader量化系统-代码学习-问题反馈@bbs.ailabx.com 标签在开放的社交网络上关注这一版块。

12 主题 55 帖子
  • 关于ETF轮动策略“排序规则”和“卖出规则”

    3
    0 赞同
    3 帖子
    89 浏览
    T
    多谢多谢,您这么一说我就明白了
  • bt框架的常见问题——汇总

    5
    0 赞同
    5 帖子
    920 浏览
    X
    我怀疑bt框架在偷数据;如果我将测试数据的2025-10-15日(包括这一天)及以后的数据给删除,测试的时候get_transactions()方法拿不到2025-10-14日的调仓信息;如果按照收盘价进行调仓换股的话,那么2025-10-14日的数据是有的,2025-10-14日的调仓数据应该是要输出的;我现在增加一条测试数据(日期为2025-10-15,其它OHLC的数据随便填写)这个时候回测就会出来2025-10-14日的调仓信息;按照这个逻辑,它只有后一天的数据出来的时候,前一日的调仓信息才能出来,所以它应该是次日开盘显示前一日的调仓信息的。
  • aitrader的运行逻辑是什么

    6
    0 赞同
    6 帖子
    278 浏览
    C
    同时有买入、卖出、排序规则弄不清其中的逻辑规则。在其他平台试,感觉收益差异很大。
  • aitrader 开源系统 代码下载说明

    19
    2
    0 赞同
    19 帖子
    2k 浏览
    C
    请问回测时间怎么改,改了没反应
  • 关于trend_score和ROC的计算问题

    9
    5
    0 赞同
    9 帖子
    596 浏览
    D
    下面这个是星主的源码: @staticmethod def trend_score(series: pd.Series, period=25): def _trend_score(close, period=25): """ 向量化计算趋势评分:年化收益率 × R平方 :param close: 收盘价序列(np.array或pd.Series) :param period: 计算窗口长度,默认25天 :return: 趋势评分数组,长度与输入相同,前period-1位为NaN """ if len(close) < period: return np.full_like(close, np.nan) y = np.log(close) windows = np.lib.stride_tricks.sliding_window_view(y, window_shape=period) x = np.arange(period) # 预计算固定值 n = period sum_x = x.sum() sum_x2 = (x ** 2).sum() denominator = n * sum_x2 - sum_x ** 2 # 滑动窗口统计量 sum_y = windows.sum(axis=1) sum_xy = (windows * x).sum(axis=1) # 回归系数 slope = (n * sum_xy - sum_x * sum_y) / denominator intercept = (sum_y - slope * sum_x) / n # 年化收益率 annualized_returns = np.exp(slope * 250) - 1 # R平方计算 y_pred = slope[:, None] * x + intercept[:, None] residuals = windows - y_pred ss_res = np.sum(residuals ** 2, axis=1) sum_y2 = np.sum(windows ** 2, axis=1) ss_tot = sum_y2 - (sum_y ** 2) / n r_squared = 1 - (ss_res / ss_tot) r_squared = np.nan_to_num(r_squared, nan=0.0) # 处理零方差情况 # 综合评分 score = annualized_returns * r_squared # 对齐原始序列长度 full_score = np.full_like(y, np.nan) full_score = pd.Series(index=close.index) full_score[period - 1:] = score return full_score return series.groupby(level='symbol', group_keys=False).apply(_trend_score)
  • aitrader制作策略回测报告

    1
    3
    0 赞同
    1 帖子
    390 浏览
    尚无回复
  • 此主题已被删除!

    1
    1
    0 赞同
    1 帖子
    2 浏览
    尚无回复
  • aiTrader 7.0.0 运行错误,Message提示框,数据错误。

    1
    1
    0 赞同
    1 帖子
    151 浏览
    尚无回复
  • 1 赞同
    3 帖子
    459 浏览
    W
    感谢无私分享,逻辑和代码都很清晰,可以作为以后其他大神分享模版
  • 下载了AilabX,这个程序还能使用吗?好像不能运行

    2
    1
    0 赞同
    2 帖子
    295 浏览
    A
    http://bbs.ailabx.com/topic/2/aitrader-开源系统-代码下载说明 这里下载最新的代码。
  • 【bug反馈】aitrader开源版本点击编辑策略会导致排序规则消失

    2
    3
    0 赞同
    2 帖子
    261 浏览
    A
    反馈已收到,感谢。
  • 关于本次系统升级及账号的说明

    3
    0 赞同
    3 帖子
    711 浏览
    A
    如果遇到login 报500,清一下浏览器缓存,或者换一个浏览器。