电脑
MQL语言编辑器
我们大家都知道,无论是股票、期货,还是外汇,各种行情交易软件的行情图表,都有系统默认的几种祝撤时间周期,比如:5分钟图表、15分钟图表、小时图、日线图……等等;不同时间周期的行情图表上,一根K线代表的时长是不一样的,也就是说,同样的一根K线,在5分钟图上要5分钟才能走完;在15分钟图上则要15分钟才能走完 ;……依此类推
如果在不同的图表上都能看到当前K线还有多长时间收盘,无疑对我们的操作和时间安排是有一定好处的;下面,我们就在电脑上双击“MQL语言编辑器”,打开“MetaEditor 4”,来做一做这个小功能;
我们首先要明确,由于时间周期的跨度不同,各周期所包含的时间量采取什么标准进行统一度量是一个关键问题。比如小时线、日线、月线,这直接关系到倒计时的准确性,尤其是时间跨度大的长周期图表!因此,我们采用MQL4预先内置的时间周期枚举变量作为统一计算的标准;在采用分钟作为计量标准的基础上,我们进一步将它精确到”秒“,也就是将系统预先设置的慎散裕”VALUE“值都”*60“。
有了统一计算的标准,接下来,我们在例程主函数 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; } }
输入完毕后,检查确认无误,在工作区上方点击“编译运行”按钮,然后“确定”,检查目标功能是否实现;可以看到,针对工作区左边中上部的“市场报价”时间,各个周期的行情图表左上角都显示了本周期图表当前K线的收盘倒计时时间。
从编译调试的结果可以看到,我们预先要求的目标功能已经实现,你做到了吗?
欢迎有兴趣的朋友留言交流,必复!