```
def initialize(context):
run_daily(period,time='every_bar')
# 代码:设定好要交易的股票数量stocksnum
g.stocksnum=5
def period(context):
# 获取全部股票数据,并转换为列表
allstocks=get_all_securities(date=context.current_dt).index.tolist()
# 获取全部股票数据中市值最小的前stocksnum个股票的财务数据
q=query(valuation.code).filter(valuation.code.in_(allstocks)).order_by(valuation.market_cap.asc()).limit(g.stocksnum)
mincapstocks=get_fundamentals(q)
# 在获取的财务数据中选取股票代码并转为列表
buylist=list(mincapstocks['code'])
# 将可用资金拆分成stocksnum份
position_per_stk1 = context.portfolio.available_cash/g.stocksnum
# 判断是否有持仓,没有持仓时则买入前stocksnum个最小市值的股票
if context.portfolio.positions_value == 0:
for i in buylist:
order_value(i,position_per_stk1)
# 有持仓时,逐个判断持仓股票是否是当天前stocksnum个市值最小的股票,是就保留,不是就卖出并记录卖出数量
else:
for a in context.portfolio.positions:
if a not in buylist:
order_target(a,0)
missnum=0
for x in buylist:
if x not in context.portfolio.positions:
missnum += 1
return missnum
moneypay=context.portfolio.available_cash/missnum
for ms in buylist:
if ms not in context.portfolio.positions:
order_value(ms,moneypay)
```
谁能告诉我为什么大片的日期都没有执行买入?我明明做了判断,只要buylist中的股票不在持仓中,就会执行买入,然而我看了持仓记录,根本没有持有5只股票的时候,此时就应该执行买入啊,及时买入失败也应该有下单记录才对啊,不懂,头大。
问题已解决,删掉return