什么是指數(shù)增強(qiáng)?
創(chuàng)新互聯(lián)是一家集網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、網(wǎng)站頁面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站建設(shè)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。指數(shù)增強(qiáng)策略并不是被動的跟蹤某個(gè)指數(shù)波動,而是采用量化增強(qiáng)模型,利用多因子alpha模型預(yù)測股票超額回報(bào),同時(shí)力求進(jìn)行有效的風(fēng)險(xiǎn)控制、降低交易成本、優(yōu)化投資組合。指數(shù)增強(qiáng)策略不會對跟蹤標(biāo)的成分股進(jìn)行完全復(fù)制,而是會對部分看好的股票增加權(quán)重,不看好的股票則減少權(quán)重,甚至完全去掉。通過對交易成本模型的不斷監(jiān)測,盡可能讓交易成本降到最小。綜合來看,就是既做到超額收益,又控制主動風(fēng)險(xiǎn)。
策略實(shí)現(xiàn)(基于掘金量化平臺)
策略思想
? 本策略以0.8為初始權(quán)重跟蹤指數(shù)標(biāo)的滬深300中權(quán)重大于0.35%的成份股。
? 個(gè)股所占的百分比為:(0.8 X 成份股權(quán)重) /選擇的成分股權(quán)重總和 X 100%。
? 然后根據(jù)個(gè)股是否連續(xù)上漲5天;連續(xù)下跌5天,來判定個(gè)股是否為強(qiáng)勢股/弱勢股,并對其把權(quán)重由0.8調(diào)至1.0或0.6
策略主要步驟實(shí)現(xiàn)
獲取滬深300成分股及信息
stock300 = get_history_constituents(index='SHSE.000300',
start_date=last_day,end_date=last_day)[0]['constituents']
獲取指數(shù)成分股可調(diào)用函數(shù)get_history_constituents或者get_constituents,返回值類型為list[dict],字典的鍵為股票代碼,值為所占權(quán)重。這里調(diào)用get_history_constituents是因?yàn)樵倩販y時(shí)需要獲取上一交易日的成分股,而get_constituents只能獲取最新的成分股:
? index需要設(shè)置獲取指數(shù)的代碼。
? start_date和end_date需設(shè)置獲取成分股的開始與結(jié)束日期。
訂閱數(shù)據(jù)
subscribe(symbols=stock300_symbol, frequency='1d', count=5, wait_group=True)
訂閱數(shù)據(jù)需要在定義init函數(shù)里面設(shè)置,并調(diào)用subscribe函數(shù),這里注意,我們需要通過計(jì)算前三十根bars來作為開平倉的標(biāo)準(zhǔn),并在當(dāng)前bar上做出開平倉操作,所以需要獲取31根bar:
? symbols 需要設(shè)置訂閱的標(biāo)的代碼。
? frequency需設(shè)置訂閱數(shù)據(jù)的周期級別,這里設(shè)置1d 表示以一天為周期。
? count需要設(shè)置獲取的bar的數(shù)量
數(shù)據(jù)獲取
recent_data = context.data(symbol=symbol, frequency='1d', count=5, fields='close')['close'].tolist()
訂閱數(shù)據(jù)之后,需要獲取已經(jīng)訂閱的數(shù)據(jù)來進(jìn)行操作,這時(shí)需調(diào)用context.data函數(shù):
? symbols 需要設(shè)置訂閱的標(biāo)的代碼。
? frequency需設(shè)置訂閱數(shù)據(jù)的周期級別,這里設(shè)置1d表示以一天為周期。
? count需要設(shè)置獲取的bar的數(shù)量
? fields需要設(shè)置返回值的種類
獲取持倉信息
position = context.account().position(symbol=symbol, side=PositionSide_Long)
在判斷平倉或者加倉條件時(shí),需要獲取持倉信息,這就需要調(diào)用context.account().position函數(shù):
? symbols 需要設(shè)置訂閱的標(biāo)的代碼。
? side需要設(shè)置持倉方向,有PositionSide_Long和PositionSide_Short兩個(gè)選擇。
回測報(bào)告
分析
我們選取了2017年10月至2017年12月作為回測周期,可以看出:
? 勝率(具有盈利的平倉次數(shù)與總平倉次數(shù)之比)達(dá)到了66%。
? 卡瑪比率(年化收益率與歷史大回撤之比)是使用大回撤率來衡量風(fēng)險(xiǎn)。采用大回撤率來衡量風(fēng)險(xiǎn),關(guān)注的是最極端的情況??ì敱嚷试礁弑硎静呗猿惺苊繂挝淮髶p失獲得的報(bào)酬越高。在這里卡瑪比率達(dá)到了6.7。
? 夏普比率(年化收益率減無風(fēng)險(xiǎn)收益率的差收益波動率之比)達(dá)到2.77。
? 策略收益曲線與滬深三百指數(shù)具有很大相關(guān)性,指數(shù)增強(qiáng)策略的關(guān)鍵點(diǎn)在于選出成分股中優(yōu)質(zhì)的股票,以達(dá)到增強(qiáng)指數(shù)收益的目的。
附:指數(shù)增強(qiáng)策略源碼
# coding=utf-8
from __future__ import print_function, absolute_import, unicode_literals
import numpy as np
from gm.api import *
from pandas import DataFrame
'''
本策略以0.8為初始權(quán)重跟蹤指數(shù)標(biāo)的滬深300中權(quán)重大于0.35%的成份股.
個(gè)股所占的百分比為(0.8*成份股權(quán)重)*100%.然后根據(jù)個(gè)股是否
連續(xù)上漲5天;連續(xù)下跌5天
來判定個(gè)股是否為強(qiáng)勢股/弱勢股,并對其把權(quán)重由0.8調(diào)至1.0或0.6
回測數(shù)據(jù)為:SHSE.000300中權(quán)重大于0.35%的成份股
回測時(shí)間為:2017-07-01 08:50:00到2017-10-01 17:00:00
'''
def init(context):
# 資產(chǎn)配置的初始權(quán)重,配比為0.6-0.8-1.0
context.ratio = 0.8
# 獲取滬深300當(dāng)時(shí)的成份股和相關(guān)數(shù)據(jù)
stock300 = get_history_constituents(index='SHSE.000300', start_date='2017-06-30', end_date='2017-06-30')[0][
'constituents']
stock300_symbol = []
stock300_weight = []
for key in stock300:
# 保留權(quán)重大于0.35%的成份股
if (stock300[key] / 100) > 0.0035:
stock300_symbol.append(key)
stock300_weight.append(stock300[key] / 100)
context.stock300 = DataFrame([stock300_weight], columns=stock300_symbol, index=['weight']).T
context.sum_weight = np.sum(stock300_weight)
print('選擇的成分股權(quán)重總和為: ', context.sum_weight)
subscribe(symbols=stock300_symbol, frequency='1d', count=5, wait_group=True)
def on_bar(context, bars):
# 若沒有倉位則按照初始權(quán)重開倉
for bar in bars:
symbol = bar['symbol']
position = context.account().position(symbol=symbol, side=PositionSide_Long)
if not position:
buy_percent = context.stock300['weight'][symbol] / context.sum_weight * context.ratio
order_target_percent(symbol=symbol, percent=buy_percent, order_type=OrderType_Market,
position_side=PositionSide_Long)
print(symbol, '以市價(jià)單開多倉至倉位:', buy_percent * 100)????
else:?無錫婦科醫(yī)院 http://www.wxbhnkyy39.com/
# 獲取過去5天的價(jià)格數(shù)據(jù),若連續(xù)上漲則為強(qiáng)勢股,權(quán)重+0.2;若連續(xù)下跌則為弱勢股,權(quán)重-0.2
recent_data = context.data(symbol=symbol, frequency='1d', count=5, fields='close')['close'].tolist()
if all(np.diff(recent_data) > 0):
buy_percent = context.stock300['weight'][symbol] / context.sum_weight * (context.ratio + 0.2)
order_target_percent(symbol=symbol, percent=buy_percent, order_type=OrderType_Market,
position_side=PositionSide_Long)
print('強(qiáng)勢股', symbol, '以市價(jià)單調(diào)多倉至倉位:', buy_percent * 100)
elif all(np.diff(recent_data) < 0):
buy_percent = context.stock300['weight'][symbol] / context.sum_weight * (context.ratio - 0.2)
order_target_percent(symbol=symbol, percent=buy_percent, order_type=OrderType_Market,
position_side=PositionSide_Long)
print('弱勢股', symbol, '以市價(jià)單調(diào)多倉至倉位:', buy_percent * 100)
if __name__ == '__main__':
'''
本策略基于掘金量化交易平臺 網(wǎng)址:www.myquant.cn
strategy_id策略ID,由系統(tǒng)生成
filename文件名,請與本文件名保持一致
mode實(shí)時(shí)模式:MODE_LIVE回測模式:MODE_BACKTEST
token綁定計(jì)算機(jī)的ID,可在系統(tǒng)設(shè)置-密鑰管理中生成
backtest_start_time回測開始時(shí)間
backtest_end_time回測結(jié)束時(shí)間
backtest_adjust股票復(fù)權(quán)方式不復(fù)權(quán):ADJUST_NONE前復(fù)權(quán):ADJUST_PREV后復(fù)權(quán):ADJUST_POST
backtest_initial_cash回測初始資金
backtest_commission_ratio回測傭金比例
backtest_slippage_ratio回測滑點(diǎn)比例
'''
run(strategy_id='c722244f-eaa9-11e7-8618-9cd21ef04ea9',
filename='指數(shù)增強(qiáng).py',
mode=MODE_BACKTEST,
token='c395247a76e8a5caeee699d668d6f550213bc418',
backtest_start_time='2017-10-01 08:50:00',
backtest_end_time='2017-12-01 17:00:00',
backtest_adjust=ADJUST_PREV,
backtest_initial_cash=10000000,
backtest_commission_ratio=0.0001,
backtest_slippage_ratio=0.0001)
來源:掘金量化 , myquant.cn
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。