量化交易軟件:自適應(yīng)算法3放棄優(yōu)化
分析缺點(diǎn)
與上一篇文章一樣,我將從分析上一個(gè)成功版本的缺點(diǎn)開始。在分析過程中發(fā)現(xiàn)了以下缺陷:
根據(jù)燭形分析生成倉位打開/關(guān)平信號,燭形的大小不穩(wěn)定,它們有的大,有的小?;谙碌蛏蠞q燭形的過度開倉并不少見。之后,下跌燭形和上漲燭形的數(shù)量變得相等,而未平倉的利潤仍然是負(fù)數(shù)。那么,赫茲量化應(yīng)該平倉還是等待獲利?在前一種情況下,整個(gè)交易要點(diǎn)變得失去意義,算法開始接收損失。在后一種情況下,我們遲早會(huì)面臨大幅回撤。
不管燭形的種類如何,價(jià)格都會(huì)變動(dòng)。市場可能由下跌蠟燭主導(dǎo),而價(jià)格上漲是因?yàn)樯蠞q蠟燭比下跌蠟燭大。如果你有未平的倉位,這是特別不愉快的。
預(yù)測燭形未來大小的任務(wù)仍然沒有解決。
有時(shí),在開倉后,一種燭形的超額量在很長一段時(shí)間內(nèi)不會(huì)減少,因此價(jià)格可能會(huì)繼續(xù)逆著倉位方向波動(dòng),這會(huì)引起大幅回撤。最重要的是,目前還不清楚價(jià)格何時(shí)會(huì)反轉(zhuǎn),是否會(huì)完全反轉(zhuǎn)。
倉位是按照時(shí)間開啟的,有時(shí),價(jià)格會(huì)在很長一段時(shí)間內(nèi)保持不變,而隨著新燭形的到來,倉位會(huì)繼續(xù)打開。這樣的時(shí)刻在節(jié)假日尤其危險(xiǎn),比如圣誕節(jié),此時(shí)交易活躍度較低,算法只是因?yàn)闀r(shí)間而開倉。
算法設(shè)置應(yīng)針對每個(gè)交易工具分別進(jìn)行優(yōu)化。設(shè)置這些參數(shù)的唯一原因是它們在歷史上工作得更好。該算法通過了21年的回溯測試,但不是所有工具都通過。根據(jù)歷史調(diào)整參數(shù)不是最好的解決方案。
目前還不清楚為什么它對某些交易工具的效果更好、更穩(wěn)定,而對其他交易工具的效果更差。
當(dāng)交易工具的行為發(fā)生變化導(dǎo)致算法遭受損失時(shí),這也是未知的。事實(shí)上,不知道風(fēng)險(xiǎn)情況何時(shí)發(fā)生。我可以計(jì)算出這樣一個(gè)時(shí)刻的概率,但這將是一個(gè)非常粗略的結(jié)果。
沒有任何理論能夠解釋工具在未來將如何變化,以及為什么有必要使用明顯次優(yōu)的參數(shù),以便價(jià)格序列的統(tǒng)計(jì)參數(shù)有波動(dòng)的余地。這大大降低了盈利能力。
我認(rèn)為以上所有的缺點(diǎn)都很嚴(yán)重。我們可以繼續(xù)修改算法,一個(gè)接一個(gè)地改進(jìn)特性,但最好是從中吸取一切精華,幾乎從頭開始開發(fā)。我將從修正理論基礎(chǔ)開始。
該算法應(yīng)該是完全自適應(yīng)的,因此它將被開發(fā)用于貨幣和交易所市場,任何工具都能用。這一點(diǎn)很重要,因?yàn)槿藗儜?yīng)該清楚地了解一個(gè)市場與另一個(gè)市場的區(qū)別。如果有這樣的理解,那么把它變成一個(gè)算法是有意義的。這一次,我切換到赫茲量化平臺(tái),因?yàn)樗幸粋€(gè)功能更強(qiáng)大的策略測試器,不僅可以用于金融交易工具,也可以用于交易所工具。
在開發(fā)過程中,您需要不斷地回答這樣一個(gè)問題:為什么某個(gè)參數(shù)具有某個(gè)值。在理想的情況下,在參數(shù)中設(shè)置任何值的原因都應(yīng)該是合理的。
將蠟燭圖轉(zhuǎn)換為方塊圖
在新版本中,我決定不使用蠟燭圖,因?yàn)樗鼈兊膮?shù)不穩(wěn)定。更準(zhǔn)確地說,只使用M1蠟燭,因?yàn)槔^續(xù)處理分時(shí)(tick)會(huì)導(dǎo)致資源消耗的顯著增加。理想情況下,處理分時(shí)比較好。
我將分析N個(gè)點(diǎn)的塊,這些塊與 renko 類似,但它們基于稍微不同的算法。我已經(jīng)在文章“什么是趨勢,市場結(jié)構(gòu)是基于趨勢還是基于橫盤”中提到了方塊圖及其在分析中的優(yōu)勢。

