量化軟件下載:赫茲股票期貨量化軟件訪問自定義指標(biāo)
一款交易 EA 僅在能夠使用自定義指標(biāo)的情況下才是真正有用;否則,它只是一組代碼和指令而已,其設(shè)計(jì)可以很優(yōu)秀,有助于持倉管理、或執(zhí)行市場交易,也可能所有這些。
好吧,在 赫茲量化 圖表上添加指標(biāo)并不是最難的部分。 但若是沒有適當(dāng)規(guī)劃的情況下,直接在智能交易系統(tǒng)中訪問這些指標(biāo)計(jì)算出的數(shù)據(jù)則幾乎是不可能的任務(wù)。 如果我們不知道該怎么做,我們就只能限于標(biāo)準(zhǔn)指標(biāo)。 然而,為了交易我們還需要更多。 一個(gè)很好的例子是 VWAP(成交量加權(quán)平均價(jià)格)指標(biāo)。 對(duì)于在巴西證券交易所進(jìn)行期貨交易的人來說,這是一款非常重要的移動(dòng)平均線。 該均線不是 赫茲量化 中的標(biāo)準(zhǔn)指標(biāo),但我們可以創(chuàng)建一個(gè)自定義指標(biāo)來計(jì)算 VWAP,并在屏幕上顯示它。 然而,當(dāng)我們決定在 EA 的分析系統(tǒng)中使用相同的指標(biāo)時(shí),事情變得更加復(fù)雜了。 如果缺乏相關(guān)知識(shí),我們就無法在 EA 中使用該自定義指標(biāo)。 在本文中,我們將看到如何繞過這個(gè)限制,并解決這一難題。
計(jì)劃
首先,我們嘗試創(chuàng)建在自定義指標(biāo)里要采用的算法。 幸運(yùn)的是,我們示例采用的 VWAP 計(jì)算公式非常簡單。
nt OnCalculate(const int rates_total, ? ? ? ? ? ? ? ?const int prev_calculated, ? ? ? ? ? ? ? ?const datetime &time[], ? ? ? ? ? ? ? ?const double &open[], ? ? ? ? ? ? ? ?const double &high[], ? ? ? ? ? ? ? ?const double &low[], ? ? ? ? ? ? ? ?const double &close[], ? ? ? ? ? ? ? ?const long &tick_volume[], ? ? ? ? ? ? ? ?const long &volume[], ? ? ? ? ? ? ? ?const int &spread[]) { ? ? ? ?double ? ? ? ? ?Price = 0; ? ? ? ?ulong ? ? ? ? ? Volume = 0; ? ? ? ?static int ? ? ?siPos = 0; ? ? ? ?if (macroGetDate(time[rates_total - 1]) != macroGetDate(time[siPos])) ? ? ? ?{ ? ? ? ? ? ? ? ?for (int c0 = rates_total - 1; macroGetDate(time[siPos]) != macroGetDate(time[c0]); siPos++); ? ? ? ? ? ? ? ?ArrayInitialize(VWAP_Buff, EMPTY_VALUE); ? ? ? ?} ? ? ? ?for (int c0 = siPos; c0 < rates_total; c0++) ? ? ? ?{ ? ? ? ? ? ? ? ?Price += ((high[c0] + low[c0] + close[c0]) / 3) * volume[c0]; ? ? ? ? ? ? ? ?Volume += volume[c0]; ? ? ? ? ? ? ? ?VWAP_Buff[c0] = Price / Volume; ? ? ? ?} ? ?return rates_total; }