最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

量化交易軟件:HTML 中的圖表

2023-07-31 17:54 作者:bili_45793681098  | 我要投稿

簡(jiǎn)介

赫茲量化很有可能是一個(gè)完全自給自足的產(chǎn)品,并不需要額外的擴(kuò)展。赫茲量化提供與經(jīng)紀(jì)人的連接,顯示報(bào)價(jià),允許我們使用各種各樣的指標(biāo)來(lái)進(jìn)行市場(chǎng)分析,當(dāng)然,還使交易者有機(jī)會(huì)進(jìn)行交易操作。顯然,因?yàn)?span id="s0sssss00s" class="nolink">赫茲量化主要專注于輕松交易,它不能——在技術(shù)上也不應(yīng)該是一個(gè)專為數(shù)學(xué)方法的研究、分析以及多媒體內(nèi)容的創(chuàng)建等而設(shè)計(jì)的絕對(duì)通用的工具。

此外,軟件產(chǎn)品的過(guò)度通用性也最終會(huì)導(dǎo)致其效率、可靠性和安全性的降低。另一方面,在某些情形下,用戶可能需要某些額外的功能,尤其是交易者為具有各個(gè)領(lǐng)域的專業(yè)知識(shí)和教育背景的人。因此,任何額外的功能可能提高交易平臺(tái)的吸引力,當(dāng)然,如果它們是以非常簡(jiǎn)單的方式實(shí)現(xiàn)的,并且沒(méi)有以其可靠性和安全性為代價(jià)的話。

在本文中,我們將考慮此類(lèi)補(bǔ)充中的一種,這種補(bǔ)充提供依據(jù)從客戶端獲得的數(shù)據(jù)創(chuàng)建和顯示圖表的機(jī)會(huì)。

每個(gè)程序都必須做最其擅長(zhǎng)的事情。如果我們遵守此原則,則讓我們使赫茲量化負(fù)責(zé)與經(jīng)紀(jì)人進(jìn)行交易,收集和處理收到的信息,并使用另一個(gè)針對(duì)這些用途的程序來(lái)負(fù)責(zé)信息的圖形顯示。

編輯切換為居中

WEB 瀏覽器

現(xiàn)今很難找到一臺(tái)沒(méi)有安裝 Web 瀏覽器的計(jì)算機(jī)。長(zhǎng)久一來(lái),瀏覽器一直在進(jìn)化和改進(jìn)?,F(xiàn)代瀏覽器的運(yùn)行相當(dāng)可靠、穩(wěn)定,并且最重要的是——免費(fèi)??紤]到 WEB 瀏覽器實(shí)際上是訪問(wèn)互聯(lián)網(wǎng)的基本工具,大多數(shù)用戶都熟悉它,在使用它時(shí)幾乎不會(huì)遇到什么困難。

現(xiàn)代瀏覽器的用途是如此之廣,以至于我們已經(jīng)習(xí)慣通過(guò) Web 瀏覽器來(lái)觀看視頻、聆聽(tīng)音樂(lè)、玩游戲以及進(jìn)行很多其他活動(dòng)。因此,現(xiàn)今 WEB 瀏覽器是一個(gè)完善的工具,用于顯示能夠以各種格式表示的不同類(lèi)型的信息。

必須指出,目前有幾個(gè)非常流行的 WEB 瀏覽器:InternetExplorer、Mozilla Firefox、Google ChromeOpera。這些瀏覽器相互之間在軟件實(shí)施和用戶界面方面可能有顯著不同。然而在理論上,它們應(yīng)完全支持在網(wǎng)絡(luò)中采用的針對(duì)信息交換的基本標(biāo)準(zhǔn),主要涉及 HTML 語(yǔ)言標(biāo)準(zhǔn)。

在實(shí)踐中,盡管開(kāi)發(fā)人員都很努力,瀏覽器在實(shí)施某些協(xié)議或技術(shù)方面仍然有某些個(gè)性。如果我們確定某個(gè)瀏覽器因?yàn)槠涮匦远贿m合我們,則可以通過(guò)向我們的計(jì)算機(jī)安裝一個(gè)或幾個(gè)其他 WEB 瀏覽器來(lái)輕松地解決此問(wèn)題。即使對(duì) Firefox 等瀏覽器狂熱支持的人在他們的系統(tǒng)中同時(shí)也至少安裝有 Internet Explorer。

