聚宽交易平台

聚宽交易平台——实现循环、多股票策略

利用list数据类型存储多个股票

  def initialize(context):
      run_daily(period,time='every_bar')
      g.security1 = '000001.XSHE'
      g.security2 = '000002.XSHE'
  def period(context):
      order(g.security1, 100)
      order(g.security2, 100)

简单多股票策略

  def initialize(context):
      run_daily(period,time='every_bar')
      # 把两个股票代码作为list存入g.security中
      g.security = ['000001.XSHE','000002.XSHE']

  def period(context):
      # 每个股票买100股
      for stk in g.security:
          order(stk,100)

利用股票现价以及自己的持仓成本实现多股票策略

 def initialize(context):
      run_daily(period,time='every_bar')
      # 把两个股票代码作为list存入g.security中
      g.security = ['000001.XSHE','000002.XSHE']

  def period(context):
      for stk in g.security:
          order(stk,100)
          # 获得股票持仓成本
          cost=context.portfolio.positions[stk].avg_cost
          # 获得股票现价
          price=context.portfolio.positions[stk].price
          # 计算收益率
          ret=price/cost-1
          # 如果收益率小于-0.01,即亏损达到1%则卖出股票,幅度可以自己调,一般10%
          if ret<-0.01:
              order_target(stk,0)
              print('触发止损')

获取典型常用数据

获取指数成分股

-获取指数成分股需要用到的API为get_index_stocks
聚宽交易平台_第1张图片
获取所有沪深300的股票

#获取所有沪深300股票
stocks = get_index_stocks('000300.XSHG')
log.info(stocks)
  # 获取20180301时,上证50指数(000016.XSHG)成分股
  t=get_index_stocks("000016.XSHG","2018-03-01")
  print(t[0])
  print(t)

  # 打印日志如下。股票代码在list中被打印出来前面会带有的u代表是对字符串进行unicode编码(略复杂,不懂没关系),只是显示效果,单独打印t[0]时就没有u。

  # 600000.XSHG
  # [u'600000.XSHG', u'600016.XSHG', u'600019.XSHG', u'600028.XSHG', u'600029.XSHG', u'600030.XSHG', u'600036.XSHG', u'600048.XSHG', u'600050.XSHG', u'600104.XSHG', u'600111.XSHG', u'600309.XSHG', u'600340.XSHG', u'600518.XSHG', u'600519.XSHG', u'600547.XSHG', u'600606.XSHG', u'600837.XSHG', u'600887.XSHG', u'600919.XSHG', u'600958.XSHG', u'600999.XSHG', u'601006.XSHG', u'601088.XSHG', u'601166.XSHG', u'601169.XSHG', u'601186.XSHG', u'601211.XSHG', u'601229.XSHG', u'601288.XSHG', u'601318.XSHG', u'601328.XSHG', u'601336.XSHG', u'601390.XSHG', u'601398.XSHG', u'601601.XSHG', u'601628.XSHG', u'601668.XSHG', u'601669.XSHG', u'601688.XSHG', u'601766.XSHG', u'601800.XSHG', u'601818.XSHG', u'601857.XSHG', u'601878.XSHG', u'601881.XSHG', u'601985.XSHG', u'601988.XSHG', u'601989.XSHG', u'603993.XSHG']

获取股票行情数据

  • 此处的股票行情数据指SecurityUnitData里面的所有基本属性,以下列举类常用字段,详情请看文档。
  • open: 时间段开始时价格
  • close: 时间段结束时价格
  • low: 最低价
  • high: 最高价
  • volume: 成交的股票数量
  • money: 成交的金额
  • factor: 前复权因子
  • avg: 这段时间的平均价
  • pre_close: 前一个单位时间结束时的价格
  • paused: 这只股票是否停牌,是则为1,否则为0
  • 聚宽交易平台_第2张图片
    利用history实现历史记录的查找
  # 例子 df=True,返回dataframe类型
  w=history(count=3, field='money', security_list=['000001.XSHE','000002.XSHE'])
  print(w)

  # 结果如下:
  #              000001.XSHE   000002.XSHE
  # 2016-08-29  5.322954e+08  1.796321e+09
  # 2016-08-30  5.618541e+08  2.072873e+09
  # 2016-08-31  4.638758e+08  5.748581e+09

  # 例子 df=False,返回dict类型
  w=history(count=3, field='money', security_list=['000001.XSHE','000002.XSHE'],df=False)
  print(w)

  # 结果如下:
  # {'000001.XSHE': array([  5.32295362e+08,   5.61854066e+08,   4.63875763e+08]), '000002.XSHE': array([  1.79632055e+09,   2.07287325e+09,   5.74858107e+09])}
  • attribute_history
  • 聚宽交易平台_第3张图片
  • 只能获取单独一个股票的数据,但可以同时获得多个字段的数据。如获得 平安银行这一只股票,前3天的交易额,交易量,最高价,最低价等。
  • 默认跳过不交易日期,由skip_paused参数控制。

你可能感兴趣的:(python,量化交易)