本文主要是介绍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的家庭,
客户端对接自定义产品还不够完善,期待更美好的未来。
谢谢大家
如果您觉得对你有所帮助,请赞赏,你的赞赏是我更新的动力!
这篇关于MT5客户端CTP接入 国内期货之三 自定义交易品种 实时数据接收的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!