盡管 WEB 瀏覽器是作為客戶端開(kāi)發(fā)的,提供與遠(yuǎn)程服務(wù)器的互動(dòng),但是它們也可用于顯示存儲(chǔ)在您的計(jì)算機(jī)中的本地信息。查看以前保存在您的計(jì)算機(jī)中的 WEB 頁(yè)面即是這樣的例子。瀏覽器不需要接入互聯(lián)網(wǎng)就可顯示本地頁(yè)面。

因此,運(yùn)行在離線模式下的 WEB 瀏覽器,對(duì)于用于擴(kuò)展 赫茲量化客戶端的圖形能力的程序而言,是一個(gè)非常有吸引力的候選角色。要使用它,您既不需要購(gòu)買(mǎi)昂貴的瀏覽器、進(jìn)行麻煩和冗長(zhǎng)的安裝,也不需要學(xué)習(xí)如何使用新的軟件產(chǎn)品。

因此,在本文的后面,我們將討論使用 WEB 瀏覽器,依據(jù)在 赫茲量化 中獲得的數(shù)據(jù)構(gòu)建圖表。


HTML 和 JavaScript

通過(guò)選擇 WEB 瀏覽器作為我們的擴(kuò)展,讓我們?yōu)樽约褐贫ㄒ粋€(gè)我們將嚴(yán)格遵守的基本原則 - 創(chuàng)建的 HTML 頁(yè)面的顯示必須在沒(méi)有本地或遠(yuǎn)程 WEB 服務(wù)器的情況下進(jìn)行。即我們不會(huì)在我們的計(jì)算機(jī)上安裝任何服務(wù)器軟件,并且顯示我們的頁(yè)面不需要接入網(wǎng)絡(luò)。我們創(chuàng)建的 HTML 頁(yè)面應(yīng)只能通過(guò) WEB 瀏覽器顯示,并且應(yīng)位于我們的計(jì)算機(jī)上。此原則將最大程度地減少與因接入外部網(wǎng)絡(luò)而可能導(dǎo)致的安全性能下降有關(guān)的風(fēng)險(xiǎn)。

僅使用 HTML 4 的功能來(lái)進(jìn)行信息顯示,我們可以創(chuàng)建具有表格、格式化文本和圖像的 WEB 頁(yè)面,但是這些機(jī)會(huì)并不能讓我們完全滿意,因?yàn)槲覀兊哪繕?biāo)是依據(jù)從 赫茲量化 收到的數(shù)據(jù)創(chuàng)建完善的圖表。

在大多數(shù)情形下,當(dāng)前往不同的網(wǎng)站時(shí)我們?cè)跒g覽器中看到的內(nèi)容是使用 HTML 擴(kuò)展創(chuàng)建的。一般而言,這些擴(kuò)展在服務(wù)器端執(zhí)行,因此不符合我們的目的。能夠在瀏覽器端工作并且不需要服務(wù)器軟件的技術(shù),例如 Macromedia Flash、JavaScript 和 Java,可能會(huì)讓我們產(chǎn)生興趣。

如果要在瀏覽器端執(zhí)行 Macromedia Flash 和 Java 應(yīng)用,我們至少需要安裝額外的插件,而用 JavaScript 編寫(xiě)的用戶程序由瀏覽器直接執(zhí)行的。所有常見(jiàn)的 WEB 瀏覽器都有它們自己的內(nèi)置 JavaScript 解釋程序。為了避免安裝任何額外的軟件或插件,讓我們選擇 JavaScript

因此,在后文中,我們將僅使用支持 MQL5赫茲量化以及支持 HTMLJavaScript 的 WEB 瀏覽器。不需要其他軟件。應(yīng)指出,HTML 頁(yè)面僅僅是文本文件。因此,要?jiǎng)?chuàng)建 HTML 文檔,我們可以使用任何文本編輯器。例如,我們可以在赫茲量化中創(chuàng)建和編輯 HTML 代碼。在撰寫(xiě)本文時(shí),HTML 代碼的編輯是在 Opera @ USB v10.63 瀏覽器中進(jìn)行的,該瀏覽器允許您編輯頁(yè)面內(nèi)容,保存修改后的頁(yè)面,以及預(yù)覽顯示結(jié)果。

