RM新时代官方网站

「FX581獨家」MT4開發(fā)技巧 歷史記錄的“坑”

我們會經(jīng)常遇到這樣的需求:統(tǒng)計歷史交易記錄的手數(shù),或者得到最后一筆歷史交易訂單的信息。這樣的功能對于我們來說并不困難,下面是一個簡單的代碼示例:

double lot = 0;

for(int i=0;i < OrdersHistoryTotal();i )

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false) continue;

lot = OrderLots();

}

Print("總手數(shù):",lot);

這段代碼就是通過循環(huán)統(tǒng)計出所有歷史的手數(shù),其實這段代碼就是把循環(huán)遍歷所有在場單的代碼改動下即可。把OrdersTotal()函數(shù)改成OrdersHistoryTotal(),把OrderSelect函數(shù)里增加一個參數(shù):MODE_HISTORY。那么這么一個簡單的程序也有問題嗎?答案是肯定的。

我們來運行下這個EA程序,在終端中顯示的結果是:

總手數(shù)居然是0!太不可思議了,明明我有很多的交易記錄啊。

現(xiàn)在跟小編一起來做一些操作,再運行下程序看看最后的結果是什么:

「FX581獨家」MT4開發(fā)技巧 歷史記錄的“坑”

在賬戶歷史中點擊右鍵,選擇所有交易記錄,現(xiàn)在賬戶歷史中就出現(xiàn)了之前交易的所有歷史記錄

「FX581獨家」MT4開發(fā)技巧 歷史記錄的“坑”


那么我們在運行下EA程序試下結果就會顯示正常:

「FX581獨家」MT4開發(fā)技巧 歷史記錄的“坑”

這就是通過程序得到歷史記錄的一個“坑”了,在MT4中,軟件默認會只顯示當月的歷史記錄,而程序在得到歷史記錄時只根據(jù)軟件當前的歷史記錄進行查找,由于這個月我沒有做任何的交易,所以在統(tǒng)計總手數(shù)的時候得到的是0,而如果在軟件里把所有的交易記錄都顯示出來后,程序終于可以正常工作了。
(本段落標藍是為了推廣所用,請吧xxx替換為相應要宣傳的平臺,如果沒有可做的平臺可以刪除這段內容)之所以我們很少發(fā)現(xiàn)這個問題的原因在于一般的MT4平臺模擬賬戶時效性都很短,注冊了一個模擬戶后很快就過期了,導致很少有人能發(fā)現(xiàn)這個問題。所以擁有一個能開長效模擬戶的平臺尤為重要了,我們推薦使用xxx平臺它可以提供長達xx天的模擬賬戶。
長效模擬戶本身對于我們開發(fā)和測試EA程序是有很大幫助,眾所周知開發(fā)完成一款新的EA程序后只是用歷史模擬是不夠的,還需要掛機測試,如果測試沒幾天就過期了這樣對于開發(fā)EA來說是非常煩惱的事情。

關于這個歷史記錄的第二個“坑”是,我們要想得到歷史記錄只能用EA程序來獲取,如果我們寫一個腳本程序,同樣是得不到歷史記錄的,即使我們已經(jīng)在賬戶歷史中顯示了所有的記錄。

那么我們如何才能避免這個問題呢?因為客戶在使用我們的EA程序時是不知道這個問題的,如果客戶不知道或根本不會去這樣操作,我們在程序中如何避免這個問題呢?一個比較簡單的辦法是在您的EA程序運行中,把所有下單的記錄都存在文件中,這樣即使客戶沒有任何操作也可以拿到這些歷史記錄信息,下面是一個簡單的存文件的代碼示例:

//content為要存儲的內容

void setfile(string content)

{

string Filename = "要存儲的文件名";

int filehandle = FileOpen(filename,FILE_WRITE|FILE_TXT);//也可以存成CSV文件把FILE_TXT替換成FILE_CSV,這樣可以存儲多條信息

if(filehandle == INVALID_HANDLE)//判斷讀取文件是否出現(xiàn)錯誤

{

FileClose(filehandle);

Print("存儲文件發(fā)生錯誤");

}

else//正常打開,可以寫入內容了

{

FileWriteString(filehandle, content);

FileClose(filehandle);

}

}

通過以上的方法,想必各位已經(jīng)有所了解,在以后的開發(fā)中我們的程序將更加的完善和健壯。

