股票量化軟件:赫茲量化開發(fā)和分析交易系統(tǒng)的最佳方法
編寫和測(cè)試一個(gè)簡(jiǎn)單的基于交易量的EA
讓我們考慮開發(fā)一個(gè)EA,使用交易量和時(shí)間區(qū)間作為額外的市場(chǎng)數(shù)據(jù)和交易限制。成交量激增使我們能夠發(fā)現(xiàn)市場(chǎng)參與者做出的重要決定。限制EA服務(wù)器操作時(shí)間的能力允許檢測(cè)交易量非常重要的區(qū)域。讓我們編寫EA并執(zhí)行幾個(gè)測(cè)試和全面分析,以得出關(guān)于系統(tǒng)的結(jié)論。系統(tǒng)本身只需要深入研究市場(chǎng)參數(shù)并研究它們之間的關(guān)系。該系統(tǒng)主要用于顯示每個(gè)柱的參數(shù)都有其自身的權(quán)重,并有助于系統(tǒng)的整體質(zhì)量。EA本身附在文章中,因此每個(gè)人都可以在必要時(shí)使用和修改它。
讓我們從熟知的用于操作倉(cāng)位的開發(fā)庫(kù)開始:
#include <Trade\PositionInfo.mqh>#include <Trade\Trade.mqh> CPositionInfo??m_position=CPositionInfo();// trade position objectCTrade???????? m_trade=CTrade();??????????// trading object
它們主要用于簡(jiǎn)化代碼,我相信,我不需要解釋他們的操作原理,這個(gè)網(wǎng)站有很多關(guān)于這方面的資料。
接下來,定義能夠切換操作模式的編號(hào)列表:
enum MODE_CALCULATE ?? { ?? MODE_1=0, ?? MODE_2=1, ?? MODE_3=2, ?? MODE_4=3?? };
這樣做的目的是期望有幾種模式來確定最有效的市場(chǎng)等式。一開始,關(guān)于我們想利用什么物理性質(zhì)應(yīng)該有一些一般性的想法,但是我們不知道哪個(gè)方程對(duì)我們的情況最有效。在當(dāng)前的EA中,我實(shí)現(xiàn)了四個(gè)等式變體。我們將看看,哪種選擇以最好的方式描述了市場(chǎng)。產(chǎn)生太多的模式是沒有意義的,如果我們的假設(shè)是正確的,我們一定會(huì)看到這一點(diǎn)。我通常只做不超過四種模式。
接下來,定義輸入?yún)?shù)及其目標(biāo):
input MODE_CALCULATE MODEE=MODE_1;//Modeinput int TradeHour=0;//Start Trading Hourinput int TradeMinute=1;//Start Trading Minuteinput int TradeHourEnd=23;//End Trading Hourinput int TradeMinuteEnd=59;//End Trading Minuteinput bool bWriteValuesE=false;//Loginput int CandlesE=50;//Bars To Analyseinput int Signal=200;//Signal Powerinput int PercentE=52;//Percent Signals To One Sideinput bool bInvert=false;//Trade Invertinput int SLE=3000;//Stop Loss Pointsinput int TPE=3000;//Take Profit Pointsinput double Lot=0.01;//Lotinput int MagicF=15670867;//Magic