【学习纠错帖】Python机器学习与量化交易_市值alpha因子选股

学习视频来源B站:[link] https://www.bilibili.com/video/av55456917?t=566&p=17
Python机器学习与量化交易

——————————————————

照着视频码出来的原代码是这样的:

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
# 在HS300,选出市值比较小的10只股票。


# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    context.hs300 = index_components("000300.XSHG")

# before_trading此函数会在每天交易开始前被调用,当天只会被调用一次
def before_trading(context):
    # 获取过滤的股票
    q = query(
        fundamentals.eod_derivative_indicator.market_cap
        ).order_by(
            fundamentals.eod_derivative_indicator.market_cap
            ).filter(
                fundamentals.stockcode.in_(context.hs300)
                ).limit(20)

    fund = get_fundamentals()

    # 获得10只股票的名字
    context.stock_list = fund.T.index


# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):
    # # 开始编写你的主要的算法逻辑
    # # bar_dict[order_book_id] 可以拿到某个证券的bar信息
    # # context.portfolio 可以拿到现在总的投资组合信息
    # # TODO: 开始编写你的算法吧!


    # 卖出
    # 去positions里面获取仓位
    for stock in context.portfolio.positions.keys():
        if stock not in context.stock_list:
            order_target_percent(stock,0)

    # 买入
    for stock in context.stock_list:
        order_target_percent(stock,1.0/20)



# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass

“编译策略”运行,报错(下图):
在这里插入图片描述
提示line26,就去看了下。
发现前面定义了 q = query(…),却没赋值进 fund。所以,把

fund = get_fundamentals()

改成了

fund = get_fundamentals(q)

再编译一次。这次就编译出来了(下图)。
在这里插入图片描述
比较顺利。完。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值