量化交易軟件:利用 Donchian 通道進(jìn)行交易

概述
Donchian 通道是 20 世紀(jì) 70 年代初期開發(fā)的技術(shù)指標(biāo)。首先將之稱為移動(dòng)通道, 后來以其創(chuàng)始人 Richard Donchian 之名命名。指標(biāo)基于給定的價(jià)格范圍, 根據(jù)最近的最低價(jià)和最高價(jià)來衡量市場(chǎng)波動(dòng)程度。Donchian 通道繪制為兩行, 價(jià)格在其間波動(dòng)。當(dāng)價(jià)格分別突破底線或上邊界時(shí), 形成買入或買入信號(hào)。筆者建議使用價(jià)格范圍等于 20 (一個(gè)月的平均工作天數(shù)) 和 D1 時(shí)間幀來繪制通道。
Donchian 通道的操作原理與應(yīng)用
我不會(huì)重新發(fā)明車輪, 也不會(huì)再創(chuàng)建此指標(biāo)的另一個(gè)程序。我決定使用其 Donchian 通道系統(tǒng) 改編版, 它完美地體現(xiàn)了基于此系統(tǒng)的交易風(fēng)格。在圖例.1 中, 粉紅色和藍(lán)色的蠟燭條顯示了通道邊界被突破的區(qū)域, 在此位置預(yù)計(jì)入場(chǎng)。

