请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  数理科学 帖子:3353794 新帖:45

金融期货策略研究框架介绍及Demo演示

爱德华发表于:5 月 10 日 04:55回复(1)

值JoinQuant聚宽一周年生日之际,伴随着广大宽粉的期盼,我们推出了金融期货策略研究框架Beta版,现在面向全员进行公测。

主要功能:

  1. 提供股指期货的回测与模拟

  2. 可同时交易股指期货以及股票,提供各种风险指标

  3. 支持分账户操作:股票、股指期货分账户操作,完全无干扰

  4. 支持账户之间的资金转移功能,灵活调控每个账户的资金

  5. 提供持仓均价, 开仓均价,盯市浮盈, 平仓盈亏、保证金等其他期货软件上都有的数据

  6. 可自行设置交易手续费、平今仓手续费、保证金比例等

  7. 在保证金不足时,会强制平仓

  8. 交割日未卖出时,自动进行交割平仓

  9. 完全符合历史上股指期货的开盘、闭盘时间

  10. 实时更新保证金,并提供保证金预警功能,随时查看保证金的状态,避免因保证金不足导致的强制平仓

更多功能详见API

还有更多功能等你来发现,小伙伴们赶快来试用吧~~~

下面是一个简单的股指期货策略demo —— 期现套利:

股票现货市场和股指期货市场紧密相连,根据股指期货的制度设计,期货价格在合约到期日会与现货市场标的指数的价格相等。但实际行情中,期货指数价格常受多种因素影响而偏离其合理的理论价格,与现货指数之间的价格差距往往出现过大或过小的情况,一旦这种偏离出现,就会带来在期货市场和现货市场之间套利的机会,我们把这种跨越期市和现市同时进行交易的操作称之为期现套利

期现套利有两种类型:当现货指数被低估,某个交割月份的期货合约被高估时,投资者可以卖出该期货合约,同时根据指数权重买进成份股,建立套利头寸。当现货和期货价格差距趋于正常时,将期货合约平仓,同时卖出全部成份股,可以获得套利利润,这种策略称为正向基差套利

当现货指数被高估,某个交割月份的期货合约被低估时,如果允许融券,投资者可以买入该期货合约,同时按照指数权重融券卖空成份股,建立套利头寸。当现货和期货价格趋于正常时,同时平仓,获利了结,这是反向基差套利

期现套利的实质是对现货指数和期货指数的基差进行投机。基差的变动是可以分析和预测的,分析正确可以获利,即使分析失误套利的风险也远比单向投机的风险低。

因为A股市场没有办法做空,这里只是进行了正向基差套利,我们选择300ETF代替一揽子股票,进行指数跟踪。

策略基本思路:

  1. 当基差大于100则买入ETF,卖出股指期货;

  2. 当基差缩小至20内,则获利清仓;

金融期货相关函数¶

def get_stock_index_futrue_code(context,symbol,month='current_month'):'''    获取当天时间正在交易的股指期货合约。其中:    symbol:            'IF' #沪深300指数期货            'IC' #中证500股指期货            'IH' #上证50股指期货    month:            'current_month' #当月            'next_month'    #隔月            'next_quarter'  #下季            'skip_quarter'  #隔季    '''display_name_dict = {'IC':'中证500股指期货','IF':'沪深300指数期货','IH':'上证50股指期货'}month_dict = {'current_month':0, 'next_month':1, 'next_quarter':2, 'skip_quarter':3}display_name = display_name_dict[symbol]n = month_dict[month]dt = context.current_dt.date()a = get_all_securities(types=['futures'], date=dt)try:df = a[(a.display_name == display_name) & (a.start_date <= dt) & (a.end_date >= dt)]return df.index[n]except:return 'WARRING: 无此合约'def get_treasury_futrue_code(context,symbol,month='current'):'''    获取当天时间正在交易的国债期货合约。其中:    symbol:            'T' #10年期国债期货            'TF' #5年期国债期货    month:            'current' #最近期            'next'    #次近期            'skip'    #最远期    '''display_name_dict = {'T':'10年期国债期货','TF':'5年期国债期货'}month_dict = {'current':0, 'next':1, 'skip':2}display_name = display_name_dict[symbol]n = month_dict[month]dt = context.current_dt.date()a = get_all_securities(types=['futures'], date=dt)try:df = a[(a.display_name == display_name) & (a.start_date <= dt) & (a.end_date >= dt)]return df.index[n]except:return 'WARRING: 无此合约'def get_CCFX_end_date(fature_code):# 获取金融期货合约到期日return get_security_info(fature_code).end_date
 

全部回复

0/140

量化课程

    移动端课程