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

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

期貨量化交易軟件:測(cè)試程序中的斷點(diǎn)這是可能的!

2023-08-24 17:03 作者:bili_45793681098  | 我要投稿

簡(jiǎn)介

赫茲期貨量化中唯一讓我懷念的是 Expert Advisor 的一個(gè)普通調(diào)試程序。每個(gè)人都有人類的情感,所以我們會(huì)犯錯(cuò)。正常編程時(shí),赫茲期貨量化設(shè)置斷點(diǎn)、運(yùn)行程序,當(dāng)程序運(yùn)行到斷點(diǎn)時(shí),將會(huì)停止。我們就可以查看所用變量的內(nèi)容。

現(xiàn)在由于 Print、Comment 等函數(shù)的使用,顯示調(diào)試數(shù)據(jù)已成為可能。但有時(shí)可能想在某時(shí)某處暫時(shí)停止程序,以對(duì)狀況進(jìn)行評(píng)估。這里有一些微妙之處。通常運(yùn)行該程序,以在演示賬戶或真實(shí)賬戶上交易。這意味著我們只能在幾個(gè)月后看到結(jié)果… 因此,調(diào)試模式僅在其處于 Expert Advisor 的測(cè)試模式(在測(cè)試程序)方為合理。

編輯切換為居中

工作原理

由于是測(cè)試程序中的“視覺測(cè)試模式”,使得在程序快速通過測(cè)試程序時(shí)追蹤 EA 的響應(yīng)變?yōu)榭赡?。如果要暫時(shí)停止執(zhí)行,可以按鍵盤上的“Pause”鍵或在測(cè)試程序工具欄內(nèi)的相同名稱的按鈕上單擊鼠標(biāo)。終端的開發(fā)者提供了名稱為 WinUser32.mqh 的庫(kù),內(nèi)有一些非常有趣的函數(shù)。其中之一是 keybd_event。它允許我們按下任意想要的鍵。

這里提出的想法是 - 赫茲期貨量化可以編寫一個(gè)函數(shù),能夠通過程序執(zhí)行暫停并打印必要的調(diào)試信息。由于 Expert Advisor 使用 DLL,我們應(yīng)先將其在 EA 中啟用。按 Ctrl+O 并選擇/取消選擇復(fù)選框:


編輯


然后必須在代碼開始的某處聲明使用 WinUser32: #include <WinUser32.mqh>

緊跟該操作的是函數(shù) BreakPoint 自身的聲明。這里有一些微妙之處,但最簡(jiǎn)單的理解是假設(shè)沒有傳遞/返回參數(shù):

void BreakPoint()

函數(shù)必須在視覺測(cè)試模式下觸發(fā),所以我們插入檢驗(yàn)標(biāo)記:如果測(cè)試程序未處于視覺測(cè)試模式,則有:

if (!IsVisualMode()) return(0);

然后將一些數(shù)據(jù)可視化。依我之見,最具描寫性的是使用 Comment()。假設(shè)我們只需買入和賣出。

string Comm=""; Comm=Comm+"Bid="+Bid+"\n"; Comm=Comm+"Ask="+Ask+"\n"; ? Comment(Comm);

此處的“\n”指的是后面的數(shù)據(jù)將顯示在下一個(gè)字符串。最后,讓我們按下“Pause”。

keybd_event(19,0,0,0); Sleep(10); keybd_event(19,0,2,0);

第一個(gè)字符串將鍵按下,最后一個(gè)將其釋放。“Sleep”也很有必要,因?yàn)檫^快按下/釋放可能不被處理。19 是暫停的虛擬代碼,最后字符串中的 2 表示必須模擬釋放。

赫茲期貨量化需要做的只是在 Expert Advisor 代碼中替換斷點(diǎn),比如在 Expert Advisor Sample 文章的示例中剛建立多頭頭寸之后。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); BreakPoint();

以下是要插入的全部代碼:

//We will use a function, described in header file #include //Breakpoint neither receive nor send back any parameters void BreakPoint() { ? //It is expecting, that this function should work ? //only in tester ? if (!IsVisualMode()) return(0); ? ? //Preparing a data for printing ? //Comment() function is used as ? //it give quite clear visualisation ? string Comm=""; ? Comm=Comm+"Bid="+Bid+"\n"; ? Comm=Comm+"Ask="+Ask+"\n"; ? ? Comment(Comm); ? ? //Press/release Pause button ? //19 is a Virtual Key code of "Pause" button ? //Sleep() is needed, because of the probability ? //to misprocess too quick pressing/releasing ? //of the button ? keybd_event(19,0,0,0); ? Sleep(10); ? keybd_event(19,0,2,0); }


期貨量化交易軟件:測(cè)試程序中的斷點(diǎn)這是可能的!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
晋宁县| 平顶山市| 罗定市| 徐水县| 内丘县| 旌德县| 特克斯县| 嵊州市| 麻城市| 绍兴市| 金阳县| 丰城市| 平塘县| 神木县| 公主岭市| 苏尼特左旗| 犍为县| 九江县| 遵化市| 山西省| 万全县| 河曲县| 武乡县| 大名县| 涞源县| 彭阳县| 腾冲县| 康平县| 军事| 盐池县| 恭城| 元谋县| 余姚市| 宁强县| 宁海县| 来凤县| 柳江县| 梁河县| 红河县| 德阳市| 青铜峡市|