黃萬銘
(綿陽中學實驗學校,綿陽621900)
量化交易是指投資者利用計算機技術、金融工程建模等手段,將金融操作的策略加以定義和描述,并且嚴格按照所設定的規則去執行交易策略(買賣、價格、數量等)的自動交易方式,以協助投資決策。量化平臺基本采用“初始化函數→從平臺數據庫取出數據→每個周期執行調倉函數→回測完成→計算統計量→繪制曲線”的邏輯過程。
目前市面上比較流行的量化平臺有優礦、聚寬和米筐等;米筐支持Python3 和Java,而優礦和聚寬使用Python2;米筐和聚寬支持股票和金融期貨數據,優礦平臺提供股票、基金、衍生品等數據。
本策略設計采用百度公司投資的量化平臺——聚寬(JoinQuant),語言編程Python,設定一億元交易規模,最大持倉數100 只股票,模擬周期為2005~2018 年的中國股票市場。
擬以多頭趨勢回踩策略為主決策依據,實現一個全自動化量化交易系統,并進行關鍵參數優化;其思路是根據若干條均線呈現出的形態,判斷一支股票是否處于多頭強勢狀態,并抓住回調的時機低位買入;再進一步分析市場狀態、均線周期、買入均線和止損觸發條件等關鍵參數對量化策略的貢獻效果。
系統主要功能框架如圖1 所示,主要包含策略模型、牛熊判斷、參數設置、買入判斷、賣出判斷、計算統計、繪制曲線和平臺數據庫等8 個部分組成。
系統主要功能框架、流程圖和參數結構如圖1所示。

圖1 功能框架設計

圖2 系統主要流程圖

圖3 主要參數結構設計
(1)選定股票池,并選定一系列參數;
(2)一組均線天數[N1,N2,N3,…,Nk]:總數量k 限制,按照從小到大排列。當相應天數的移動均線是從大到小排列時,為多頭排列格局;
(3)趨勢天數T:當上面指定的移動均線在T 天內都處于多頭排列時,判斷價格處于多頭趨勢;
(4)回撤均線M:當前一天的最收盤價低于M 日均線時時判斷為回撤;
(5)持有股票上限num_stocks:同時最多持倉num_stocks 支股票。
(6)止損比例D 和止盈比例U:當股票價格高出買入價的U 倍,或低于買入價的D 倍時,賣出股票。
部分程序核心代碼如下:for security in in_trend_stocks:
#獲取歷史收盤價
past_prices=attribute_history(security,g.test_ma_length,'1d','close',skip_paused=True)
#計算均線
test_ma=sum(past_prices).iloc[0]/g.test_ma_length
#獲取站住均線數據
past_prices_2=attribute_history(security,g.stand_ma_length,'1d','close',skip_paused=True)
#計算均線
stand_ma=sum(past_prices_2).iloc[0]/g.stand_ma_length
#計算bias 基準線
past_prices_3=attribute_history(security,g.bias_ma_length,'1d','close',skip_paused=True)
bias_ma=sum(past_prices_3).iloc[0]/g.bias_ma_length
#獲取昨日信息
previous_history=attribute_history(security,1,'1d',['close','low'])
#昨日收盤價
current_price=previous_history['close'].iloc[0]
#昨日最低價
previous_low=previous_history['low'].iloc[0]
經過不同單項的海量測試,以及分析前10 大持倉、前5 大回撤區間、行業配比、Sharpe、持倉比例分析和風險控制等,發現買入均線、止損條件和均線周期影響作用較大;最佳參數設定:回撤線20 日線;止損點設定0.5%;止盈點按回撤盈利的5%;另外,因牛熊市不同市場狀態差異較大,在熊市以采用BIAS 乖離率策略輔助為佳。部分策略指標分析如圖4 所示。

圖4 策略表現指標-持倉結構分析

圖5 策略表現指標-風險分析
經過2005 年~2018 年多輪牛熊轉換交替的回撤模擬,總體收益率達到1652%,平均年化收益率25%,最大回撤僅為29%,相較指數有穩定盈利。如圖6 所示。

圖6 優化后的策略效果-總體概覽

圖7 優化后的策略效果-收益分解
本自動交易系統基于Python 語言在聚寬量化平臺上開發,經過對市場狀態、均線周期、止損條件和選股買入均線等關鍵參數的優化,并進一步通過在牛熊市采用差異化交易策略,較單獨采用多頭策略模式,獲得了更佳的市場收益。