股票量化軟件:拉布謝爾資金管理系統(tǒng)的統(tǒng)計(jì)學(xué)驗(yàn)證
設(shè)定任務(wù): 主題與方法
最重要的問(wèn)題就是, 拉布謝爾資金管理系統(tǒng)是否真的能夠把一個(gè)數(shù)學(xué)期望轉(zhuǎn)化為真正的盈利方法. 當(dāng)然, 引用的段落中提到的大約 33% 的勝率就輸贏臨界點(diǎn)聽(tīng)起來(lái)有些不可思議. 但是, 也許49% 或者 50% 的勝率就足夠了?如果不是的話, 拉布謝爾系統(tǒng)有哪些其他優(yōu)勢(shì)呢?赫茲量化軟件
我們將會(huì)使用統(tǒng)計(jì)學(xué), 也就是說(shuō)我們需要開(kāi)發(fā)一個(gè)MQL程序(本例中是MQL4, 我還沒(méi)有完全掌握MQL5). 讓我們的程序來(lái)進(jìn)行數(shù)以百萬(wàn)計(jì)的交易, 并且"清空"成千上萬(wàn)的存款 - 我們將會(huì)在不損壞我們真正資金的情況下分析結(jié)果. 如果程序可以盈利, 將有可能在真實(shí)交易中實(shí)現(xiàn)這算法.赫茲量化軟件
拉布謝爾系統(tǒng)的開(kāi)發(fā)是基于輸贏比率相同的假定的. 其他比率情況下也可以采用此系統(tǒng), 但是這看起來(lái)不大合理. 如果此系統(tǒng)可以影響輸贏比率相同的數(shù)學(xué)期望, 它也應(yīng)該影響其他的比率. 如果不能的話, 我們只是簡(jiǎn)單地浪費(fèi)時(shí)間思考了一個(gè)合適的適應(yīng)方案.赫茲量化軟件
另外, 我們可以把輸贏相同的系統(tǒng)想像成50%贏率的系統(tǒng), 這樣考慮就簡(jiǎn)單多了, 因?yàn)槲覀儗?duì)拋硬幣非常熟悉. 因此, 讓我們把我們的程序叫做硬幣測(cè)試(CoinTest).赫茲量化軟件
首先, 我們應(yīng)該描述我們未來(lái)
我們應(yīng)該能夠設(shè)置風(fēng)險(xiǎn)水平. 拉布謝爾系統(tǒng)有一個(gè)固定下注大小. 如果我們根據(jù)我們的存款規(guī)模來(lái)擴(kuò)大初始賭注, 我們的存款將永遠(yuǎn)不會(huì)回到最初的狀態(tài), 因?yàn)樗械臄?shù)值都比最初有所改變. 在有回撤退出后, 我們可以重新計(jì)算下注大小, 但是, 這將會(huì)引出難以處理的分?jǐn)?shù). 所以, 我們使用兩個(gè)變量來(lái)設(shè)置風(fēng)險(xiǎn) - 初始存款和初始下注.赫茲量化軟件
有必要設(shè)置每筆存款的最大交易次數(shù). 它應(yīng)該被設(shè)置得足夠大, 這樣我們就能知道, 就算初始風(fēng)險(xiǎn)非常低的時(shí)候我們是否會(huì)損失全部存款. 畢竟, 如果存款持續(xù)增長(zhǎng), 這個(gè)過(guò)程可能是無(wú)限的, 我們可能永遠(yuǎn)都不知道結(jié)果.赫茲量化軟件
我們應(yīng)該有能力檢查一個(gè)單一的存款的交易序列的結(jié)果, 這既是為了程序的調(diào)試, 也是為了我們可以改變交易邏輯. 把結(jié)果輸出到文件中可以很好滿足我們的目標(biāo).赫茲量化軟件
在我們完成任務(wù), 為單一存款過(guò)程寫完代碼后, 我們因該繼續(xù)收集一系列獨(dú)立的存款中(最好)使用不同參數(shù)過(guò)程的統(tǒng)計(jì)數(shù)據(jù). 你要知道, 單一的試驗(yàn)幾乎是沒(méi)有意義的. 統(tǒng)計(jì)結(jié)果也被發(fā)送到文件中. 我們不需要每一個(gè)單獨(dú)存款的歷史.
我們的下注規(guī)模選擇系統(tǒng)可能可以用于真實(shí)交易, 所以我們應(yīng)該把它做成一個(gè)類.
對(duì)我們來(lái)說(shuō), 現(xiàn)階段在MetaTrader中真的做交易沒(méi)有必要, 因?yàn)闀?huì)耗用很多計(jì)算資源. 我們只需要使用所需的規(guī)模和一個(gè)給定的勝率來(lái)得到隨機(jī)交易的結(jié)果. 使用這種想法, 我們將會(huì)開(kāi)發(fā)一個(gè)腳本程序, 因?yàn)檫@種MQL程序和EA交易或指標(biāo)相比非常適合單獨(dú)運(yùn)行一次.赫茲量化軟件
偽隨機(jī)數(shù)生成器質(zhì)量的統(tǒng)計(jì)學(xué)驗(yàn)證
偽隨機(jī)數(shù)生成器(PRNG)的質(zhì)量對(duì)我們非常重要, 因?yàn)樗鼘⒂糜诙x每個(gè)交易的結(jié)果(贏/輸). 一個(gè)很長(zhǎng)的贏/輸序列分布的準(zhǔn)確性是最重要的. 晚些時(shí)候我們會(huì)嘗試不使用復(fù)雜的數(shù)學(xué)和統(tǒng)計(jì)學(xué)理論對(duì)它進(jìn)行評(píng)估.
這篇文章的目的不是對(duì)PRNG的質(zhì)量做詳細(xì)的研究(否則, 我們必須進(jìn)行15個(gè)不同的測(cè)試). 我們所感興趣的PRNG特點(diǎn)是它不會(huì)影響拉布謝爾系統(tǒng)的測(cè)試結(jié)果, 并不需要復(fù)雜的驗(yàn)證過(guò)程.
MetaTrader 有標(biāo)準(zhǔn)的 MathRand() PRNG 函數(shù). PRNG 序列使用MathSrand() 函數(shù)進(jìn)行初始化.
讓我們寫一個(gè)小的腳本程序 (RandFile) 來(lái)檢查標(biāo)準(zhǔn) PRNG 的質(zhì)量. 此腳本程序?qū)⒂袃蓚€(gè)參數(shù):
它應(yīng)該可以生成數(shù)以百萬(wàn)計(jì)的32位隨機(jī)數(shù)(每個(gè)32位隨機(jī)數(shù)通過(guò)3次調(diào)用MathRand()函數(shù), 每個(gè)函數(shù)可以提供15位). 測(cè)量單位通常是10進(jìn)制的二不是2到2的20次方, 因?yàn)槲覀冃枰吹綔y(cè)試的結(jié)果.赫茲量化軟件
CalcSeries 邏輯參數(shù)(是否應(yīng)該計(jì)算相同位序列長(zhǎng)度的分布).
對(duì)位序列長(zhǎng)度分布的計(jì)算是非常耗費(fèi)資源的(增加腳本執(zhí)行時(shí)間十倍). 因而, 它被設(shè)為一個(gè)獨(dú)立的選項(xiàng).
該腳本程序生成如下結(jié)果:
計(jì)算時(shí)間?(顯示于日志中);
全部生成位中1 位?的數(shù)量 (顯示于日志中);
RandFile.bin?文件 — PRNG 運(yùn)行結(jié)果的二進(jìn)制文件;
RandStat.csv?文件 — 包含某些字節(jié)出現(xiàn)頻率的記錄文件;
RandOnesSeries.csv?文件 — 包含"1"位序列長(zhǎng)度的記錄文件;
RandZerosSeries.csv?文件 — 包含"0"位序列長(zhǎng)度的記錄文件.
讓我們生成3個(gè)不同長(zhǎng)度的測(cè)試集:
1000萬(wàn)個(gè)測(cè)試數(shù), 每個(gè)數(shù)字4個(gè)字節(jié)(一共4000萬(wàn)字節(jié));
1億個(gè)測(cè)試數(shù), 每個(gè)數(shù)字4個(gè)字節(jié)(一共4億個(gè)字節(jié));
10億個(gè)測(cè)試數(shù), 每個(gè)數(shù)字4字節(jié)(一共40億個(gè)字節(jié)).
現(xiàn)在讓我們檢查以下參數(shù):
使用WinRAR最大壓縮設(shè)置進(jìn)行壓縮, 包含隨機(jī)數(shù)文件的壓縮率. 高質(zhì)量的隨機(jī)數(shù)據(jù)是很難壓縮的. 當(dāng)然, 文件不能壓縮的程度也不一定表示它們包含隨機(jī)數(shù)的質(zhì)量高. 但是如果它們很容易壓縮, 這表明數(shù)據(jù)具有統(tǒng)計(jì)上的相似性.


