MT5客戶端CTP接入 國內期貨之三 自定義交易品種 實時資料接收
阿新 • • 發佈:2018-11-17
實時接收資料大概分為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的家庭,
客戶端對接自定義產品還不夠完善,期待更美好的未來。
謝謝大家
如果您覺得對你有所幫助,請讚賞,你的讚賞是我更新的動力!