股票多品種海龜交易策略設(shè)計(jì)范例
股票證券的程序化、量化交易以前門檻可不低,以前軟件支持少,賬戶開(kāi)戶門檻極高。FMZ.CN(國(guó)內(nèi)站)支持富途證券、中泰XTP,開(kāi)通了富途證券就可以很方便的做程序化模擬盤、實(shí)盤測(cè)試。本篇我們就一起學(xué)習(xí)設(shè)計(jì)一個(gè)股票版本的多品種海龜交易策略,初期我們主要基于回測(cè)系統(tǒng)進(jìn)行設(shè)計(jì)、研究,慢慢的擴(kuò)展至富途證券的模擬盤(模擬賬戶)。
策略設(shè)計(jì)
策略架構(gòu)我們參考FMZ.CN上開(kāi)源的「商品期貨多品種海龜策略」。和商品期貨版本一樣,我們?cè)O(shè)計(jì)一個(gè)海龜交易邏輯管理對(duì)象的構(gòu)造函數(shù)TTManager
。
構(gòu)造的對(duì)象(obj)用來(lái)操作、管理每個(gè)股票的海龜交易邏輯的執(zhí)行。
股票市場(chǎng)和商品期貨市場(chǎng)又有些差別,下面我們來(lái)一起分析一下這些差別,然后對(duì)于策略進(jìn)行具體的修改、設(shè)計(jì)。
交易時(shí)間差別
我們需要單獨(dú)設(shè)計(jì)一個(gè)函數(shù),識(shí)別開(kāi)盤休盤時(shí)間,如下函數(shù)設(shè)計(jì),給構(gòu)造函數(shù)TTManager
返回的對(duì)象obj增加方法:
交易方向的差別
商品期貨有開(kāi)倉(cāng)、平倉(cāng)。股票只有買、賣,沒(méi)有開(kāi)倉(cāng)平倉(cāng)。股票類似于現(xiàn)貨,但是也有持倉(cāng),買入的股票會(huì)在GetPosition函數(shù)獲取的持倉(cāng)列表中顯示。
需要我們對(duì)交易下單的部分做設(shè)計(jì),增加函數(shù):
下單頭寸計(jì)算
商品期貨交易下單時(shí)是按照合約張數(shù)下單,一張合約根據(jù)其合約乘數(shù)代表一定量的商品(例如rb合約,一張代表10噸螺紋鋼)。股票雖說(shuō)也是有按手計(jì)算的(根據(jù)板塊有的1手100股,有的500股,還有的200股)。但是下單的時(shí)候必須是股數(shù),并且要能被一手的股數(shù)整除。不能整除的會(huì)報(bào)錯(cuò)。
這樣就需要對(duì)海龜交易法計(jì)算頭寸的部分做一定修改:
策略注釋
為了方便理解策略代碼,我們對(duì)策略通篇注釋。
回測(cè)測(cè)試、研究
我們選擇幾只股票回測(cè):600519.SH,600690.SH,600006.SH,601328.SH,600887.SH,600121.SH,601633.SH
。
其它參數(shù)設(shè)置:


回測(cè)時(shí)狀態(tài)欄信息輸出:


可以觀察到,海龜交易法這種趨勢(shì)跟蹤策略需要在有較大的行情時(shí)才會(huì)有較好的盈利。在行情反復(fù)震蕩時(shí)可能會(huì)有一定回撤。
漲幅較大的貴州茅臺(tái)貢獻(xiàn)了整體收益的絕大部分,看來(lái)選股也是十分重要的因素。并且根據(jù)狀態(tài)欄中顯示的統(tǒng)計(jì)數(shù)據(jù)來(lái)看,海龜交易法的止損次數(shù)要遠(yuǎn)高于策略成功盈利次數(shù)。這也是策略的思路核心,用較小的頭寸試錯(cuò)。一旦抓住趨勢(shì)突破加倉(cāng),抓住肥尾。創(chuàng)造震蕩期損失數(shù)倍的盈利。
完整策略:https://www.fmz.cn/strategy/346551
該策略僅用于回測(cè)研究,實(shí)盤請(qǐng)自行優(yōu)化、修改。