"1" 位的數(shù)量: 平衡值 真實(shí) 絕對(duì)偏差 ?偏差百分率 10М 160 000 000 160 004 431 4 431 0,0027694 100М 1 600 000 000 1 599 978 338 21 662 0,0013539 1000М 16 000 000 000 15 999 996 180 3 820 0,0000239
某些字節(jié)的數(shù)值在隨機(jī)數(shù)文件中出現(xiàn)的頻率:
相同位序列的長(zhǎng)度. 我們將對(duì)每個(gè)大小的樣本生成兩個(gè)圖表:
線性圖表是不符合我們要求的, 因?yàn)槲覀儞碛械臄?shù)據(jù)非常分散(在同一圖表上, 數(shù)值從1到4,000,000,000或者從0.00001到6000)另外, 對(duì)數(shù)標(biāo)度的長(zhǎng)系列的平衡值的圖表顯示為直線, 而序列長(zhǎng)度增加1,其發(fā)生的概率減少了一半。
第一個(gè)顯示某確定長(zhǎng)度相同位的實(shí)際數(shù)量, 以及該系列的長(zhǎng)度(在對(duì)數(shù)刻度)的平衡值;
第二個(gè)顯示實(shí)際量的百分比偏離檢測(cè)到的相同的位序列(在對(duì)數(shù)刻度)的平衡值.