多语言展示
当前在线:1600今日阅读:23今日分享:25

MQL4编程:当前K线收盘倒计时器

在进行外汇盯盘交易时,有很多时候,我们要等到当前K线收盘,看清楚K线组合形态是否形成,收盘价是否在目标区域,才能采取相应的交易动作。这时如果有一个倒计时器显示在行情图表的相应位置,就能让我们的决策和交易更加方便、从容……      今天,我就和大家一道,用MQL4编写一个当前K线收盘倒计时的小程序,并将它显示在行情图表的左上角……
工具/原料
1

电脑

2

MQL语言编辑器

方法/步骤
1

我们大家都知道,无论是股票、期货,还是外汇,各种行情交易软件的行情图表,都有系统默认的几种祝撤时间周期,比如:5分钟图表、15分钟图表、小时图、日线图……等等;不同时间周期的行情图表上,一根K线代表的时长是不一样的,也就是说,同样的一根K线,在5分钟图上要5分钟才能走完;在15分钟图上则要15分钟才能走完 ;……依此类推

2

如果在不同的图表上都能看到当前K线还有多长时间收盘,无疑对我们的操作和时间安排是有一定好处的;下面,我们就在电脑上双击“MQL语言编辑器”,打开“MetaEditor 4”,来做一做这个小功能;

4

我们首先要明确,由于时间周期的跨度不同,各周期所包含的时间量采取什么标准进行统一度量是一个关键问题。比如小时线、日线、月线,这直接关系到倒计时的准确性,尤其是时间跨度大的长周期图表!因此,我们采用MQL4预先内置的时间周期枚举变量作为统一计算的标准;在采用分钟作为计量标准的基础上,我们进一步将它精确到”秒“,也就是将系统预先设置的慎散裕”VALUE“值都”*60“。

5

有了统一计算的标准,接下来,我们在例程主函数 OnTick()中输入下列语句: switch(Period())   {      case 1:      {         int a=60-Seconds();         Comment(a);         break;      }      case 5:      {         int a=Period()*60-Minute()%5*60-Seconds();         Comment(a/60,':',a%60);         break;      }            case 15:      {         int a=Period()*60-Minute()%15*60-Seconds();         Comment(a/60,':',a%60);         break;      }      case 30:       {         int a=Period()*60-Minute()%30*60-Seconds();         Comment(a/60,':',a%60);         break;      }        case 60:      {         int a=Period()*60-Minute()*60-Seconds();         Comment(a/60,':',a%60);         break;      }      case 240:      {         int a=Period()*60-Hour()%4*3600-Minute()*60-Seconds();         Comment(a/3600,':',a%3600/60,':',a%3600%60);         break;      }      case 1440:      {         int a=Period()*60-Hour()*3600-Minute()*60-Seconds();         Comment(a/3600,':',a%3600/60,':',a%60);         break;      }  掩三    case 10080:      {         int a=Period()*60-TimeDayOfWeek(TimeCurrent())*1440*60-Hour()*3600-Minute()*60-Seconds();         Comment(a/86400,':',a%86400/3600,':',a%86400%3600/60,':',a%86400%3600%60);         break;      }      case 43200:      {         int a=Period()*60-TimeDay(TimeCurrent())*1440*60-Hour()*3600-Minute()*60-Seconds();         Comment(a/86400,':',a%86400/3600,':',a%86400%3600/60,':',a%86400%3600%60);         break;      }      default:      {         string c='failed!!!';         Comment(c);         break;      }         }

6

输入完毕后,检查确认无误,在工作区上方点击“编译运行”按钮,然后“确定”,检查目标功能是否实现;可以看到,针对工作区左边中上部的“市场报价”时间,各个周期的行情图表左上角都显示了本周期图表当前K线的收盘倒计时时间。

7

从编译调试的结果可以看到,我们预先要求的目标功能已经实现,你做到了吗?

注意事项

欢迎有兴趣的朋友留言交流,必复!

推荐信息