如何用QA实现多个股票相互比较,择优买入的回测方法?而不仅仅是针对某单一品种。
发布于 3 个月前 作者 uglylemon 274 次浏览 来自 问答

例如如下需求: #沪深300 399300 #中证500 000905 #创业板指 399006 #【买入条件】(两个条件全部满足才买入) #1、近N个交易日涨幅排名第一(不管涨幅的正负)。 #2、当前价大于近M个交易日均线。

#【卖出条件】(两个条件满足一个就卖出) #1、近N个交易日涨幅排名不是第一。 #2、当前价小于近M个交易日均线

5 回复

对于股票池进行选股呀 这个不难的

@yutiansut 有股票池的回测代码参考一下吗

最近刚实现择优买入 #选股 def select_stock(DATA,end):
code_list=QA.QA_fetch_stock_list_adv().code.tolist() buy_list=[] for code in code_list : #data=QA.QA_fetch_stock_day_adv(code, ‘2017-06-01’, end) try: data=DATA.selects(code, ‘2017-01-01’,end) except: #print(code,“当前没有数据,跳过”) continue if data is None : continue else : df=data.to_qfq().data #计算你的指标 #1、近N个交易日涨幅排名第一(不管涨幅的正负)。 #2、当前价大于近M个交易日均线。 if 当前价大于近M个交易日均线 : buy_list.append([code,近N个交易日涨幅]) df_sort=pd.DataFrame(buy_list,columns=[‘code’,‘近N个交易日涨幅’]) df_s=df_sort.sort_values([‘近N个交易日涨幅’],ascending=[0]) df_s=df_s.reset_index(drop=True) print(“已排序股池:”) print(df_s)
return list(df_s[‘code’])[0]

复制过来缩进没有了,将就着看看

回到顶部