「量化投资」指数增强(股票)

作者:股票研究者 时间:2020-03-16 21:40 来源:股票学习 关键字:量化投资 人已围观

导读:近期朋友私信想了解关于“量化投资”的股票知识,下面小编就通过“指数增强(股票)”来讲解这一股票知识内容,下面就来进行简要的介绍,1.# coding=utf-82.from__future__ imp

本文有1206个文字,大小约为4KB,预计阅读时间4分钟

指数增强(股票)

1.# coding=utf-8

2.from__future__ importprint_function,absolute_import,unicode_literals

3.importnumpy asnp

4.fromgm.api import*

5.frompandas importDataFrame

6.

7.'''

8.本策略以0.8为初始权重跟踪指数标的沪深300中权重大于0.35%的成份股.

9.个股所占的百分比为(0.8*成份股权重)*100%.然后根据个股是否:

10.1.连续上涨5天 2.连续下跌5天

11.来判定个股是否为强势股/弱势股,并对其把权重由0.8调至1.0或0.6

12.回测时间为:2017-07-01 08:50:00到2017-10-01 17:00:00

13.'''

14.

15.

16.definit(context):

17.# 资产配置的初始权重,配比为0.6-0.8-1.0

18.context.ratio =0.8

19.# 获取沪深300当时的成份股和相关数据

20.stock300 =get_history_constituents(index='SHSE.000300',start_date='2017-06-30',end_date='2017-06-30')[0][

21.'constituents']

22.stock300_symbol =[]

23.stock300_weight =[]

24.

25.forkey instock300:

26.# 保留权重大于0.35%的成份股

27.if(stock300[key]/100)>0.0035:

28.stock300_symbol.append(key)

29.stock300_weight.append(stock300[key]/100)

30.

31.context.stock300 =DataFrame([stock300_weight],columns=stock300_symbol,index=['weight']).T

32.print('选择的成分股权重总和为: ',np.sum(stock300_weight))

33.subscribe(symbols=stock300_symbol,frequency='1d',count=5,wait_group=True)

34.

35.

36.defon_bar(context,bars):

37.# 若没有仓位则按照初始权重开仓

38.forbar inbars:

39.symbol =bar['symbol']

40.position =context.account().position(symbol=symbol,side=PositionSide_Long)

41.ifnotposition:

42.buy_percent =context.stock300['weight'][symbol]*context.ratio

43.order_target_percent(symbol=symbol,percent=buy_percent,order_type=OrderType_Market,

44.position_side=PositionSide_Long)

45.print(symbol,'以市价单开多仓至仓位:',buy_percent)

46.else:

47.# 获取过去5天的价格数据,若连续上涨则为强势股,权重+0.2;若连续下跌则为弱势股,权重-0.2

48.recent_data =context.data(symbol=symbol,frequency='1d',count=5,fields='close')['close'].tolist()

49.ifall(np.diff(recent_data)>0):

50.buy_percent =context.stock300['weight'][symbol]*(context.ratio +0.2)

51.order_target_percent(symbol=symbol,percent=buy_percent,order_type=OrderType_Market,

52.position_side=PositionSide_Long)

53.print('强势股',symbol,'以市价单调多仓至仓位:',buy_percent)

54.elifall(np.diff(recent_data)<0):

55.buy_percent =context.stock300['weight'][symbol]*(context.ratio -0.2)

56.order_target_percent(symbol=symbol,percent=buy_percent,order_type=OrderType_Market,

57.position_side=PositionSide_Long)

58.print('弱势股',symbol,'以市价单调多仓至仓位:',buy_percent)

59.

60.

61.if__name__ =='__main__':

62.'''

63.strategy_id策略ID,由系统生成

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

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

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

67.backtest_start_time回测开始时间

68.backtest_end_time回测结束时间

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

70.backtest_initial_cash回测初始资金

71.backtest_commission_ratio回测佣金比例

72.backtest_slippage_ratio回测滑点比例

73.'''

74.run(strategy_id='strategy_id',

75.filename='main.py',

76.mode=MODE_BACKTEST,

77.token='token_id',

78.backtest_start_time='2017-07-01 08:50:00',

79.backtest_end_time='2017-10-01 17:00:00',

80.backtest_adjust=ADJUST_PREV,

81.backtest_initial_cash=10000000,

82.backtest_commission_ratio=0.0001,

83.backtest_slippage_ratio=0.0001)

指数增强(股票)

指数增强(股票)

本文主要由信用金融网小编通过“量化投资”了解到关于“指数增强(股票)”的最新股票知识,希望以上内容对你有帮助,如果想了解更多股票类的知识,敬请关注信用股票金融学习网。
「量化投资」指数增强(股票)相关推荐:
  • 「量化投资」什么是量化投资?
  • 「量化投资」多因子选股(股票)
  • 「量化投资」行业轮动(股票)