MT4手机版App - MT4电脑版模板加载失败的常见症结与对策_说说图表窗口上那个“品种名称”下拉框

MT4分析对象复制的基础操作路径
先说说最常用的操作方法。在MT4的图表窗口左侧有一个"工具箱"面板,默认显示"市场报价"选项卡,你需要点击底部的"导航"标签,然后展开"技术指标"和"自定义指标"下面的文件夹,但这里要说明的是,分析对象并不在导航栏里,它们存放在图表本身。真正复制分析对象的入口在图表上右键菜单中,你需要在图表空白处点击鼠标右键,弹出菜单后选择"图表"子菜单,再点击"模板保存"或者"模板加载",但这属于模板操作,不是严格意义上的复制单个对象。
如果你只想复制某一个具体的分析对象,比如一条趋势线,操作方法其实更简单。先用鼠标左键单击选中这条趋势线,线条两端会出现白色的方块控制点,这时候按键盘上的Ctrl+C组合键,然后切换到目标图表窗口,按Ctrl+V粘贴,这条趋势线就被复制过去了。这个方法适用于所有类型的分析对象,包括水平线、垂直线、斐波那契工具、江恩角度线等等,而且复制过去后对象的颜色、线型、参数设置都会完整保留。
还有一个更快捷的方式是直接拖拽。选中分析对象后,按住鼠标左键不要松开,把对象往MT4窗口下方的其他图表标签上拖,等标签高亮后松开鼠标,对象就会出现在那个图表上。这个方法适合把对象复制到已经打开的多个图表窗口之间,操作起来非常直观,比复制粘贴更顺手。不过要注意,拖拽复制只能作用于当前打开的不同图表窗口,如果目标图表没有打开,你需要先打开它才能拖过去。
复制单个对象还有一个隐藏技巧,就是按住Ctrl键的同时用鼠标拖动对象。在源图表上选中对象后,按住Ctrl键不放,用鼠标左键拖动对象到目标图表标签上,这种方法本质上和拖拽一样,但Ctrl键会触发复制而非移动,这样源图表上的对象不会被删除,目标图表上会出现一个完全一样的副本。这个细节很多人不知道,实际操作中如果直接拖拽不按Ctrl键,对象会从源图表上移走,而不是复制。
说说图表窗口上那个“品种名称”下拉框
图表左上角不是有个“EURUSD”之类的小方块嘛,很多人光顾着看K线了,根本不知道那个地方还能点,你点一下那个小方块,它会弹出一个和刚才说的市场报价窗口差不多的列表来,也是所有品种都在里头,你从这儿切换也是可以的,而且这个方法的好处是,你不用专门回到左边那个报价窗口去操作,直接在图表上就能切换,我觉得这个其实更顺手,但好像知道的人不算多,我周边好几个朋友都是我在旁边指着告诉他们“你点一下那个字”他们才发现,所以说这软件吧,很多功能都藏在一些不起眼的地方,就跟那种机关暗格似的,你不戳它它永远不出来。
而且你注意到没有,在那个列表里头,每个品种下面其实还能展开子菜单,比如“EURUSD”属于“Forex”这个大类,你展开以后能看到一堆“EUR”开头的交叉盘,比如“EURAUD”、“EURCAD”、“EURCHF”这些,反正只要你没把品种都隐藏了,这个列表看着是挺密的,有点眼花缭乱,但你要真想找某个特定的品种,也可以在列表顶部那个小输入框里直接打字搜索,这个就跟我刚才说的那个“市场报价”窗口不太一样,那个窗口好像没有搜索框的,至少我用的版本是没有,所以我倒是更习惯用图表窗口这儿来搜品种,毕竟能打字,快多了,不用在一堆名字里一个一个用眼睛去扫。
这个切换方式吧,其实说穿了就一句话,图表的那个名字就是一把钥匙,你点它就能开门换屋子,然后,等你换好以后,你会发现所有的指标啊、模板啊、画线啊全都跟着一起变到新品种上去了(模板里保存的那个品种除外啊,有个“保存为默认模板”跟这个品种是无关的),这个有时候也是个麻烦事,比如你用黄金的模板加了一堆画线,切到原油上发现画线还在,位置全不对,还满满当当铺着,啥都看不出来,你还得手动去删画线,所以说切换品种本身不难,难的是切完之后你得自己重新调整图表的清洁度,这个我倒还没找到什么一键清理的快捷方式,就只能靠下面要说的那几个笨办法去弄了。
开盘价模型的适用场景与风险
开盘价模型,Open Prices,是三个里面最“粗糙”的一个。它只用每个K线的开盘价来做回测,完全忽略盘中所有的价格波动。这意味着,如果你的EA策略是在K线中途触发交易信号的,那这个模型根本测不出来——因为它压根不知道盘中发生过什么。
那这个模型还有什么用?说实话,它的用武之地其实很窄。我一般只拿它来做两件事:一是快速验证策略逻辑有没有明显漏洞,比如有没有未来函数、有没有重复开仓之类的基础问题;二是做参数优化的时候,先用开盘价模型把参数范围从一万组缩小到一百组,再用控制点模型精跑一遍。
速度方面,开盘价模型确实快得离谱。跑一个五年期的日线级别回测,基本是秒开。但代价就是,回测结果跟实盘之间的偏差可能达到百分之三十甚至更多。我有一个朋友,用开盘价模型测了一个趋势跟踪策略,回测曲线漂亮得跟教科书一样,结果实盘跑了两周就亏了百分之八。原因很简单——开盘价模型完全忽略了盘中那些假突破和毛刺,而实盘里的这些噪音恰恰是趋势策略最大的敌人。
如果你非要用这个模型,我劝你只把它当做一个“筛选漏斗”来用,千万别拿它跑出来的数字当真。它最大的价值,是帮你快速排除那些明显不靠谱的策略,而不是帮你找到能赚钱的圣杯。
编写程序接收DDE数据实现自定义功能
如果你会编程,那DDE能玩出的花样就更多了。C#、VB.NET、Python这些语言都有对应的库可以直接调用Windows的DDE接口。拿C#来说,可以用NDde这个开源库,几行代码就能建立起一个DDE客户端,订阅MT4推送过来的行情数据。收到的数据是字符串格式,你需要自己解析成浮点数来处理。
我写过一个简单的示例程序,用C#接收MT4的EURUSD报价,然后计算均线指标,当价格突破均线时自动弹出提醒。整个过程不到两百行代码,运行起来非常稳定。如果你用Python的话,可以试试pydde这个库,虽然功能没有C#版本那么全,但基本的订阅和接收数据还是没问题的。
编程接收DDE数据时有个重要的注意事项,DDE回调函数必须尽快处理完收到的数据,不能在里面做耗时太长的操作,否则可能会阻塞数据接收,导致行情更新延迟。正确做法是把收到的数据先放到队列里,然后由另一个线程异步处理。这个坑我当初踩过,连续跑几个小时程序就卡死了,最后用队列解决了问题。
另外要提醒大家的是,DDE协议毕竟是老技术了,微软官方虽然还在支持,但并没有加入任何安全机制。如果你的电脑连在公共网络上,理论上其他程序也能通过DDE读取到你MT4的行情数据。好在行情数据本身不是什么敏感信息,如果你实在担心,可以配合防火墙规则限制DDE的访问范围,或者只在完全信任的网络环境下使用。