1. 程式人生 > >MT5客戶端CTP接入 國內期貨之三 自定義交易品種 實時資料接收

MT5客戶端CTP接入 國內期貨之三 自定義交易品種 實時資料接收

實時接收資料大概分為2種方式

方式1:直接通過webrequest方式去請求,

例如

void OnStart() 
  { 
   string cookie=NULL,headers; 
   char   post[],result[]; 
   string url="https://finance.yahoo.com"; 
//--- To enable access to the server, you should add URL "https://finance.yahoo.com" 
//--- to the list of allowed URLs (Main Menu->Tools->Options, tab "Expert Advisors"): 
//--- Resetting the last error code 
   ResetLastError(); 
//--- Downloading a html page from Yahoo Finance 
   int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers); 
   if(res==-1) 
     { 
      Print("Error in WebRequest. Error code  =",GetLastError()); 
      //--- Perhaps the URL is not listed, display a message about the necessity to add the address 
      MessageBox("Add the address '"+url+"' to the list of allowed URLs on tab 'Expert Advisors'","Error",MB_ICONINFORMATION); 
     } 
   else 
     { 
      if(res==200) 
        { 
         //--- Successful download 
         PrintFormat("The file has been successfully downloaded, File size %d byte.",ArraySize(result)); 
         //PrintFormat("Server headers: %s",headers); 
         //--- Saving the data to a file 
         int filehandle=FileOpen("url.htm",FILE_WRITE|FILE_BIN); 
         if(filehandle!=INVALID_HANDLE) 
           { 
            //--- Saving the contents of the result[] array to a file 
            FileWriteArray(filehandle,result,0,ArraySize(result)); 
            //--- Closing the file 
            FileClose(filehandle); 
           } 
         else 
            Print("Error in FileOpen. Error code =",GetLastError()); 
        } 
      else 
         PrintFormat("Downloading '%s' failed, error code %d",url,res); 
     } 
  }

 當然這只是獲取到了資料

還要進一步解析資料,將資料轉換為tick或者k 線,進行儲存

以便於大家進行使用


函式
 
操作
 

CustomSymbolCreate
 
在指定組以指定名稱建立一個自定義交易品種
 

CustomSymbolDelete
 
刪除指定名稱的自定義交易品種
 

CustomSymbolSetInteger
 
為自定義交易品種設定整型屬性值
 

CustomSymbolSetDouble
 
為自定義交易品種設定真實型屬性值
 

CustomSymbolSetString
 
為自定義交易品種設定字串型別屬性值
 

CustomSymbolSetMarginRate
 
按照訂單型別和方向,為自定義交易品種設定預付款比率
 

CustomSymbolSetSessionQuote
 
為指定交易品種和工作日設定指定報價時段的起止時間
 

CustomSymbolSetSessionTrade
 
為指定交易品種和工作日設定指定交易時段的起止時間
 

CustomRatesDelete
 
刪除指定時間間隔內自定義交易品種價格歷史的全部柱形圖
 

CustomRatesReplace
 
以MqlRates型別陣列資料完全替換指定時間間隔內自定義交易品種的價格歷史
 

CustomRatesUpdate
 
將丟失的柱形圖新增到自定義交易品種歷史並用MqlRates型別陣列資料替換現有資料
 

CustomTicksAdd
 
新增MqlTick型別的陣列資料到自定義交易品種的價格歷史。自定義交易品種一定要在市場報價視窗來選擇
 

CustomTicksDelete
 
刪除指定時間間隔內自定義交易品種價格歷史的全部報價
 

CustomTicksReplace
 
以MqlTick型別陣列資料完全替換指定時間間隔內自定義交易品種的價格歷史
 

方法2 通過socket 直接獲取,

 

socket 需要自己進行封裝對接。

 

兩種方法各有優缺點。

總的來說MT5對外界敞開了懷抱,歡迎大家加入MT的家庭,

客戶端對接自定義產品還不夠完善,期待更美好的未來。

 

謝謝大家

如果您覺得對你有所幫助,請讚賞,你的讚賞是我更新的動力!