• <xmp id="4g4m2"><menu id="4g4m2"></menu><menu id="4g4m2"><strong id="4g4m2"></strong></menu>
    <xmp id="4g4m2">
  • <menu id="4g4m2"></menu>
  • <dd id="4g4m2"></dd>
  • 只發布交易干貨的網站
    用實戰期貨交易系統和心得助你重塑交易認知

    正規期貨開戶 | 手續費只+1分

    90%交易者的手續費都被加收超1倍,一起看看最新的交易所手續費一覽表吧!

    MT4軟件本地跟單方法的實現

    許多匯友都有機會得到一些觀察帳號,用來查看一些平臺、機構提供的賬戶交易狀況,眼看著人家的賬戶賺錢,自己不由得心動。

    筆者通過反復測試,琢磨出一套“本地跟單方法”,特制作一個模型分享給大家。

    首先了解兩個基本概念:
    1、MQL4規定文件讀寫只允許在expertsfiles文件夾或者它的子文件夾里面進行讀寫,這就給我們實現本地跟單提供了機會。??
    2、MT4終端軟件安裝完畢后,你可以將安裝好的文件直接復制粘貼到硬盤的任何地方,甚至是U盤,只要雙擊“terminal.exe”就可以運行。通過這種方法,你可以在一臺電腦中同時運行若干個MT4軟件。

    基于以上兩個概念,本地跟單的工作原理描述如下:

    MT4軟件本地跟單方法的實現?

    我們把做單的平臺定義為“信號平臺”,在這個平臺上運行觀察賬戶,并加載“信號EA”程序,一旦有開倉或者平倉等動作,程序就會自動記錄到指定的中間文件當中,如上圖所示的“交息”文件。??

    我們把跟單操作的平臺定義為“操作平臺”,加載“跟單EA”,該程序會隨時讀取“交息”文件,識別最新的交易行為,自動按照更新的信息執行開倉、平倉操作。

    通過這種方法實現跟單,理論上只有毫秒級的延時,可謂是“秒殺”。 如果你有興趣,那么Follow Me!

    【第一步】??準備兩個平臺

    到MetaTrade公司網站(http://www.metatrader4.com/cn)下載客戶端,并安裝。

    在D盤新建一個文件夾:myMT4,把MT4安裝文件夾中(C:Program FilesMetaTrader 4)的所有文件復制粘貼到myMT4文件夾中,此時建好了操作平臺。

    在“D:myMT4expertsfiles”文件夾中新建一個文件夾“myMT4Signal”,把MT4安裝文件夾中(C:Program FilesMetaTrader 4)的所有文件復制粘貼到myMT4Signal文件夾中,此時建好了信號平臺。

    分別雙擊myMT4和myMT4Signal文件夾下面的terminal.exe,系統就會運行兩個MT4終端,申請模擬帳號,就可以分別操作了。

    【第二步】??編寫兩個程序

    第一個程序,命名為“myMT4Signal.mq4”,編譯后運行在信號平臺中,詳細說明及源代碼如下:
    ?

    1. ?
    2. /*
    3. 程序名:myMT4Signal
    4. 程序任務:監控帳戶持倉單變化情況
    5. 1、將新開倉訂單信息寫到"TradeInfo"文件當中,包括開倉時間、訂單號、貨幣對、訂單類型、開倉量、開倉價、訂單注釋、訂單特征碼。
    6. 2、如果沒有持倉訂單,則刪除文件。
    7. */?
    8. #property copyright "Copyright By Laoyee"
    9. #property link? ?? ?"http://www.docin.com/yiwence"
    10. int start()
    11. ? ? {
    12. ? ?? ???if (OrdersTotal()==1 && OrderSelect(0, SELECT_BY_POS, MODE_TRADES))
    13. ? ?? ?? ? {
    14. ? ?? ?? ?? ???int myHandle = FileOpen("TradeInfo.csv", FILE_CSV | FILE_WRITE, ",");
    15. ? ?? ?? ?? ???FileWrite(myHandle, OrderOpenTime(), OrderTicket(), OrderSymbol(), OrderType(), OrderLots(), OrderOpenPrice(), OrderComment(), OrderMagicNumber());
    16. ? ?? ?? ?? ???FileClose(myHandle);
    17. ? ?? ?? ???}
    18. ? ?? ???if (OrdersTotal()==0) FileDelete("TradeInfo.csv");?
    19. ????????return(0);
    20. ????}?
    21. ?

    復制代碼

    第二個程序,命名為“myMT4Trade.mq4”,編譯后運行在操作平臺中,詳細說明及源代碼如下:
    ?

    1. ?
    2. /*?
    3. 程序名:myMT4Trade?
    4. 程序任務:監控帳戶持倉單變化情況?
    5. 1、讀取"myMT4Trade"文檔中的訂單號、貨幣對、開倉類型、開倉量
    6. 2、如果沒有持倉訂單,根據獲取的貨幣對、開倉類型、開倉量市價開倉
    7. 3、如果沒有讀到指定的文件,則持倉單平倉
    8. */?
    9. #property?copyright?"Copyright?By?Laoyee"?
    10. #property?link??????"http://www.docin.com/yiwence"?
    11. string?myType,?myLots,?mySymobl;?
    12. int?myHandle;?
    13. int?start()
    14. ????{?
    15. ??????if?(iReadFile()?==?1?&&?OrdersTotal()==0)
    16. ??????????{?
    17. ????????????int?mycmd1?=?StrToInteger(myType);
    18. ????????????string?mySymobl1?=?mySymobl;?
    19. ????????????double?mylots1?=?NormalizeDouble(StrToDouble(myLots),2);
    20. ????????????double?myOpenPrice;?
    21. ????????????if?(mycmd1?==?0)?myOpenPrice?=?MarketInfo(mySymobl1,?MODE_ASK);
    22. ????????????if?(mycmd1?==?1)?myOpenPrice?=?MarketInfo(mySymobl1,?MODE_BID);
    23. ????????????OrderSend(mySymobl,?mycmd1,?mylots1,?myOpenPrice,?0,?0,?0);
    24. ? ?? ?? ? }?
    25. ??????if?(iReadFile()?==?0?&&?OrderSelect(0,?SELECT_BY_POS,?MODE_TRADES))
    26. ??????????{?
    27. ????????????double?myClosePrice;?
    28. ????????????if?(OrderType()==OP_BUY)?myClosePrice=Bid;
    29. ????????????if?(OrderType()==OP_SELL)?myClosePrice=Ask;?
    30. ????????????OrderClose(OrderTicket(),?OrderLots(),?myClosePrice,?0);
    31. ??????????}
    32. ??????return(0);
    33. ????}?
    34. int?iReadFile()
    35. ????{?
    36. ??????myHandle?=?FileOpen("myMT4SignalexpertsfilesTradeInfo.csv",?FILE_BIN?|?FILE_READ);
    37. ??????if?(myHandle?==?-1)?return(0);
    38. ??????string?myValue;?
    39. ??????myValue?=?FileReadString(myHandle,?60);
    40. ??????int?myDatecnt?=?StringFind(myValue,?",",?0);?
    41. ??????string?myDate?=?StringSubstr(myValue,?0?,myDatecnt);????????
    42. ??????int?myTicketcnt?=?StringFind(myValue,?",",?myDatecnt+1);?
    43. ??????string?myTicket?=?StringSubstr(myValue,?myDatecnt+1,?myTicketcnt-myDatecnt-1);????????
    44. ??????int?mySymbolcnt?=?StringFind(myValue,?",",?myTicketcnt+1);?
    45. ??????mySymobl?=?StringSubstr(myValue,?myTicketcnt+1,?mySymbolcnt-myTicketcnt-1);??
    46. ??????int?myTypecnt?=?StringFind(myValue,?",",?mySymbolcnt+1);?
    47. ??????myType?=?StringSubstr(myValue,?mySymbolcnt+1,?myTypecnt-mySymbolcnt-1);??
    48. ??????int?myLotscnt?=?StringFind(myValue,?",",?myTypecnt+1);?
    49. ??????myLots?=?StringSubstr(myValue,?myTypecnt+1,?myLotscnt-myTypecnt-1);??
    50. ??????int?myPricecnt?=?StringFind(myValue,?",",?myLotscnt+1);?
    51. ??????string?myPrice?=?StringSubstr(myValue,?myLotscnt+1,?myPricecnt-myLotscnt-1);
    52. ??????FileClose(myHandle);
    53. ??????return(1);
    54. ????}?
    55. ?

    復制代碼

    【第三步】??實施跟單測試

    在信號平臺手工開倉,我們會看到操作平臺會自動開出一張同類型的訂單。?

    將信號平臺的持倉單平掉,操作平臺的持倉單也隨之平倉。

    【總結】

    信號平臺上從發出開倉命令到成交一個新訂單并寫入到中間文件可能耗時300毫秒,而操作平臺從識別中間文件信息更新并發出開倉指令到成交可能耗時500毫秒,那么就會出現800毫秒的誤差,所以,剝頭皮類的EA不適合采用這種方法。

    以上兩個程序功能單一,意在提供一個方法,供學習測試使用。 來源:外匯邦

    本文名稱:《MT4軟件本地跟單方法的實現》
    本文鏈接:http://www.wuhansb.com/tuijian/31713.html
    免責聲明:投資有風險!入市需謹慎!本站內容均由用戶自發貢獻,或整編自互聯網,或AI編輯完成,因此對于內容真實性不能作任何類型的保證!請自行判斷內容真假!但是如您發現有涉嫌:抄襲侵權、違法違規、疑似詐騙、虛假不良等內容,請通過底部“聯系&建議”通道,及時與本站聯系,本站始終秉持積極配合態度處理各類問題,因此在收到郵件后,必會刪除相應內容!另外,如需做其他配合工作,如:設置相關詞匯屏蔽等,均可配合完成,以防止后續出現此類內容。生活不易,還請手下留情!由衷希望大家能多多理解,在此先謝過大家了~

    我要說說 搶沙發

    評論前必須登錄!

    立即登錄   注冊

    切換注冊

    登錄

    忘記密碼 ?

    切換登錄

    注冊

    我們將發送一封驗證郵件至你的郵箱, 請正確填寫以完成賬號注冊和激活

    簧色带三级