MQL4命令行編譯產生無效的EX4(已解決)
1 頁面的第 562 頁 12 上一個上一個
Results 1 to 10 of 11

Thread: MQL4命令行編譯產生無效的EX4(已解決)

  1. #1
    嘿,

    我正在使用MT4 Build 1090和MetaEditor V5 Build 1601.我需要不時地自動重新編譯一些MT4指標。為此,我編寫了一個小腳本,通過Windows任務計劃程序定期調用:
    插入代碼@echo關閉C:\ Program Files(x86)\ SomeBrokerName \ metaeditor.execompile:...:MetaQuotes\Terminal\...\MQL4\Indiors\MyIndi​​or.mq4log到目前為止工作正常。日誌文件輸出表明它已成功編譯,0個警告,0個錯誤。但是,當我嘗試將指標放在圖表上時,它經常發生,它不起作用。相反,“專家”選項卡顯示錯誤:
    插入的代碼無法加載C:\ ... \ AppData \ Roaming \ MetaQuotes \ Terminal \ ... \ MQL4 \ Indiors \ MyIndi​​or.ex4所以我必須重新編譯指標然後才能工作。有時不是,我必須一次又一次地重新編譯,直到它工作。

    我已經在不同的計算機,不同的操作系統(Windows 7,Windows 10,...)上嘗試過它。結果相同。有時它有效,有時則不然。

    你有什麼想法在這裡錯了,為什麼它似乎經常生成一個無效的EX4文件?有什麼辦法可以避免這個問題嗎?

    提前致謝。

  2. #2
    你在使用包含文件嗎?還有MT4的新版本(終端:build 1126,metaeditor:build 1861)。您可以在此處下載或在metaquotes演示服務器上創建模擬帳戶,它應自動更新。

  3. #3
    是的,我正在使用包含文件。這會導致問題嗎?我會嘗試新版本。謝謝你的提示!

  4. #4
    Quote Originally Posted by ;
    是的,我正在使用包含文件。這會導致問題嗎?我會嘗試新版本。謝謝你的提示!
    是。您必須指定包含文件的路徑。插入代碼C:\ Program Files \ TradingPlatform \ metaeditor64.execompile:C:\ Program Files \ TradingPlatform \ MQL5 \ Scriptsinclude:C:\ Program Files \ TradingPlatform 2 \ MQL5

  5. #5
    嗯,我可以試試。但如果找不到包含文件,是否會導致編譯錯誤?

  6. #6

    Quote Originally Posted by ;
    嗯,我可以試試。但如果找不到包含文件,是否會導致編譯錯誤?
    是的,如果它找不到mqh文件,它應該會產生錯誤......

  7. #7
    我擔心你錯誤地寫了初始靜態變量(在某些情況下)。因此,每次需要運行時都必須編譯它。

  8. #8
    Quote Originally Posted by ;
    {quote}是的,如果找不到mqh文件會產生錯誤...
    好的,但事實並非如此。在日誌文件中,它顯示0個警告和0個錯誤,並創建MyIndi​​or.ex4文件。但問題是,當我想將指標分配給圖表時,它表示無法加載... \ MyIndi​​or.ex4並且我一次又一次地重新開始重新編譯過程,直到它最終在某個時刻起作用。有時我必須重新編譯2-3次,直到它工作。有時它會在第一次之後起作用。這讓我感到困惑。無論出於何種原因,它似乎都會產生無效的EX4文件。那是日誌文件:插入的代碼C:\ Projects \ 2018 \ 08 \ ... \ Compiler \ Data \ MyIndi​​or_123456_20180930.mq4:信息:編譯'MyIndi​​or_123456_20180930.mq4'C:\ Projects \ 2018 \ 08 \ ... \編譯器\ Data \ Include \ MyIndi​​or.mqh:信息:包括'MyIndi​​or.mqh'結果:0個錯誤,0個警告,編譯時間:207毫秒但是當我把它放在圖表上時:插入代碼2018.08.29 23:22:58.074無法加載'C:\ Users \ ... \ AppData \ Roaming \ MetaQuotes \ Terminal \ ... \ MQL4 \ indiors \ MyIndi​​or_123456_20180930.ex4'也嘗試使用最新的MT4和MetaEditor構建,同樣結果。錯誤仍然存在。

  9. #9

    Quote Originally Posted by ;
    你錯誤地寫了初始靜態變量(在某些情況下)。
    那是什麼意思?我正在使用一些靜態變量,是的。但它們是這樣的:插入的代碼void OnCalculate(...){static datetime _lastCheck = 0; datetime barTime =時間#91; 0#93 ;; if(barTime gt; _lastCheck){_lastCheck = barTime; ......}}正如我所說:它通常甚至不會加載到圖表上。我必須重新編譯它幾次然後它每次都有效。當我在MetaEditor中手動編譯它時,問題永遠不會發生。似乎只有在我通過命令行編譯它時才會發生。

  10. #10
    好的,我發現了這個問題......
    這個過程有點複雜。編譯發生在另一台機器(Build Server)上。在編譯之後,我將文件上傳到FTP服務器並在我的筆記本電腦上下載。似乎在FTP傳輸過程中有時會出現問題。不知道它是否是傳輸模式(ASCII vs Binary),需要檢查它。我比較了我在這裡下載的EX4文件和Build Server上的EX4的哈希值,它們是不同的。當我直接從構建服務器通過RDP複製EX4文件並在此處使用它時,它可以正常工作,而下載的文件不是...... AAAARG!

發布權限

  • 您不可發布新主題
  • 您不可回复
  • 您不可發布附件
  • 您不可編輯您的帖子
  •  
  • BB代碼是打開的
  • 表情符號是打開的
  • [IMG]代碼是打開的
  • [視頻]代碼是打開的
  • HTML代碼是關閉的
forex-pedia網站使用cookie 文字跟蹤
forex-pedia.com網站使用cookie 文字跟蹤,某些設定已經固定。您可以點擊此處閱讀我們的Cookie使用說明。 請點擊右鍵接受我們的cookies。如果您選擇繼續使用forex-pedia.com網站,我們將認為您接受我們的cookies。