期貨量化交易軟件:繪制支撐/阻力位的方法
簡(jiǎn)介
支撐/阻力位幾乎是所有交易者采用的基本工具。大多數(shù)預(yù)測(cè)中都可以見(jiàn)到這些位置,每個(gè)交易者必須能夠獨(dú)立找出。
本文描述了用于檢測(cè)支撐/阻力位的簡(jiǎn)單腳本的創(chuàng)建過(guò)程。由于面向的對(duì)象為初學(xué)者,你可以找到過(guò)程中每個(gè)階段的詳細(xì)解釋。然而,盡管腳本非常簡(jiǎn)單,本文對(duì)于高級(jí)交易者和赫茲期貨量化平臺(tái)用戶(hù)也非常有幫助。其中包含了數(shù)據(jù)導(dǎo)出至表格格式、表格導(dǎo)入 Microsoft Excel 和繪制便于更加詳細(xì)分析圖表的示例。

編輯切換為居中
支撐/阻力位
以下可見(jiàn)兩個(gè)支撐/阻力位。
我們并不打算深入探究該術(shù)語(yǔ)的含義。在大多數(shù)描述支撐/阻力位的書(shū)籍中,可以看到如下表述,即報(bào)價(jià)范圍在大部分時(shí)間內(nèi)處于這兩條線之間,很少會(huì)突破。
可以在下圖中找到佐證。
我們可以利用這一功能。要找出支撐/阻力位,必須計(jì)算報(bào)價(jià)和價(jià)位交叉的次數(shù)。
這種計(jì)算并不很難。因此,我們?cè)诿總€(gè)價(jià)格和交叉該價(jià)格的柱的數(shù)量之間建立關(guān)聯(lián)?,F(xiàn)在我們的問(wèn)題是顯示這些結(jié)果。在赫茲期貨量化中使用指標(biāo)圖無(wú)法實(shí)現(xiàn),因?yàn)槲覀儾⒉恍枰獣r(shí)間上的價(jià)格圖,而是價(jià)格上的柱形圖。這就是我們需要導(dǎo)出數(shù)據(jù)并在其他不同程序中分析的原因。
創(chuàng)建腳本
首先,我們必須創(chuàng)建新的腳本。

編輯切換為居中
為此,前往“導(dǎo)航器”窗口并在“腳本”區(qū)右擊并選擇“創(chuàng)建”命令。將顯示新的窗口。確保要?jiǎng)?chuàng)建的程序類(lèi)型為腳本,然后單擊“下一步”按鈕。

編輯
然后根據(jù)要求輸入腳本名稱(chēng)和參數(shù)。單擊“完成”按鈕后,可以開(kāi)始編寫(xiě)腳本。

