1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 分享聚宽量化交易执行选股策略的执行过程

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

时间:2023-05-19 01:35:48

相关推荐

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

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

首先就是需要用不同的函数处理不同的数据,比如上市数据,要用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='-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%的股票是为了过滤退市股票,以及流动性不足的股票,那接下来就是针对已经筛选的股票进行下一步筛选。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。