目录

MT4正版下载 - MT4报价数据实时推送网页的桥接方案详解_如果你也卡在这个上面那就先这样干吧

MT4报价数据实时推送网页的桥接方案详解_如果你也卡在这个上面那就先这样干吧
做交易的人应该都有过这种念头,手里MT4上的报价跳得正欢,可网页端或者自己写的监控面板上却空空如也。想把市场报价弄到网页上实时展示,这事听着简单,做起来却绕不开一个核心问题,MT4本身并没有提供任何直接向外部网页推送数据的接口。它是一个封闭的终端程序,所有数据都锁在自己的进程里。所以,要实现推送,必须借助外部程序或者API作为中间桥梁,把MT4内部的数据“搬运”到网页能访问的地方。

先搞清楚MT4里哪些字体是可以调的

MT4这个软件界面分好几块区域,不同区域的字体调整方式完全不一样,甚至有些地方压根就不支持直接改。首先是最核心的图表区域,也就是你看到K线蜡烛图的那块地方,这里显示的价格、时间、指标数值,它们的字体大小是在图表属性里面设置的。其次还有市场报价窗口,就是左上角那一列显示货币对、黄金、原油价格的地方,这个窗口的字体调整方式又是另一套逻辑。另外还有终端窗口里的交易记录、账户历史这些,它们用的基本上是系统默认字体,想改的话得通过别的办法。

说实话,很多人一上来就去找“设置”或者“选项”菜单,结果翻遍了也找不到字体相关的按钮,就开始怀疑是不是软件版本有问题。其实真不是这样,MT4的设计思路比较老派,它把字体设置分散放到了各个功能模块的右键菜单里。也就是说,你想调哪块区域的字体,就得先在那个区域点击右键,然后从弹出的菜单里进入属性设置。这个逻辑虽然有点反直觉,但摸清楚之后也就好办了。

我自己平时用的屏幕是27寸的2K分辨率,默认状态下图表里的价格数字看着很吃力,后来花了点时间把各个区域的字体都调整了一遍,现在看盘舒服多了。接下来就按我实际操作的经验,把每个区域的调整步骤详细写出来。

识别模板文件和画线文件的具体类型

进入数据文件夹后,你会发现里面有多个子文件夹,其中最关键的两个是“MQL4”和“Profiles”。模板文件主要存放在“MQL4\Templates”目录下,这些文件以“.tpl”为扩展名,保存了你在图表上应用的所有技术指标组合、颜色参数和窗口布局。画线文件则存放在“Profiles”文件夹中,它们以“.prf”为扩展名,记录了你保存的图表画线数据,包括趋势线、水平线、斐波那契工具等。

除了这两个核心文件夹,我还建议你检查一下“MQL4\Indicators”和“MQL4\Experts”目录。虽然这两个目录主要存放自定义指标和EA程序,但很多交易者会把画线功能与自定义指标结合使用,如果这些文件丢失,即使恢复了模板和画线,也可能因为缺少依赖的指标而无法正常显示。我的经验是,宁可多备份,也不要因为遗漏某个文件而后悔。

另外,有部分交易者习惯使用“图片”文件夹来保存图表截图,这虽然不是标准功能,但如果在备份时顺手把整个数据文件夹都复制一份,就能确保万无一失。说实话,我第一次备份时只复制了模板和配置文件,结果重新安装后才发现自己常用的一个自定义指标没有备份,导致整个交易系统无法正常运行,不得不重新编写指标代码,浪费了大量时间。

如果你也卡在这个上面那就先这样干吧

首先关于时区,建议你打开MT4的“市场报价”窗口去看看那个服务器离你多远,如果你对自己平台的服务器时间压根没概念,那你先别着急写代码,把经纪商官网客服或者开户邮箱翻出来直接问人家你这个盘的服务器时间是UTC还是UTC加几,如果你开的是模拟盘,甚至连模拟盘的服务器真和实盘的服务器时间可能都不一样,你真的以为自己弄好了结果换到实盘又得重新调一遍,这种破事儿我真的见了不止一次两次,还有不少EA平台上挂出来的时间跟你本地差着好几个时甚至反着的,因为它直接用GMT来计算默认情况你没法套。

(1)你要是用服务器时间做判断,那你就得知道它是恒定不变还是有夏令时的,最好能自己写个小indicator在图上画出那些交易时段,每天看一眼确保没问题,(2)你要是用本地时间做判断,那EA就只能在你自己的电脑上跑,你换一个VPS或者换一个机器那时间就会乱你等于没加过滤,(3)你对那一条跳空时段要不要做例外,比如周五的23点到周一早上6点全部屏蔽掉,这样你的EA在新闻面前至少不会瞎搞,(4)你可以去试试用DayOfWeek()跟TimeHour()结合起来把周日到周五都分开来对待,每逢调整的时候你就知道麻烦了,(5)订单里面那些开仓后多长时间未被平掉的时间检查,也跟Hour相关的部分搅在一起了你要小心别把各自的时间戳搞混,(6)你在回测的时候那把时间过滤条件单独取消掉确认你没有误伤本该开单的时间区间,然后再加回去对比收益曲线,你才真正放心这EA的正常设置没问题。

到了我现在这个阶段我是真不敢说什么百分百弄对了,反正我用的一套逻辑核心就是不要依赖那个本地时区,直接在EA顶部注释里面写明白一切开单时间判断均按服务器时间,然后写一个计算偏移量和夏令时差异的小模块放在那里,至于那个模块会不会忘了更新,我自己也得时不时来个定时打卡去检查,系统这东西只要时间一长没有东西是永远准的,后来我又看了一堆别人的代码,发现好多人也是在那年复一年地重复调整那些交易时区数字,一堆被称作所谓“新纪元档”的老EA它们老代码里面的时间逻辑就是用了个死循环if写死了,那些才真的不敢乱用了。

如果你现在正被这个事卡住,我的毛病可能帮不了你太多,但至少你这个菜鸟坑是必踩的,我就先把这些破事和绕路的那些过程倒到这里,也不知道最后你当时是看了哪些模板凑出来这玩意儿的,反正我是花了整整半个月才不糊涂了,你自己尝试着写的时候,一定记得要带着日志输出那样子反复验证,我这篇文章你要真的全看完了还能不糊涂那也算我想多了,你自己看着办吧。

模板加载后箭头位置错乱怎么办

有时候加载模板后会发现箭头位置不太对劲,比如原本在价格上方的买入箭头跑到K线中间去了。这种情况多半是因为两张图表的坐标范围不一样,MT4在加载模板时会根据当前图表的可见价格区间重新映射对象坐标。解决的办法很简单,加载模板之前先把目标图表的坐标范围调整到和源图表大致相同,这样箭头的相对位置就能保持准确。

另一个常见问题是箭头大小不一致。MT4模板保存时记录的是对象的像素尺寸,而不是相对于图表的比例尺寸。如果你在源图表上用的是大箭头,加载到新图表后可能显得特别突兀。这时候可以在加载模板后逐个选中箭头,在属性里调整大小,或者干脆在保存模板之前就把箭头大小设定为适中的值,这样在不同周期切换时视觉感受会更协调。

如果你的信号箭头是用手动画线工具画的,而不是用箭头对象,那模板加载时可能会出现偏移。手动画线工具的起点和终点坐标是固定的,加载到不同图表上时,这些坐标可能落在K线的不同位置。相比之下,用箭头对象创建的标记在模板加载时会智能调整到最近的价格点,所以建议优先使用箭头工具而不是画线段加箭头。

文章目录