分享聚宽量化交易执行选股策略的执行过程
迪丽瓦拉
2024-03-26 17:47:33
0

分享聚宽量化交易执行选股策略的执行过程:

首先就是需要用不同的函数处理不同的数据,比如上市数据,要用run_query()函数处理,财务与估值数据要用get_fundamentals()函数处理。以及即使用同一个函数处理,参数也会相互影响。

其中securities为股票(单只或者列表),factors(单个或者列表),开始结束日期,count为截止日期前的数据数量,与start_date二选一

比如想选今天的估值数据,要用get_fundamentals(query, date=datetime.today())获取。

另外返回的数据量也有限制,如果要获取所有数据可能需要offset。

以下是代码示例:

security = list(get_all_securities(types=['stock'], date=None).index)
 
# 过滤去年亏损的股票以及估值过高超过100倍PE的股票
q = query(
    valuation.code,
    valuation.day,
    valuation.pe_ratio,
    valuation.ps_ratio,
    valuation.pb_ratio,
    valuation.market_cap
).filter(
    valuation.code.in_(security),
    valuation.pe_ratio > 5,
    valuation.pe_ratio < 100,
    valuation.market_cap > 10
    
).order_by(valuation.market_cap.desc())
 
df_valuation = get_fundamentals(q, date='2022-06-20').set_index('code')
 
# 过滤掉市值最大的前10%和最小的后10%的股票,这样可过滤掉退市股票以及市值过小的股票
df_valuation = df_valuation.iloc[int(len(df_valuation)/10):int(len(df_valuation)-len(df_valuation)/10), :]

之所以首先处理估值数据,是为了防止获取数据不能超过run_query()函数不能超过4000。这里去掉前10%市值股票是为了用中小市值策略,去掉后10%的股票是为了过滤退市股票,以及流动性不足的股票,那接下来就是针对已经筛选的股票进行下一步筛选。

其实这些功能,一些股票量化交易接口也可以实现,还无需通过复杂的代码流程,因为已经有专业的工程人员设计完成,直接使用更加方便,也可以到这https://gitee.com/metatradeapi或联系下方qq名片了解更多。

相关内容