第一个策略-买入&持有

万事开头难,这是一个最简单的策略:在回测开始的第一天买入资金量的100%的平安银行并且一直持有。

  1. # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
  2. def init(context):
  3. logger.info("init")
  4. context.s1 = "000001.XSHE"
  5. update_universe(context.s1)
  6. # 是否已发送了order
  7. context.fired = False
  8. context.cnt = 1
  9.  
  10.  
  11. def before_trading(context):
  12. logger.info("Before Trading", context.cnt)
  13. context.cnt += 1
  14.  
  15.  
  16. # 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
  17. def handle_bar(context, bar_dict):
  18. context.cnt += 1
  19. logger.info("handle_bar", context.cnt)
  20. # 开始编写你的主要的算法逻辑
  21.  
  22. # bar_dict[order_book_id] 可以拿到某个证券的bar信息
  23. # context.portfolio 可以拿到现在的投资组合状态信息
  24.  
  25. # 使用order_shares(id_or_ins, amount)方法进行落单
  26.  
  27. # TODO: 开始编写你的算法吧!
  28. if not context.fired:
  29. # order_percent并且传入1代表买入该股票并且使其占有投资组合的100%
  30. order_percent(context.s1, 1)
  31. context.fired = True