版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年5月1日 上午8:46
下一篇 2024年5月1日 上午8:58

相關推薦

  • 戰(zhàn)隊系統(tǒng)集成項目管理

    戰(zhàn)隊系統(tǒng)集成項目管理 戰(zhàn)隊系統(tǒng)集成項目管理是指在一個團隊中,將不同的技術元素整合起來,以實現(xiàn)一個高效、可靠的戰(zhàn)隊系統(tǒng)。在戰(zhàn)隊系統(tǒng)集成項目管理中,需要考慮許多因素,如技術、時間、預算…

    科研百科 2025年1月17日
    3
  • 興業(yè)銀行濟南分行:加強合規(guī)內控管理,夯實穩(wěn)健發(fā)展根基(銀行強化內控合規(guī)管理)

    記者 田佳玉 通訊員 許淑霞 為進一步夯實內控發(fā)展根基,興業(yè)銀行濟南分行認真落實年初黨建和經(jīng)營工作會議精神,始終堅持目標導向、監(jiān)管導向、問題導向,以“合規(guī)為本、案防為重、精準治理”…

    科研百科 2024年5月12日
    54
  • 華為PMOP

    華為PMOP: 構建高效敏捷的軟件開發(fā)流程 在軟件開發(fā)領域,華為一直是領先的企業(yè)之一。作為一家全球領先的通信技術公司,華為需要不斷地提高自己的軟件開發(fā)效率,并確保其產(chǎn)品的高質量和可…

    科研百科 2024年11月1日
    9
  • 科研項目申報書范例中藥

    科研項目申報書范例中藥 標題:基于草藥功效的個性化治療中藥研發(fā)及推廣 項目背景: 近年來,隨著人口老齡化、疾病譜變化和生活方式的改變,越來越多的人開始關注中藥在醫(yī)療保健中的作用。中…

    科研百科 2025年4月17日
    4
  • 南京商城系統(tǒng)項目管理

    南京商城系統(tǒng)項目管理:從需求分析到上線交付 南京商城系統(tǒng)是一款功能強大的電子商務系統(tǒng),于2016年建成并投入使用。該項目的管理團隊在項目啟動前進行了充分的市場調研和需求分析,并制定…

    科研百科 2024年12月11日
    0
  • 速獅|智能化會員管理,留住企業(yè)99%商機(速獅平臺官方網(wǎng)站)

    21世紀以來,隨著我國經(jīng)濟的快速發(fā)展,國民消費也在逐漸升級。與此同時,”會員經(jīng)濟“迎來了黃金時代。 在競爭愈發(fā)激烈的市場中,顧客對企業(yè)的發(fā)展來說變得十分關鍵,會員管理也成為企業(yè)信息…

    科研百科 2023年5月29日
    493
  • 系統(tǒng)集成項目管理做什么的

    系統(tǒng)集成項目管理是指一種用于管理和維護各種系統(tǒng)集成的項目管理方法。這些系統(tǒng)集成包括計算機、通信、網(wǎng)絡、數(shù)據(jù)庫、人工智能等各種技術和系統(tǒng),它們需要協(xié)調開發(fā)、測試、部署和維護等工作,以…

    科研百科 2024年10月12日
    9
  • 一文明白NFT開發(fā)需要多少錢(nft 開發(fā))

      當一個市場風口到來之時,投資者總會想盡一切辦法抓住風口。NFT近一兩個月在鏈圈可以說是“一夜成名”許多投資者都跑來問我NFT開發(fā)怎么開發(fā)?多少錢?下面就來詳細的分析一下。   …

    科研百科 2024年5月1日
    62
  • 開發(fā)進度管理系統(tǒng)

    開發(fā)進度管理系統(tǒng) 隨著軟件開發(fā)過程的不斷進展,開發(fā)進度管理系統(tǒng)已經(jīng)成為軟件開發(fā)團隊中必不可少的一部分。一個好的開發(fā)進度管理系統(tǒng)可以提高軟件開發(fā)的效率和質量,降低開發(fā)成本,同時也能夠…

    科研百科 2024年9月23日
    6
  • 科研項目雙流道

    科研項目雙流道 近年來,隨著城市化進程的加速,交通擁堵問題日益突出。為了緩解城市交通擁堵,提高城市交通效率,成都市政府啟動了“雙流道”項目,旨在建設一條集公共交通、自行車、步行等多…

    科研百科 2025年2月15日
    4
RM新时代官方网站