关于MT4的缓存问题

 

MT4是不是存在缓存的BUG?
现象是:服务器收到了挂单交易信息,并执行了交易,可是本地MT4没有收到消息,一直还是停留在挂单状态,导致策略无法往下执行。
已经排除了网络问题,而且波动越大,越容易出现这个现象。

出现这个问题,只能手动重启mt4,或者把网络断开,再恢复,以此让MT4重新和服务器同步,这样才能让挂单消失。

有没有人知道这个问题?要如何可以 通过EA来处理这个问题?

 
用VPS就不存在了呀
 
Hang-889 #:
用VPS就不存在了呀
已经用上VPS了,还是会这样
 
清理缓存呢
 

根據你提的問題 首先需要排除列出問題點

1/. 服务器收到了挂单交易信息,并执行了交易,可是本地MT4没有收到消息

你的掛單是不是已經成交成為持倉單 是不是手機端跟電腦端的結果不一樣??

如果是這樣的狀況 我建議你重新安裝其他平台的MT4 登入到你的平台 

2/. 手动重启mt4

EA重啟後可運行 很多情況下是代碼編輯上的問題 你可以嘗試檢查代碼的問題

3/. 把网络断开,再恢复,以此让MT4重新和服务器同步,这样才能让挂单消失

你可以觀察Terminal右下方網路通訊狀況 換一個交易服務器 或是檢查自身電腦的問題 有可能是防毒干擾了交易通訊 你用了VPS一樣有這樣的狀況 那就可以排除是終端的問題


綜合狀況 我認為是EA代碼問題的可能性最大 正規的MT4已經運行了很多年 是很穩定的交易軟件 軟件幾乎不會出現問題的

 

附帶說一下 我見過代碼使用循環太多 拖垮終端運行的EA 也見過不合規使用死循環的技術指標 直接讓電腦死機的

所有處理過MT4 MT5運行效能問題 最終都是因為EA或是技術指標代碼編輯的問題

 
Hung Wen Lin #:

根據你提的問題 首先需要排除列出問題點

1/. 服务器收到了挂单交易信息,并执行了交易,可是本地MT4没有收到消息

你的掛單是不是已經成交成為持倉單 是不是手機端跟電腦端的結果不一樣??

如果是這樣的狀況 我建議你重新安裝其他平台的MT4 登入到你的平台 

2/. 手动重启mt4

EA重啟後可運行 很多情況下是代碼編輯上的問題 你可以嘗試檢查代碼的問題

3/. 把网络断开,再恢复,以此让MT4重新和服务器同步,这样才能让挂单消失

你可以觀察Terminal右下方網路通訊狀況 換一個交易服務器 或是檢查自身電腦的問題 有可能是防毒干擾了交易通訊 你用了VPS一樣有這樣的狀況 那就可以排除是終端的問題


綜合狀況 我認為是EA代碼問題的可能性最大 正規的MT4已經運行了很多年 是很穩定的交易軟件 軟件幾乎不會出現問題的

感谢你的回复,目前情况很明显:不管是在本地电脑运行还是在vps,依旧会出现挂单卡住的现象,直接反应就是挂单一直挂着没有变化,可是价格早就突破了,我们采取的方式就是关闭MT4重启,或者切换一下网络。
日志中也能发现异常:
13:32:37.290 - 'order #64528760 buy stop 0.04 XAUUSD activated at price 4350.59'
13:32:37.290 - 'pending order #64528760 buy stop 0.04 XAUUSD was modified -> price: 4350.59'

这两条日志几乎同时出现,说明:
1、MT4服务器已将订单从挂单转为市价单
2、EA在同一瞬间仍将其视为挂单并尝试修改
3、EA没有在订单状态改变时更新本地的订单追踪数据

这个现象在波动越大的情况下,越会出现。

MT5就从来不会这样,所以我们一开始认为是MT4本身存在BUG,您认为根源还是在EA吗?


 

我不明白你實際的情況 根據你頁首的敘述 交易服務器執行交易 那就是掛單已經成為持倉單 但是你的終端還是停留在掛單(OP_BUYSTOP) 並沒有成為持倉單(OP_BUY) 這就應該是軟件的問題

最後的PO文 兩條信息不會是同時發生的 (電腦是單線程運行 一定有先後順序 除非是量子計算機) 看起來是先修改 然後馬上觸發成交 (MT4日誌默認最新的信息是在上面的) 這樣並沒有問題

所以不明白你所謂掛單卡住是那種情形

如果是價格超過掛單價格沒成交 簡單調整下容許的滑點範圍 大多數都可以排除 零滑點設置在高波動期間 很難觸發成交的

MT4結構邏輯很直接 很難有Bug 所以現在很少有更新

MT5運行效能比較高 功能也多 但是Bug比較多 所以需要常常更新 但是在主軸交易任務上也沒見過有問題的

所有我見過量化後交易上有問題的 最終都是在代碼上的問題