不熟悉 HTML 和 JavaScript 語(yǔ)言的人可能擔(dān)心會(huì)在掌握它們時(shí)遇到某些困難。為了有利于我們的任務(wù),并且避免深入學(xué)習(xí) HTML 和 JavaScript,我們將嘗試使用以此技術(shù)為基礎(chǔ)的現(xiàn)成解決方案。因?yàn)樵诒疚牡姆秶鷥?nèi),我們的目標(biāo)僅限于構(gòu)建圖表,因此我們將使用專為此目的而編寫(xiě)好的現(xiàn)成 JavaScript 庫(kù)。

Emprise JavaScript Charts 是一個(gè)相當(dāng)先進(jìn)的圖形庫(kù)。或許讀者有興趣通過(guò)提供的鏈接更好地掌握它,但是這個(gè)圖形庫(kù)并不是完全免費(fèi)的。因此,讓我們轉(zhuǎn)向免費(fèi)的庫(kù),例如 Dygraphs JavaScript Visualization LibraryHighcharts charting library。Dygraphs 因其簡(jiǎn)潔而極具吸引力,而 Highcharts 庫(kù)包含大量的功能,看起來(lái)更加通用。盡管 Highcharts 庫(kù)大約有 75 KB,并且需要額外的 jQuery 庫(kù),該庫(kù)大約有 70 KB,我們?nèi)匀贿x其作為我們的庫(kù)。

您可以在我們的網(wǎng)站 http://www.highcharts.com/ 上的 "Demo Gallery" 部分熟悉 Highcharts 庫(kù)。對(duì)于每個(gè)示例,您可以通過(guò)單擊 "View options"(查看選項(xiàng))來(lái)查看其 JavaScript 源代碼。有關(guān)庫(kù)的詳細(xì)說(shuō)明位于 "Documentation/Options Reference"(說(shuō)明文檔/選項(xiàng)參考)部分,在這個(gè)部分中,您還可以找到使用不同選項(xiàng)的很多例子。因?yàn)?JavaScript 代碼的豐富性以及與 MQL 編程器語(yǔ)法的不同,此庫(kù)的使用似乎相當(dāng)復(fù)雜。但事實(shí)并非如此??紤]簡(jiǎn)單 HTML 文件的第一個(gè)例子,該文件采用庫(kù)來(lái)顯示圖表。

作為一個(gè)例子,讓我們?cè)?Notepad 編輯器中創(chuàng)建一個(gè)名為 Test_01.htm 的文本文件,并復(fù)制以下使用庫(kù)的簡(jiǎn)單例子。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Example</title> <!-- - --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" ? ? ? ? ? ? type="text/javascript"></script> <script src="/js/highcharts.js" type="text/javascript"></script> <!-- - --> <script type="text/javascript"> var chart1; $(document).ready(function(){ ?chart1 = new Highcharts.Chart({ ? ?chart: {renderTo: 'container1'}, ? ?series: [{data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]}] ?}); }); </script> <!-- - --> </head> <body> <div id="container1" style="width: 700px; height: 400px "></div> </body> </html>

示例代碼被注釋分為四個(gè)部分。

第一部分,代碼的頂部包含普通的 HTML 頁(yè)面標(biāo)記。目前,我們對(duì)此部分的代碼沒(méi)有特別興趣。

接著是另一部分,這部分包含兩個(gè) <script> 標(biāo)記。在第一個(gè)標(biāo)記中,我們向?yàn)g覽器發(fā)出一個(gè)指令,要求從網(wǎng)站 ajax.googleapis.com 下載庫(kù)代碼 jquery.min.js。第二個(gè)標(biāo)記假定在服務(wù)器端,目錄 /js/ 包含瀏覽器必須下載的庫(kù) highcharts.js。以前已經(jīng)決定,在顯示我們的頁(yè)面時(shí)不應(yīng)連接到任何外部資源,因此必須更改這部分的代碼。

在更改之后,這部分的代碼如下所示

<script src="jquery.min.js" type="text/javascript"></script> <script src="highcharts.js" type="text/javascript"></script>


在代碼的下一部分創(chuàng)建了 Highcharts.Chart 類(lèi)的一個(gè)對(duì)象。參數(shù) "renderTo:'container1'" 指出圖表將顯示在名為 "container1" 的 HTML 元素中,參數(shù) "data" 定義要顯示在圖表中的數(shù)據(jù)。如我們?cè)诒纠兴?jiàn),數(shù)據(jù)的定義方式與參數(shù)相同 - 在創(chuàng)建 Highcharts.Chart 類(lèi)的對(duì)象期間。通過(guò)簡(jiǎn)單的更改,我們將顯示數(shù)據(jù)的定義放到一個(gè)單獨(dú)的代碼部分,這樣允許我們?cè)谛枰@示多個(gè)圖表時(shí)能夠?qū)λ鼈兊臄?shù)據(jù)分組。

