采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问,如果股票池中有2只股票,如何查询购买第二只股票的可用金额?我写的代码报错,不知应该如何修改,还请指教!谢谢
老师你好,你给的代码如下: def initialize(context): g.security = "000001.XSHE" def handle_data(context, data): # 输出账户总资产 log.info(context.portfolio.total_value) # 输出持仓额 log.info(context.portfolio.positions_value) # 输出今天日期 log.info(context.current_dt.day) # A月B日就输出B # 总权益的累计收益 log.info(context.portfolio.returns) # 获取仓位subportfolios[0]的可用资金 log.info(context.subportfolios[0].available_cash) 以上是有且仅有一只股票时,使用subportfolios的代码。如果我现在有2只股票,我想查询第二只股票的available_cash,怎么写呢? 于是,我就写成如下: def initialize(context): set_universe =[ '000001.XSHE','000004.XSHE'] def handle_data(context, data): # 输出账户总资产 log.info(context.portfolio.total_value) # 输出持仓额 log.info(context.portfolio.positions_value) # 输出今天日期 log.info(context.current_dt.day) # A月B日就输出B # 总权益的累计收益 log.info(context.portfolio.returns) # 获取仓位subportfolios[1]的可用资金 log.info(context.subportfolios[1].available_cash) 但是报错,不知该如何完善,谢谢!
老师你好,这是你写的代码: def initialize(context): g.security = "000001.XSHE" def handle_data(context, data): # 输出账户总资产 log.info(context.portfolio.total_value) # 输出持仓额 log.info(context.portfolio.positions_value) # 输出今天日期 log.info(context.current_dt.day) # A月B日就输出B # 总权益的累计收益 log.info(context.portfolio.returns) # 获取仓位subportfolios[0]的可用资金 log.info(context.subportfolios[0].available_cash) 以上为有且仅有一只股票时,查询可用资金的代码。如果现在有2只股票,我想查询第二只股票的可用资金该如何操作呢。于是,我写代码如下: def initialize(context): set_universe =[ '000001.XSHE','000004.XSHE'] def handle_data(context, data): # 输出账户总资产 log.info(context.portfolio.total_value) # 输出持仓额 log.info(context.portfolio.positions_value) # 输出今天日期 log.info(context.current_dt.day) # A月B日就输出B # 总权益的累计收益 log.info(context.portfolio.returns) # 获取仓位subportfolios[1]的可用资金 log.info(context.subportfolios[1].available_cash) 但是报错,不知道该如何完善呢?谢谢!
同学,你可能没有理解subportfolio--子账户信息这个对象的意义。 默认情况只有一个子账户!!! 子账户信息的业务意义是你购买股票的账户信息,包含里面的账户类型,累计出入金,可用资金,总资产,多单仓位,空单仓位等。它和股票池中的股票数量没有直接联系。 如果你仅仅只想查询账户可用资金,还是 log.info(context.subportfolios[0].available_cash) 如果你想查询可用买卖股票的持仓信息,需要采用long_positions多单仓位以及position对象,示例如下: long_positions_dict = context.subportfolios[0].long_positions for position in list(long_positions_dict.values()): print("标的:{0},总仓位:{1},标的价值:{2}".format(position.security, position.total_amount, position.value)) print("持仓价值:{0}".format(context.subportfolios[0].positions_value)) print("总资产:{0}".format(context.subportfolios[0].total_value))
登录后可查看更多问答,登录/注册
带你走进前景可观的金融量化开发
699 8
414 6
472 5
534 5
452 5