米筐量化交易API:这里
https://www.ricequant.com/doc/rqdata-institutional
https://www.ricequant.com/quant/#?tag=algorithm-ol&id=899857
【量化】4天学会python机器学习与量化交易-笔记1(p6~p10)
p11 案例:介绍
视频链接:案例:介绍
1,需求
- 选股:获取市盈率大于50且小于65,营业总收入前10的股票。
- 调仓:每日调仓,将所有资金平摊到这10个股票的购买策略,卖出时一次性卖出所有不符合条件的股票。
2,自己实现的(不知道是否正确)
def handle_bar(context,bar_dict):
q = query(
fundamentals.eod_derivative_indicator.pe_ratio,
fundamentals.income_statement.operating_revenue
).filter(
# 市盈率大于50且小于65
fundamentals.eod_derivative_indicator.pe_ratio>50,
fundamentals.eod_derivative_indicator.pe_ratio<65
).order_by(
# 营业总收入前10
fundamentals.income_statement.operating_revenue.desc()
).limit(10) # 取10支
# 每天获取符合条件的10支股票
fund = get_fundamentals(q)
# 先用变量存储昨天的
yesterday = context.stocks
# 获取今天的
today = fund.columns.values.tolist()
# context.stocks = today
# 要卖掉的:在yesterday中但不在today中
to_sell_stocks = [x for x in yesterday if x not in today ]
# 要买入的:在today中但不在yesterday中
to_buy_stocks = [y for y in today if y not in yesterday]
# 卖出
print("卖的:",to_sell_stocks)
print("买的:",to_buy_stocks)
print("====")
if len(to_sell_stocks)!=0:
percent1 = 1/len(to_sell_stocks