问答交流

【平台使用】atr_14 因子计算结果不一致

由bq1hnkb2创建,最终由small_q 被浏览 12 用户

\

from bigmodule import M

# <aistudiograph>

# @module(position="-314.7497329711914,-750", comment="""因子特征""")
m2 = M.input_features_dai.v30(
    mode="""表达式""",
    expr="""-- DAI SQL 算子/函数: https://bigquant.com/wiki/doc/Rceb2JQBdS
-- 数据&字段: 数据文档 https://bigquant.com/data/home
-- 数据使用: 表名.字段名, 对于没有指定表名的列,会从 expr_tables 推断
-- 使用 float 类型。默认是高精度 decimal.Decimal, 不能和float直接相乘

-- k线颜色因子,当日上涨为1,下跌为0
# IF (CLOSE > OPEN,1,0) AS f1

-- 技术指标 
-- atr_14:平均真实波动率。指标解释:首先计算每一根K线的真实波动幅度,它是以下三者中的最大值:当日最高价与最低价的差值;当日最高价与前一日收盘价的绝对值差;当日最低价与前一日收盘价的绝对值差。再计算 n1 周期内TR值的平均值,即为ATR 
list_max([(high - low), abs(high - m_lag(close, 1)), abs(low - m_lag(close, 1))]) AS _temp_value
m_ta_sma(_temp_value, 14) AS f2
m_ta_atr(high, low, close, 14) AS f2_ground_truth

 
""",
    expr_filters="""

""",
    expr_tables="""cn_stock_bar1d""",
    extra_fields="""date, instrument""",
    order_by="""date, instrument""",
    expr_drop_na=True,
    extract_data=False,
    m_name="""m2"""
)

# @module(position="-316,-600", comment="""抽取预测数据""")
m4 = M.extract_data_dai.v18(
    sql=m2.data,
    start_date="""2024-01-01""",
    start_date_bound_to_trading_date=True,
    end_date="""2024-01-30""",
    end_date_bound_to_trading_date=True,
    before_start_days=90,
    keep_before=False,
    debug=False,
    m_name="""m4"""
)
# </aistudiograph>

输出结果是:f2 和f2_ground_truth 不一致

标签

数据分析
评论
  • m_ta_atr底层调用的是talib,可能细节上有区别
{link}