聚宽量化交易学习笔记

量化交易过程

  1. 构思策略
  2. 设计程序执行方法
  3. 程序编码
  4. 回测
  5. 调试参数

策略的构成

  • 阿尔法模型
  • 风险控制模型
  • 交易成本模型
  • 执行模型

阿尔法模型:筛选/排序选取股票、择时入场、仓位与持仓调整。模型元素:交易标的、入场时机、仓位控制、退出时机。

风险控制模型:系统性风险,整体大盘崩溃风险控制;非系统性风险,个股止损。

 

聚宽API归类

取股票列表API

get_index_stocks

get_industry_stocks

get_concept_stocks

get_all_securities

 

取股票历史信息API

get_price 多属性属性

history  回测专用,单属性获取

attribute_hisroty 回测专用,多属性获取

全局data对象

get_security_info 单支股票信息

get_fundamentals

 

取股票当前回测信息API

get_current_data

 

下单API

order

order_target

order_value

order_target_value

 

#筛选掉停牌和ST股票

def filter_paused_and_st_stock(stock_list):
    current_data = get_current_data()
    return [stock for stock in stock_list if not current_data[stock].paused
    and not current_data[stock].is_st and 'ST' not in current_data[stock].
    name and '*' not in current_data[stock].name and '退' not in current_data[stock].name]

#筛选掉创业板股票

def filter_gem_stock(context, stock_list):
    return [stock for stock in stock_list if stock[0:3] != '300']

执行模型

#持仓股票与目标股票对比,计算出买入和卖出的股票列表

def filter_buy_and_sell_stock(holding_stock_list,stock_list):
    buy_stocks=[]
    sell_stocks=[]
    for stock in range(0,len(stock_list)):
        if stock_list[stock] not in holding_stock_list:
        buy_stocks.append(stock_list[stock])
    for stock in range(0,len(holding_stock_list)):
        if holding_stock_list[stock] not in stock_list:
        sell_stocks.append(holding_stock_list[stock])
    return (buy_stocks,sell_stocks)