行業(yè)輪動策略(Python)_第1頁
行業(yè)輪動策略(Python)_第2頁
行業(yè)輪動策略(Python)_第3頁
行業(yè)輪動策略(Python)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

行業(yè)輪動策略(Python版)本策略是一種基于行業(yè)輪動的股票交易策略,旨在通過捕捉不同行業(yè)指數(shù)的相對強(qiáng)弱,實(shí)現(xiàn)投資收益的最大化。策略的核心邏輯在于定期評估一組預(yù)定義行業(yè)指數(shù)的歷史收益率,并根據(jù)收益率表現(xiàn)選擇最優(yōu)行業(yè),進(jìn)而配置該行業(yè)市值最大的幾只股票。策略邏輯1.**定期評估**:策略設(shè)定為每月第一個交易日的特定時間(09:40)執(zhí)行一次評估任務(wù)。這一設(shè)定確保了策略能夠及時捕捉市場變化,同時避免了頻繁交易帶來的成本。2.**行業(yè)指數(shù)收益率計(jì)算**:在每次評估時,策略會計(jì)算一組預(yù)定義行業(yè)指數(shù)在過去20個交易日的收益率。這些行業(yè)指數(shù)涵蓋了多個重要領(lǐng)域,如工業(yè)、材料、可選消費(fèi)等,從而確保策略的全面性和代表性。3.**選擇最優(yōu)行業(yè)**:通過比較各行業(yè)指數(shù)的收益率,策略會選擇收益率最高的一個作為最優(yōu)行業(yè)。這一選擇基于市場趨勢理論,即強(qiáng)勢行業(yè)在未來一段時間內(nèi)有望繼續(xù)保持強(qiáng)勢。4.**獲取并配置成份股**:一旦確定了最優(yōu)行業(yè),策略會獲取該行業(yè)指數(shù)成份股的市值數(shù)據(jù),并按照市值大小進(jìn)行排序。隨后,策略會選擇市值最大的5只股票進(jìn)行配置。這一做法旨在集中投資于行業(yè)內(nèi)最具代表性的優(yōu)質(zhì)企業(yè)。5.**動態(tài)調(diào)整倉位**:在配置股票時,策略會根據(jù)設(shè)定的最大下單資金比例(如0.8)來計(jì)算每只股票的持倉比例。同時,策略還會動態(tài)調(diào)整倉位,平掉不在標(biāo)的池中的股票,以確保倉位的集中和有效。策略特點(diǎn)1.**行業(yè)輪動**:本策略充分利用了行業(yè)輪動的原理,通過捕捉不同行業(yè)的相對強(qiáng)弱來實(shí)現(xiàn)收益。這種策略在市場存在明顯行業(yè)輪動現(xiàn)象時尤為有效。2.**市值加權(quán)配置**:在選擇成份股時,策略采用了市值加權(quán)的配置方法。這種方法能夠確保投資組合更加穩(wěn)健,因?yàn)槭兄荡蟮墓就ǔ>哂懈鼜?qiáng)的盈利能力和抗風(fēng)險能力。3.**動態(tài)調(diào)整**:策略會根據(jù)市場變化動態(tài)調(diào)整倉位,這有助于捕捉市場機(jī)會并控制風(fēng)險。同時,策略還設(shè)定了最大下單資金比例,以避免過度交易帶來的潛在損失。4.**定期評估**:通過定期評估行業(yè)指數(shù)的收益率,策略能夠及時捕捉市場變化并作出相應(yīng)調(diào)整。這有助于提高策略的靈活性和適應(yīng)性。5.**全面覆蓋**:策略涵蓋多個重要行業(yè)領(lǐng)域,確保了投資組合的多樣性和全面性。這有助于降低單一行業(yè)風(fēng)險對整體投資組合的影響。本策略是一種基于行業(yè)輪動的股票交易策略,通過定期評估行業(yè)指數(shù)收益率、選擇最優(yōu)行業(yè)并配置其市值最大的成份股來實(shí)現(xiàn)投資收益最大化。策略具有行業(yè)輪動、市值加權(quán)配置、動態(tài)調(diào)整、定期評估和全面覆蓋等特點(diǎn)。行業(yè)輪動(股票)行業(yè)輪動是利用市場趨勢獲利的一種主動交易策略,其本質(zhì)是利用不同投資品種強(qiáng)勢時間的錯位對行業(yè)品種進(jìn)行切換以達(dá)到投資收益最大化的目的。策略代碼:#coding=utf-8from__future__importprint_function,absolute_import,unicode_literalsimportnumpyasnpfromgm.apiimport*'''本策略每隔1個月定時觸發(fā)計(jì)算SHSE.000910.SHSE.000909.SHSE.000911.SHSE.000912.SHSE.000913.SHSE.000914(300工業(yè).300材料.300可選.300消費(fèi).300醫(yī)藥.300金融)這幾個行業(yè)指數(shù)過去20個交易日的收益率并選取了收益率最高的指數(shù)的成份股獲取并獲取了他們的市值數(shù)據(jù),隨后把倉位調(diào)整至市值最大的5只股票上回測數(shù)據(jù)為: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定時執(zhí)行algo任務(wù)

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

#用于篩選的行業(yè)指數(shù)

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

#用于統(tǒng)計(jì)數(shù)據(jù)的天數(shù)

context.date=20

#最大下單資金比例

context.ratio=0.8defalgo(context):

#獲取當(dāng)天的日期

today=context.now

#獲取上一個交易日

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

return_index=[]

#獲取并計(jì)算行業(yè)指數(shù)收益率

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)

#獲取指定數(shù)內(nèi)收益率表現(xiàn)最好的行業(yè)

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

print('最佳行業(yè)指數(shù)是:',sector)

#獲取最佳行業(yè)指數(shù)成份股

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

#獲取當(dāng)天有交易的股票

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

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

#獲取最佳行業(yè)指數(shù)成份股的市值,從大到小排序并選取市值最大的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']

#計(jì)算權(quán)重

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

#獲取當(dāng)前所有倉位

positions=context.account().positions()

#如標(biāo)的池有倉位,平不在標(biāo)的池的倉位

forpositioninpositions:

symbol=position['symbol']

ifsymbolnotinfin.index:

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

position_side=PositionSide_Long)

print('市價單平不在標(biāo)的池的',symbol)

#對標(biāo)的池進(jìn)行操作

forsymbolinfin.index:

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

position_side=PositionSide_Long)

print(symbol,'以市價單調(diào)整至倉位',percent)if__name__=='__main__':

'''

strategy_id策略ID,由系統(tǒng)生成

filename文件名,請與本文件名保持一致

mode實(shí)時模式:MODE_LIVE回測模式:MODE_BACKTEST

token綁定計(jì)算機(jī)的ID,可在系統(tǒng)設(shè)置-密鑰管理中生成

backtest_start_time回測開始時間

backtest_end_time回測結(jié)束時間

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='strategy_id',

filename='main.py',

mode=MODE_BACKTEST,

token='token_id',

backtest_start

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論