MQL4如何获取鼠标下图表价格?获取十字光标下时间与价格?
问题
MQL4如何获取鼠标下图表价格?获取十字光标下时间与价格?
解答
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { // 在点击图表时,会出现十字图 if(id==CHARTEVENT_CLICK) { // 坐标 int x =(int)lparam; int y =(int)dparam; // 时间 价格 datetime dt = 0; double price = 0; int window = 0; string tmp = ""; // 将当前坐标转成时间与价格 if(ChartXYToTimePrice(0,x,y,window,dt,price)) { // 显示时间 价格 if(ChartTimePriceToXY(0,window,dt,price,x,y)) { tmp = StringFormat("时间 = %s 价格 = %G => X = %d Y = %d",TimeToString(dt),price,x,y); } else { tmp = StringFormat("ChartTimePriceToXY 调用错误: #%d",GetLastError()); } Comment(tmp); Print(tmp); // 绘制十字线 ObjectDelete(0,"V Line"); ObjectDelete(0,"H Line"); ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price); ObjectCreate(0,"V Line",OBJ_VLINE,window,dt,price); ChartRedraw(0); } else { PrintFormat("ChartTimePriceToXY 调用错误: #%d",GetLastError()); } } }