編輯切換為居中
圖例1. 基于 Donchian 通道的操作原理和入場(chǎng)點(diǎn)。 注意圖表上標(biāo)記的紅色區(qū)域。它們揭示了 Donchian 通道的主要缺點(diǎn) — 所謂的假突破, 之后價(jià)格回落到其范圍之內(nèi)。所以, 僅使用 Donchian 通道而無額外確認(rèn)的情況下入場(chǎng)將是魯莽的。為了更清晰地了解指標(biāo)思想, 赫茲量化來分析這個(gè)改編版的參數(shù)和實(shí)現(xiàn): //+----------------------------------------------+ //| ?指標(biāo)輸入?yún)?shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+----------------------------------------------+ input uint ? ? ? ? ? DonchianPeriod=20; ? ? ? ? ? ?// 均化周期 input Applied_Extrem Extremes=HIGH_LOW; ? ? ? ? ? ?// 極值類型 input uint ? ? ? ? ? Shift=2; ? ? ? ? ? ? ? ? ? ? ?// 水平位移柱線數(shù) //+----------------------------------------------+
均化周期 用于價(jià)格范圍。
極值類型 意即用于計(jì)算的價(jià)格類型。省缺使用經(jīng)典設(shè)置, 這意味著使用蠟燭條最高價(jià)和最低價(jià)數(shù)值。
水平位移柱線數(shù) 意即通道位移。
赫茲量化來討論極值類型, 因?yàn)樵谶@個(gè)改編版中, 不只可以使用最高價(jià)和最低價(jià)。以下是可能的選項(xiàng)和軟件實(shí)現(xiàn): //+----------------------------------------------+ //| ?枚舉聲明 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+----------------------------------------------+ enum Applied_Extrem //極值類型 ? { ? ?HIGH_LOW, ? ?HIGH_LOW_OPEN, ? ?HIGH_LOW_CLOSE, ? ?OPEN_HIGH_LOW, ? ?CLOSE_HIGH_LOW ? }; ?
HIGH_LOW 是蠟燭條最高價(jià)和最低價(jià)的經(jīng)典應(yīng)用。
HIGH_LOW_OPEN — 在本解釋中, 通道上邊界是基于所選價(jià)格范圍內(nèi)的 開盤價(jià) 和 蠟燭條最高價(jià) 之間的平均值來繪制的。蠟燭條最低價(jià)用于下邊界。
HIGH_LOW_CLOSE — 通道上邊界是基于所選價(jià)格范圍內(nèi)的 收盤價(jià) 和 蠟燭條最高價(jià) 之間的平均值來繪制的。蠟燭條最低價(jià)用于下邊界。
OPEN_HIGH_LOW — 通道上邊界是基于所選價(jià)格范圍內(nèi)的最高 開盤價(jià), 最低的那個(gè)用于下邊界。
CLOSE_HIGH_LOW — 通道上邊界是基于所選價(jià)格范圍內(nèi)的最高 收盤價(jià), 最低的那個(gè)用于下邊界。
下面提供了不同極值類型的實(shí)現(xiàn)列表: for(bar=first; bar<rates_total && !IsStopped(); bar++) ? ? ?{ ? ? ? switch(Extremes) ? ? ? ? { ? ? ? ? ?case HIGH_LOW: ? ? ? ? ? ? SsMax=high[ArrayMaximum(high,bar,DonchianPeriod)]; ? ? ? ? ? ? SsMin=low[ArrayMinimum(low,bar,DonchianPeriod)]; ? ? ? ? ? ? break; ? ? ? ? ? case HIGH_LOW_OPEN: ? ? ? ? ? ? SsMax=(open[ArrayMaximum(open,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2; ? ? ? ? ? ? SsMin=(open[ArrayMinimum(open,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2; ? ? ? ? ? ? break; ? ? ? ? ? case HIGH_LOW_CLOSE: ? ? ? ? ? ? SsMax=(close[ArrayMaximum(close,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2; ? ? ? ? ? ? SsMin=(close[ArrayMinimum(close,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2; ? ? ? ? ? ? break; ? ? ? ? ? case OPEN_HIGH_LOW: ? ? ? ? ? ? SsMax=open[ArrayMaximum(open,bar,DonchianPeriod)]; ? ? ? ? ? ? SsMin=open[ArrayMinimum(open,bar,DonchianPeriod)]; ? ? ? ? ? ? break; ? ? ? ? ? case CLOSE_HIGH_LOW: ? ? ? ? ? ? SsMax=close[ArrayMaximum(close,bar,DonchianPeriod)]; ? ? ? ? ? ? SsMin=close[ArrayMinimum(close,bar,DonchianPeriod)]; ? ? ? ? ? ? break; ? ? ? ? } ? 開發(fā)交易系統(tǒng) 當(dāng)開發(fā)策略時(shí), 赫茲量化不僅要考慮到假突破, 還要考慮到 Donchian 通道經(jīng)常用于趨勢(shì)策略。入場(chǎng)信號(hào)由通道突破形成, 因此, 為了消除通道邊界外的假離場(chǎng), 我們至少需要使用一個(gè)趨勢(shì)指標(biāo)進(jìn)行信號(hào)確認(rèn)。我們還需要判斷入場(chǎng)、開倉管理、離場(chǎng)和資金管理的精確條件。我們來制定上述條件。1. 確認(rèn)信號(hào)本文的目的不僅是展示基于 Donchian 通道的交易示例, 而且還要分析它們?cè)诂F(xiàn)代市場(chǎng)的 "生存能力"。因此, 我們來選擇一些確認(rèn)指標(biāo)。這些指標(biāo)中的每一個(gè)將與 Donchian 通道組合。因此, 赫茲量化基于所分析的基礎(chǔ)策略獲得了幾種交易策略。為了建立串聯(lián), 我從以下指標(biāo)中選出了三個(gè)確認(rèn)信號(hào):
平均方向走勢(shì)指數(shù) (ADX)。與這個(gè)信號(hào)的結(jié)合將使我們能夠評(píng)估當(dāng)前趨勢(shì)的狀態(tài)和強(qiáng)度, 然后在通道邊界突破時(shí)入場(chǎng)。
移動(dòng)平均收斂/發(fā)散 (MACD)。MACD 將監(jiān)控當(dāng)前的趨勢(shì)。當(dāng)價(jià)格突破通道邊界時(shí), 我們會(huì)檢查這個(gè)突破是順應(yīng)市場(chǎng)方向還是意外的價(jià)格尖峰 (一個(gè)假突破)。
第三個(gè)確認(rèn)將由兩個(gè)指標(biāo)產(chǎn)生: 平均速度 (以每分鐘點(diǎn)數(shù)為單位的平均價(jià)格變化速度) 和 X4Period_RSI_Arrows (由具有不同周期的四個(gè) RSI 組成的信號(hào)量指標(biāo))。
2. 正式化交易系統(tǒng)赫茲量化需要找到這三個(gè)策略的共同參數(shù): 我們選擇它們, 以便提供可能的最大測(cè)試周期。因此, 我們定義測(cè)試期間將要控制的參數(shù):
時(shí)間幀。時(shí)間幀選項(xiàng)將使赫茲量化能夠?qū)Σ煌瑫r(shí)期的策略進(jìn)行測(cè)試, 這些策略可以體現(xiàn)具體的行情階段, 包括弱走勢(shì)和調(diào)整, 以及長(zhǎng)期趨勢(shì), 這在較高的時(shí)間幀上也許是明顯的。
資金管理。依據(jù)交易結(jié)果的若干種倉量選擇方案將使我們能夠揭示復(fù)利投資是否有效, 或固定手?jǐn)?shù)交易更方便。
開倉管理。若干開倉管理選項(xiàng)將有助于我們判斷當(dāng)前有利走勢(shì)的盈利百分比。
指標(biāo)參數(shù)。在不同模式下測(cè)試所選擇的策略將有助于我們找到最佳參數(shù), 它會(huì)令我們的系統(tǒng)更有效, 并且也能檢測(cè)出令我們的系統(tǒng)無法盈利的參數(shù)。
接下來, 我們需要為我們的交易策略制定入場(chǎng)條件:#1. Donchian 通道 + ADX。系統(tǒng)條件:
價(jià)格突破 Donchian 通道的上下邊界。
ADX 趨勢(shì)強(qiáng)度的主線必須高于預(yù)設(shè)的 ADX 級(jí)別。
如果價(jià)格突破通道邊界向上, DI+ 線必須高于 DI-。如果向下, DI- 必須高于 DI+。

編輯切換為居中
圖例.2. 策略 Donchian 通道+ADX 的入場(chǎng)條件#2. Donchian 通道 + MACD。 系統(tǒng)條件:
價(jià)格突破 Donchian 通道的上下邊界。
以及, 直方圖的數(shù)值高于零軸, 且高于信號(hào)線則買入。
直方圖的數(shù)值低于零軸, 且低于信號(hào)線則賣出。

編輯切換為居中
圖例.3. 策略 Donchian 通道+MACD 的入場(chǎng)條件#3. Donchian 通道 + (平均速度和 X4Period_RSI_Arrows)。