在我們的例子的最后一部分,標(biāo)記 <div> 聲明一個(gè)名為 "container1" 的 HTML 元素,并且指出此元素的尺寸。如前文所述,這是將用于構(gòu)建圖表的 HTML 元素,其大小由在標(biāo)記 <div> 中指定的元素 "container1" 的尺寸確定。

考慮到所做的更改之后,我們的示例代碼如下所示:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Example</title> <!-- - --> <script src="jquery.min.js" type="text/javascript"></script> <script src="highcharts.js" type="text/javascript"></script> <!-- - --> <script type="text/javascript"> var dat1 = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]; </script> <!-- - --> <script type="text/javascript"> var chart1; $(document).ready(function(){ ?chart1 = new Highcharts.Chart({ ? ?chart: {renderTo: 'container1'}, ? ?series: [{data: dat1}] ?}); }); </script> <!-- - --> </head> <body> <div id="container1" style="width: 700px; height: 400px "></div> </body> </html>

可以從文末的附件復(fù)制此測(cè)試案例和所有庫(kù)。Test_01.htm 示例文件以及庫(kù)文件位于相同的 \Test 文件夾中,因此,我們只需要雙擊 HTML 文件 Test_01.htm 即可查看我們的工作成果。

必須記住,要正常顯示此測(cè)試頁(yè)面,應(yīng)在 WEB 瀏覽器中允許 JavaScript 的執(zhí)行。因?yàn)槌鲇诎踩康?,瀏覽器允許您禁用此選項(xiàng),它有可能被關(guān)閉。如此一來(lái),我們應(yīng)能看到下圖:


編輯


圖 1. Test_01.htm

這是我們的第一個(gè)測(cè)試圖表,盡管此技術(shù)表面上很復(fù)雜,但是其創(chuàng)建并不需要太長(zhǎng)的時(shí)間。

我們應(yīng)指出以此方式創(chuàng)建的顯示圖表的某些特點(diǎn)。在復(fù)制的目錄中,打開(kāi)文件 Test_01.htm,如果 WEB 瀏覽器允許您放大查看的頁(yè)面,您將發(fā)現(xiàn),即使放大很多倍,圖表的質(zhì)量也不會(huì)變差。

這是因?yàn)榇藞D表不是諸如 PNG 或 JPEG 文件等靜態(tài)圖像,在放大或縮小為其繪圖分配的區(qū)域后會(huì)重繪圖像。因此,此類(lèi)圖像不能用我們通常喜歡的圖片保存方式保存到磁盤(pán)。因?yàn)閳D表是采用 JavaScript 創(chuàng)建的,我們必須指出,不同的瀏覽器具有它們自己的對(duì)該語(yǔ)言的內(nèi)置解釋程序,可能并不始終都是按相同的方式執(zhí)行程序。

使用 JavaScript 創(chuàng)建的圖表在使用不同的瀏覽器查看時(shí)可能會(huì)有所不同。大多數(shù)情況下,與其他瀏覽器相比,這些差異最常出現(xiàn)在 Internet Explorer 中。

但是我們希望 JavaScript 庫(kù)的創(chuàng)建者能夠考慮讓他們的代碼與最流行的 WEB 瀏覽器具有可能的最大兼容性。


赫茲量化和 MQL5

在以上例子中,要在圖表中顯示的數(shù)據(jù)是在創(chuàng)建 HTML 頁(yè)面期間手動(dòng)設(shè)定的。為了安排將數(shù)據(jù)從赫茲量化傳輸?shù)絼?chuàng)建的圖表,我們使用最簡(jiǎn)單的方法。讓赫茲量化 將數(shù)據(jù)記錄到一個(gè)單獨(dú)的文件,然后在顯示圖表時(shí)從該文件將數(shù)據(jù)載入瀏覽器。讓我們編寫(xiě)一個(gè)包含 HTML 頁(yè)面的例子,該例子通過(guò)從一個(gè)文件和 MQL5 中創(chuàng)建此文件的腳本下載數(shù)據(jù),從而顯示圖表。