編輯切換為居中
圖 1. 方塊圖表
圖1顯示了一個(gè)方塊圖表,方塊圖的一般視圖顯示在圖的底部,而上圖顯示了方塊在價(jià)格圖上的外觀。方塊是從一個(gè)固定的時(shí)間構(gòu)建到過去和未來的。在圖中,固定時(shí)間顯示為黃色垂直線。這是一個(gè)零點(diǎn),從這個(gè)零點(diǎn),方塊被構(gòu)建成過去和未來。構(gòu)造算法是鏡像的,事實(shí)上,這些方塊是建立在過去和未來在進(jìn)一步的開發(fā)中將是重要的。
之所以需要區(qū)塊,是因?yàn)樗鼈兊闹饕獏?shù)是穩(wěn)定的、可控的,最重要的是,利潤/虧損主要取決于價(jià)格在各點(diǎn)上的變動(dòng)。

編輯切換為居中
市場模型
基本模式類似于我在前面的算法中使用的模式:下跌方塊的數(shù)量與上漲方塊的數(shù)量之間的局部偏差,以及隨后回歸到某種均衡狀態(tài)。這種模式是統(tǒng)計(jì)的,所以我們需要從分析方塊圖的統(tǒng)計(jì)特征開始。為此,我開發(fā)了一個(gè)特殊的指標(biāo) Max_distribution,如文章“什么是趨勢,市場結(jié)構(gòu)是基于趨勢還是平緩的”所述。
該指標(biāo)衡量分塊價(jià)格序列的統(tǒng)計(jì)參數(shù)。它能夠同時(shí)顯示多個(gè)塊大小的數(shù)據(jù)。例如,赫茲量化想知道塊大小在10到1000點(diǎn)之間的圖表有什么統(tǒng)計(jì)特征。在指標(biāo)設(shè)置中設(shè)置最小塊大小,并通過乘法因子獲得所有其他大小的塊。
主要的指標(biāo)操作模式是衡量方塊的數(shù)量價(jià)格垂直移動(dòng)的N步。

編輯切換為居中
圖 2. 以24個(gè)步驟更改垂直塊數(shù)
圖2顯示了一個(gè)示例。測量 N 步價(jià)格傳遞的塊數(shù)。收集所需的樣本數(shù)(例如,100),并定義平均值。這種分析是針對不同大小的區(qū)塊進(jìn)行的。

編輯
圖 3. 不同方塊大小的平均振幅
圖3顯示了24個(gè)方塊分步中垂直平均振幅分布的示例。每個(gè)直方圖列是其塊大小的平均振幅值。樣本數(shù)量為1000個(gè)。最小塊的測量值在左邊,而最大塊的測量值在右邊。對于大小為0.00015的方塊,價(jià)格分24步在1000個(gè)樣本中垂直移動(dòng)5.9個(gè)區(qū)塊。對于大小為0.00967的方塊,價(jià)格分24步在1000個(gè)樣本中垂直移動(dòng)4.2個(gè)塊。
紅線表示參考值,如果價(jià)格序列是隨機(jī)游走,則會(huì)出現(xiàn)參考值。對于24步,這是垂直方向上3.868塊的值。參考值是通過組合方法計(jì)算出來的,可以用圖4中的表格清楚地表示出來。

編輯切換為居中
圖 4. 計(jì)算24步的參考值
圖4顯示了在隨機(jī)游走的情況下,價(jià)格平均分24步移動(dòng)的區(qū)塊的參考垂直值的計(jì)算。在最后一列中,此值轉(zhuǎn)換為冪,隨機(jī)游動(dòng)的平均振幅趨于24^0.4526??梢詾槊總€(gè)步驟數(shù)重新計(jì)算參考值。表格以.xlsx格式附在文章后面。
我對各種交易工具進(jìn)行了研究:大約35種貨幣對、100多種股票、10種加密貨幣和大約10種商品,沒有嚴(yán)重的偏差。一般來說,所有工具的圖像都大致相似,平均幅度從快速增長的加密貨幣的7到貨幣對的3.8不等,一些低流動(dòng)性股票甚至可能跌破3.8點(diǎn)。
平均振幅是在24步或其他一些步數(shù)中獲得的,但這意味著什么?讓我們用正弦波轉(zhuǎn)換成塊形式來表示圖表,如圖5所示。

編輯切換為居中
圖 5. 方塊狀正弦波
設(shè)塊的大小為正弦波周期的一半,是24步,則周期數(shù)為48步。如果我們測量24步25個(gè)樣本的平均振幅,赫茲量化得到24步10.33塊的平均振幅。隨著樣本數(shù)的增加,平均振幅趨于12或步數(shù)除以2。價(jià)格序列不是正弦波,但正弦波便于交易?,F(xiàn)在,如果我們在測量平均振幅時(shí)得到的值超過12,則塊大小不夠大,并且24個(gè)塊不適合作為一半的周期。但小于12表示兩個(gè)原因:方塊太大,或者價(jià)格序列的趨勢變化不像正弦波那樣線性。我目前沒有考慮趨勢斜率,我稍后再做。
根據(jù)已開發(fā)的 Max_distribution 指標(biāo)的讀數(shù),赫茲量化可以粗略估計(jì)價(jià)格序列與正弦波的相似程度。為了實(shí)現(xiàn)這一點(diǎn),讓我們看看正弦波的指標(biāo)直方圖是什么樣子的。

