【漆学军】如何实现鼠标指哪根k线,COMMENT就显示哪根k线的内容?

刚刚在我们的《从零开始学MQL4编程》微信答疑群里有个学员提问:

“comment 函数显示的内容,可以让它跟着鼠标移动变化吗? 鼠标指哪根K线,就显示那根K线的comment的内容”

下面我来解答一下:

这是可以实现的,通过捕获图表事件里面的鼠标移动事件可以实现。

第一步:新建EA之后,在EA的初始化函数里面,启动鼠标移动事件 ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,0,true);

int OnInit()
  {
//--- set property value
   if(!ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,0,true))
     {
      //--- display the error message in Experts journal
      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
     }
//---
   return(INIT_SUCCEEDED);
  }

第二步:在图表事件中,获取到鼠标的坐标 。

void OnChartEvent(const int id,         // Event ID
                  const long& lparam,   // Parameter of type long event
                  const double& dparam, // Parameter of type double event
                  const string& sparam  // Parameter of type string events
                 )
  {
   if(id==CHARTEVENT_MOUSE_MOVE)
     {
      int x=lparam;
      int y=dparam;
     }
  }

第三步:将鼠标位置的坐标转换成时间价格坐标。

   部分代码如下:

ChartXYToTimePrice(0,x,y,window,dt,price)

第四步:通过鼠标位置的时间,可以得到k线位移。

主要使用如下函数:

int i=iBarShift(NULL,0,dt);

第五步:通过k线位移可以获取k线的开盘收盘最高最低等各种数据,用comment显示出来。

下面给出全部完整代码:<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漆学军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值