對(duì)于 HTML 文件,我們將使用以前創(chuàng)建的文件 Test_01.htm(先對(duì)其進(jìn)行一些小的更改)。我們將修改后的文件稱為 example1.htm。做出的更改將會(huì)減少,因?yàn)橐韵麓a行:

<script type="text/javascript"> var dat1 = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]; </script>

將被替換為

<script type="text/javascript"> var dat1=[0]; </script> <script src="exdat.txt" type="text/javascript"></script>

現(xiàn)在,瀏覽器在下載 HTML 頁(yè)面時(shí)也需要下載 exdat.txt 文本文件,在該文件中,要顯示在圖表中的值將被賦予 dat1 數(shù)組。此文件應(yīng)包含一段 JavaScript 代碼??梢允褂脤?duì)應(yīng)的腳本在赫茲量化中輕松創(chuàng)建此文件。

以下提供了此類(lèi)腳本的一個(gè)例子。

//+------------------------------------------------------------------+ //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Example1.mq5 | //| ? ? ? ? ? ? ? ? ? ? ? ?Copyright 2010, MetaQuotes Software Corp. | //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2010, MetaQuotes Software Corp." #property link ? ? ?"https://www.mql5.com" #property version ? "1.00" //+------------------------------------------------------------------+ //| Script program start function ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+------------------------------------------------------------------+ void OnStart() ?{ ?int i,n,fhandle; ?double gr[25]; ?string str; ? ?n=ArraySize(gr); ?for(i=0;i<n;i++) ? ?{ ? ?gr[i]=NormalizeDouble(MathSin(i*3*2*M_PI/n),4); ? ?} ?str=DoubleToString(gr[0],4); ?for(i=1;i<n;i++) ? ?{ ? ?str+=","+DoubleToString(gr[i],4); ? ?} ? ?ResetLastError(); ?fhandle=FileOpen("exdat.txt",FILE_WRITE|FILE_TXT|FILE_ANSI); ?if(fhandle<0){Print("File open failed, error ",GetLastError());return;} ? ?FileWriteString(fhandle,"dat1=["+str+"];\n"); ? ?FileClose(fhandle); ?} //+------------------------------------------------------------------+

為了存儲(chǔ)顯示的數(shù)據(jù),此腳本使用容納 25 個(gè)元素的 gr[] 數(shù)組。作為一個(gè)例子,此數(shù)組被填以正弦函數(shù)的值,并且四舍五入到四位小數(shù)。當(dāng)然,此數(shù)組也可以被填以任何其他更加有用的數(shù)據(jù)。

此外,此數(shù)據(jù)被格式化并組合為一個(gè)文本字符串。為了減小生成的文本文件的大小,僅將 gr[] 數(shù)組元素精確到四位小數(shù)的值放置到字符串。為此,我們使用 DoubleToString() 函數(shù)。

組合文本字符串 str 之后,將其存儲(chǔ)到 exdat.txt 文件中。如果成功執(zhí)行此腳本,將在客戶端的 \MQL5\Files 子文件夾中創(chuàng)建 texdat.txt 文本文件;如果該文件已經(jīng)存在,則會(huì)被覆蓋。

本文末尾的附件部分提供了 jquery.min.js、highcharts.js、Example1.mq5、Example1.htm 和 exdat.txt 文件。這五個(gè)文件位于目錄 \Example1 中。要簡(jiǎn)單地查看結(jié)果,只需要復(fù)制此示例,并在目錄 \Example1 中打開(kāi)文件 Example1.htm。將依據(jù)來(lái)自 exdat.txt 文件的數(shù)據(jù)建立圖表。


量化交易軟件:HTML 中的圖表的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
内丘县| 台北市| 随州市| 龙山县| 怀化市| 永福县| 晴隆县| 石棉县| 镇坪县| 荣成市| 宜阳县| 潜山县| 泗阳县| 定襄县| 洪泽县| 遵化市| 乃东县| 平泉县| 崇信县| 江城| 启东市| 贡嘎县| 南宁市| 陈巴尔虎旗| 桂平市| 惠州市| 庆阳市| 黄冈市| 苏尼特右旗| 安多县| 克东县| 离岛区| 灯塔市| 玉溪市| 师宗县| 宁乡县| 芦溪县| 山阳县| 萍乡市| 龙川县| 布尔津县|