編輯
圖 6. 正弦波平均振幅與塊大小的關(guān)系
在圖6中,赫茲量化可以看到,在小區(qū)塊的情況下,價(jià)格以24個(gè)步驟垂直移動(dòng)24個(gè)區(qū)塊。但隨著區(qū)塊大小的增加,價(jià)格以24個(gè)步驟移動(dòng)區(qū)塊的數(shù)量變小了。當(dāng)塊大小與波動(dòng)幅度相當(dāng)時(shí),垂直方向上的塊數(shù)降為零。在圖3中,最大值為5.9,趨向于參考值3.868。因此,價(jià)格序列可以表示為“噪聲”正弦波,在某些尺度上總是具有某種趨勢分量。也就是說,市場應(yīng)該總是有一個(gè)當(dāng)前表現(xiàn)為橫盤的標(biāo)度(反轉(zhuǎn)概率高于趨勢延續(xù)的標(biāo)度)和一個(gè)當(dāng)前表現(xiàn)為趨勢的標(biāo)度(延續(xù)概率高于反轉(zhuǎn)的標(biāo)度)。
我以前的一篇文章《什么是趨勢?市場結(jié)構(gòu)是基于趨勢還是橫盤》解釋了采用趨勢和橫盤定義的原因。
使用 Max_distribution 指標(biāo),我測量了不同交易工具的平均垂直區(qū)塊數(shù),不僅是24個(gè),而且還測量了其他步數(shù)。示例如圖7所示。

編輯切換為居中
圖 7. 平均振幅與樣本步數(shù)的關(guān)系
圖7中的白色列顯示了從10到120的步數(shù)的測量運(yùn)動(dòng)幅度,每個(gè)測量的步數(shù)為2和1000個(gè)樣本。紅線表示給定步數(shù)的參考值。如我們所見,隨著步數(shù)的增加,未觀察到與主要趨勢的顯著偏差。測量值曲線的整體形狀與參考曲線相似。測量值是使用 GBPUSD,但我也為其他工具做了研究。有許多交易工具的直方圖值超過了參考值,但總的趨勢仍然存在,可以用一個(gè)非線性方程來描述。
眾所周知,市場不可能有穩(wěn)定的簡單規(guī)律。這意味著當(dāng)前的趨勢尺度在不斷變化,同時(shí),橫盤尺度也會(huì)變得有趨勢。
我將使用圖7中24步的平均振幅,即 3.86。我假設(shè)運(yùn)動(dòng)是由趨勢和類似正弦波的橫盤部分組成。在這種情況下,可以計(jì)算平均振幅的趨勢部分。為了實(shí)現(xiàn)這一點(diǎn),24步的3.86*2=7.72個(gè)垂直塊要四舍五入到8,因?yàn)檫@些塊只能是整數(shù)值。如果我們到達(dá)趨勢區(qū)域,那么價(jià)格在24步中垂直移動(dòng)8個(gè)方塊。當(dāng)然,價(jià)格可以在24步中垂直移動(dòng)24個(gè)方塊大小,但這并不重要。我稍后再解釋原因。
結(jié)果表明,價(jià)格在趨勢區(qū)24步內(nèi)垂直移動(dòng)8個(gè)區(qū)塊。這意味著在一個(gè)方向上有16個(gè)塊,在另一個(gè)方向上有8個(gè)塊。眾所周知,趨勢部分應(yīng)緊跟在橫盤部分之后,以便平均振幅保持穩(wěn)定(在大量樣本上相當(dāng)穩(wěn)定)。但市場不是正弦波。如圖7所示,垂直塊的數(shù)量隨著步數(shù)的增加而增加。因此,我將假設(shè)在較少的步數(shù)中出現(xiàn)的與平均值的偏差返回到在較多的步數(shù)中的平均值。
圖7中的圖表允許我們定義價(jià)格在26、28、30、32和34個(gè)步數(shù)中的平均通過量:
26 步 = 3.98; 28 步 = 4.11; 30 步 = 4.2; 32 步 = 4.36.
在24步中,價(jià)格已經(jīng)垂直移動(dòng)了8個(gè)區(qū)塊,但在28步中,它應(yīng)該平均垂直移動(dòng)4.1個(gè)區(qū)塊,如果向下舍入到整數(shù)值,則為4個(gè)區(qū)塊。這意味著,在接下來的4步中,可能從之前的4個(gè)塊的移動(dòng)中回滾(rollback)。市場并非如此可預(yù)測,事件不太可能按照這種情況發(fā)展。圖7中的同一個(gè)圖表允許我們定義價(jià)格在116步中垂直通過8個(gè)區(qū)塊。