行业轮动策略(Python)_第1页
行业轮动策略(Python)_第2页
行业轮动策略(Python)_第3页
行业轮动策略(Python)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

行业轮动策略(Python版)本策略是一种基于行业轮动的股票交易策略,旨在通过捕捉不同行业指数的相对强弱,实现投资收益的最大化。策略的核心逻辑在于定期评估一组预定义行业指数的历史收益率,并根据收益率表现选择最优行业,进而配置该行业市值最大的几只股票。策略逻辑1.**定期评估**:策略设定为每月第一个交易日的特定时间(09:40)执行一次评估任务。这一设定确保了策略能够及时捕捉市场变化,同时避免了频繁交易带来的成本。2.**行业指数收益率计算**:在每次评估时,策略会计算一组预定义行业指数在过去20个交易日的收益率。这些行业指数涵盖了多个重要领域,如工业、材料、可选消费等,从而确保策略的全面性和代表性。3.**选择最优行业**:通过比较各行业指数的收益率,策略会选择收益率最高的一个作为最优行业。这一选择基于市场趋势理论,即强势行业在未来一段时间内有望继续保持强势。4.**获取并配置成份股**:一旦确定了最优行业,策略会获取该行业指数成份股的市值数据,并按照市值大小进行排序。随后,策略会选择市值最大的5只股票进行配置。这一做法旨在集中投资于行业内最具代表性的优质企业。5.**动态调整仓位**:在配置股票时,策略会根据设定的最大下单资金比例(如0.8)来计算每只股票的持仓比例。同时,策略还会动态调整仓位,平掉不在标的池中的股票,以确保仓位的集中和有效。策略特点1.**行业轮动**:本策略充分利用了行业轮动的原理,通过捕捉不同行业的相对强弱来实现收益。这种策略在市场存在明显行业轮动现象时尤为有效。2.**市值加权配置**:在选择成份股时,策略采用了市值加权的配置方法。这种方法能够确保投资组合更加稳健,因为市值大的公司通常具有更强的盈利能力和抗风险能力。3.**动态调整**:策略会根据市场变化动态调整仓位,这有助于捕捉市场机会并控制风险。同时,策略还设定了最大下单资金比例,以避免过度交易带来的潜在损失。4.**定期评估**:通过定期评估行业指数的收益率,策略能够及时捕捉市场变化并作出相应调整。这有助于提高策略的灵活性和适应性。5.**全面覆盖**:策略涵盖多个重要行业领域,确保了投资组合的多样性和全面性。这有助于降低单一行业风险对整体投资组合的影响。本策略是一种基于行业轮动的股票交易策略,通过定期评估行业指数收益率、选择最优行业并配置其市值最大的成份股来实现投资收益最大化。策略具有行业轮动、市值加权配置、动态调整、定期评估和全面覆盖等特点。行业轮动(股票)行业轮动是利用市场趋势获利的一种主动交易策略,其本质是利用不同投资品种强势时间的错位对行业品种进行切换以达到投资收益最大化的目的。策略代码:#coding=utf-8from__future__importprint_function,absolute_import,unicode_literalsimportnumpyasnpfromgm.apiimport*'''本策略每隔1个月定时触发计算SHSE.000910.SHSE.000909.SHSE.000911.SHSE.000912.SHSE.000913.SHSE.000914(300工业.300材料.300可选.300消费.300医药.300金融)这几个行业指数过去20个交易日的收益率并选取了收益率最高的指数的成份股获取并获取了他们的市值数据,随后把仓位调整至市值最大的5只股票上回测数据为:SHSE.000910.SHSE.000909.SHSE.000911.SHSE.000912.SHSE.000913.SHSE.000914和他们的成份股回测时间为:2017-07-0108:00:00到2017-10-0116:00:00'''definit(context):

#每月第一个交易日的09:40定时执行algo任务

schedule(schedule_func=algo,date_rule='1m',time_rule='09:40:00')

#用于筛选的行业指数

context.index=['SHSE.000910','SHSE.000909','SHSE.000911','SHSE.000912','SHSE.000913','SHSE.000914']

#用于统计数据的天数

context.date=20

#最大下单资金比例

context.ratio=0.8defalgo(context):

#获取当天的日期

today=context.now

#获取上一个交易日

last_day=get_previous_trading_date(exchange='SHSE',date=today)

return_index=[]

#获取并计算行业指数收益率

foriincontext.index:

return_index_his=history_n(symbol=i,frequency='1d',count=context.date,fields='close,bob',

fill_missing='Last',adjust=ADJUST_PREV,end_time=last_day,df=True)

return_index_his=return_index_his['close'].values

return_index.append(return_index_his[-1]/return_index_his[0]-1)

#获取指定数内收益率表现最好的行业

sector=context.index[np.argmax(return_index)]

print('最佳行业指数是:',sector)

#获取最佳行业指数成份股

symbols=get_history_constituents(index=sector,start_date=last_day,end_date=last_day)[0]['constituents'].keys()

#获取当天有交易的股票

not_suspended_info=get_history_instruments(symbols=symbols,start_date=today,end_date=today)

not_suspended_symbols=[item['symbol']foriteminnot_suspended_infoifnotitem['is_suspended']]

#获取最佳行业指数成份股的市值,从大到小排序并选取市值最大的5只股票

fin=get_fundamentals(table='tq_sk_finindic',symbols=not_suspended_symbols,start_date=last_day,

end_date=last_day,limit=5,fields='NEGOTIABLEMV',order_by='-NEGOTIABLEMV',df=True)

fin.index=fin['symbol']

#计算权重

percent=1.0/len(fin.index)*context.ratio

#获取当前所有仓位

positions=context.account().positions()

#如标的池有仓位,平不在标的池的仓位

forpositioninpositions:

symbol=position['symbol']

ifsymbolnotinfin.index:

order_target_percent(symbol=symbol,percent=0,order_type=OrderType_Market,

position_side=PositionSide_Long)

print('市价单平不在标的池的',symbol)

#对标的池进行操作

forsymbolinfin.index:

order_target_percent(symbol=symbol,percent=percent,order_type=OrderType_Market,

position_side=PositionSide_Long)

print(symbol,'以市价单调整至仓位',percent)if__name__=='__main__':

'''

strategy_id策略ID,由系统生成

filename文件名,请与本文件名保持一致

mode实时模式:MODE_LIVE回测模式:MODE_BACKTEST

token绑定计算机的ID,可在系统设置-密钥管理中生成

backtest_start_time回测开始时间

backtest_end_time回测结束时间

backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POST

backtest_initial_cash回测初始资金

backtest_commission_ratio回测佣金比例

backtest_slippage_ratio回测滑点比例

'''

run(strategy_id='strategy_id',

filename='main.py',

mode=MODE_BACKTEST,

token='token_id',

backtest_start

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论