編輯
編寫(xiě)腳本
腳本的源代碼不超過(guò)二十行:
//+------------------------------------------------------------------+ //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ExportLevels.mq4 | //| ? ? ? ? ? ? ? ? ? ? ?Copyright ? 2006, MetaQuotes Software Corp. | //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ? 2006, MetaQuotes Software Corp." #property link ? ? ?"https://www.metaquotes.net" #property show_inputs extern int MaxLimit = 1000; //+------------------------------------------------------------------+ //| script program start function ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+------------------------------------------------------------------+ int start() ?{ ? int handle; ? handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t'); ? FileWrite(handle, "Cost", "Bars Num"); ? double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)]; ? double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)]; ? for (double d = d1; d d2; d += 0.0001) ? ? { ? ? ? double a = 0.0; ? ? ? for(int i = 0; i MaxLimit; i++) ? ? ? ? ? if(d > Low[i] && d High[i]) ? ? ? ? ? ? ? a+=1; ? ? ? ? FileWrite(handle, d, a); ? ? } ? FileClose(handle); ? return(0); ?} //+------------------------------------------------------------------+
腳本僅包含一個(gè)函數(shù),start()。每次調(diào)用腳本時(shí)都會(huì)運(yùn)行。在下面可以看到源代碼的詳細(xì)解釋?zhuān)?/p>
#property show_inputs extern int MaxLimit = 1000;
第一行表明,在運(yùn)行腳本之前,要求用戶(hù)選擇外部參數(shù)。實(shí)際上,在第二行定義了一個(gè)單一參數(shù)。MaxLimit 涉及程序使用的歷史柱的數(shù)量。默認(rèn)為 1000,但用戶(hù)可以隨時(shí)更改。
? int handle; ? handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t'); ? FileWrite(handle, "Cost", "Bars Num");
start() 函數(shù)的前兩行負(fù)責(zé)打開(kāi)含有參數(shù) FILE_CSV(意味著文件為文本表格)和 FILE_WRITE(意味著文件打開(kāi)以進(jìn)行編寫(xiě))的“FindLevels.txt”文件?!甛t’參數(shù)表示文件中的數(shù)字將以表格分割。文件中會(huì)有兩列,第一列是“成本” - 價(jià)格,第二列是“柱數(shù)” - 交叉該價(jià)格的柱的數(shù)量。使用 FileWrite() 函數(shù),我們?cè)凇癋indLevels. txt”文件中寫(xiě)下列的名稱(chēng)。
? double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)]; ? double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
然后我們從零柱到具有記錄中 MaxLimit 數(shù)量的柱找到最高和最低價(jià)格。iLowest() 顯示了最低價(jià)格所在的柱的索引。Low[] 是該柱的最低價(jià)格值。對(duì)于 iHighest() 和 High[],遵循相同的步驟。
? for (double d = d1; d <= d2; d += 0.0001) ? ? { ? ? ? double a = 0.0; ? ? ? for(int i = 0; i < MaxLimit; i++) ? ? ? ? ? if(d > Low[i] && d < High[i]) ? ? ? ? ? ? ? a+=1; ? ? ? ? FileWrite(handle, d, a); ? ? }
之后,我們得到“for”循環(huán)。該循環(huán)以 0.0001 的步長(zhǎng)從最低價(jià) d1 運(yùn)行至最高價(jià) d2。變量‘a(chǎn)’是交叉價(jià)格“d”的柱的數(shù)量。第二個(gè)封閉的循環(huán)運(yùn)行 MaxLimit 記錄柱并檢驗(yàn)是否交叉價(jià)格“d”。在封閉循環(huán)結(jié)束后,F(xiàn)ileWrite 過(guò)程將價(jià)格“d”和柱的數(shù)量“a”寫(xiě)入文件。
? FileClose(handle); ? return(0);
在 start() 過(guò)程結(jié)束后,關(guān)閉文件并用 return() 函數(shù)結(jié)束該過(guò)程。編寫(xiě)腳本后,可以單擊“編譯”按鈕進(jìn)行編譯,并從赫茲期貨量化“導(dǎo)航器”窗口的“腳本”區(qū)運(yùn)行。
Excel 文件
調(diào)用腳本后,程序在“\experts\files\”文件夾創(chuàng)建“FindLevels.txt”文件。用 Excel 將其打開(kāi)。為此,我們必須調(diào)用 Microsoft Excel 并單擊“打開(kāi)”按鈕,然后選擇“文本文件”文件類(lèi)型,找到我們需要的文件并單擊“打開(kāi)”按鈕。

編輯切換為居中
在前兩個(gè)窗口中,我們并不需要做任何更改,只需單擊“下一步”按鈕。

編輯

編輯
在第三個(gè)窗口,單擊“高級(jí)”按鈕,選擇點(diǎn)符號(hào)(“.”)作為小數(shù)點(diǎn)和 '(撇號(hào))作為千分位。然后單擊“確定”和“結(jié)束”。

編輯
于是,我們?cè)?Excel 得到兩列?,F(xiàn)在我們得繪制圖表。選擇 插入->“圖表”。

編輯
最后需要做的是選擇期貨圖表類(lèi)型及其顯示類(lèi)型。

編輯