目录

MT4多开 - MT4看行情盯得人眼花缭乱说说我这几年的野路子_指标极值的提取与同步对齐方法

MT4看行情盯得人眼花缭乱说说我这几年的野路子_指标极值的提取与同步对齐方法
昨晚上又盯到快一点,就为了看美盘开盘那几分钟黄金的动静,眼皮子打架又不能睡,老盯着那个跳动的数字有时真觉得眼睛都快看花了,但你说不看吧心里又痒得慌,看吧其实多半也就看个热闹,常玩MT4的人大概都明白我这种说不清道不明的状态,早上醒来脑子里还全是那根1分钟K线来回插针的样子,今天就想跟大伙儿闲聊几句我这些年用MT4看实时行情的一些乱七八糟的感受,纯属个人经验,想到哪儿说到哪儿,您随便看看当个消遣也成。

指标窗口的层级关系是怎么运作的

MT4里每个指标加载后都会生成一个独立的窗口,这些窗口默认按照加载顺序从上到下排列。先加载的指标会在最底层,后加载的指标会覆盖在它上面,这跟Photoshop里图层的概念挺像的。但问题在于,MT4的默认设置并不允许你像PS那样直接拖拽图层顺序,你得通过特定的操作路径才能实现层级调整。

实际操作中,你可以在图表空白处点击右键,选择“指标列表”,这时候会弹出一个对话框,里面列出了当前图表上所有加载的指标。每个指标名称前面有一个小箭头,用鼠标按住指标名称拖动,就能改变它在列表中的位置。列表最顶端的指标显示在最上层,最底端的显示在最下层,这个逻辑跟大多数绘图软件相反,得特别注意一下。

说实话,我第一次用这个功能的时候也懵了,以为列表顺序跟显示顺序是一致的,结果拖了好几次都没反应。后来才发现,列表上方的指标反而显示在图表最底层,列表下方的指标才显示在最上层。这个反直觉的设计确实容易让人踩坑,但一旦记住了,调整起来其实很快。

还有一个细节值得注意,指标列表里显示的名称后面会标注该指标所属的主图还是副图。主图指标比如均线、布林带,副图指标比如MACD、RSI,这两类指标虽然可以同时叠加,但它们的层级调整逻辑略有不同。副图指标之间可以互相覆盖,主图指标跟副图指标之间则存在一定的隔离机制,这个在后面的实操部分会详细展开。

挂单阶段和持仓阶段的止损规则有时候不一样

这里还有一个很多人容易忽略的点,就是挂单的时候和已经持仓的时候,止损的接受标准它不是一回事,你想想,你挂单还没成交呢,价格没到你挂单价,那你止损价其实对应的是一种预期状态,MT4它会模拟一下,如果你这个挂单触发了,那你的止损是不是离当时的市场价太近了,如果太近它就直接拒绝,但你如果是已经持仓的订单,你想去修改止损,那有些平台对距离的要求就宽松很多,甚至根本不限制,你就可以随便设,哪怕你平着设或者设成0它都接受,这就让很多人产生了困惑,怎么挂单的时候那么严,持仓的时候反而那么松,我身边就有个朋友,他挂单被拒之后,就干脆先挂个不带止损的订单,等他成交了再手动去加止损,嘿,结果加上去了,他当时还觉得挺神奇,其实这就是平台的规则差异。

说到这个我后来又仔细试了几次,发现有些平台在挂单时它会参考当前的买价或者卖价来算距离,而不是以你的挂单价格来算,举个例子,你想在现价上方20个点挂个sell limit,止损放在挂单价上方5个点,这看起来没问题,但系统它可能会拿当前的卖价去比,假如当前卖价到你止损价的距离不到它要求的最小值,那它照样给你拒了,这种时候你就很无语,你可能需要把止损再拉远一点才能通过,或者把你的挂单价格也调一下,反正就是挺烦人的,得来回试。

所以我自己现在的做法就是,挂单之前先看一眼这个品种的历史波动和点差大小,然后止损至少设到15到20个点以上,基本上就很少被拒了,黄金那种波动大的我一般设到30个点以上,反正你把距离拉开点,它就不会为难你,而且就算真的被拒了,你也别慌,你就把止损价往远了挪个几美元,多试两次,大概就能摸到那个门槛在哪了,这个门槛它不是明着告诉你的,你得靠试错去猜。

指标极值的提取与同步对齐方法

指标极值的提取逻辑和价格类似,但有个麻烦事:指标的数值范围和波动节奏跟价格不一样。比如RSI在0到100之间波动,而价格可能是1.2到1.3这种小范围。所以不能简单用同一个分形条件,得根据指标特性调整参数。

我的做法是先计算指标序列,然后用类似找分形的方法来找指标极值。但这里有个关键点:指标极值对应的K线序号,必须和价格极值对应上。也就是说,如果价格在K线序号100形成了高点,那我得看指标在序号100附近有没有高点,而且最好是用序号100那根K线的指标值,因为收盘时指标值才最终确定。

同步对齐还有个细节,就是指标的偏移量。有些指标自带偏移,比如MACD的柱状图可能会滞后于价格。这时候可以调整指标参数,或者在对齐时允许一定的K线偏移范围。我一般在代码里加个可调参数,默认允许偏差2根K线,超过这个范围就认为不是同一组极值。

进阶技巧让点差获取更智能

如果你觉得每次调用MarketInfo太麻烦,可以把它封装成一个自定义函数。比如写一个GetSpread(string symbol)函数,内部判断返回值是否有效,然后返回处理后的点差值。这样在主逻辑里调用时,代码会干净很多,也方便统一修改过滤逻辑。

另一个进阶技巧是结合MarketInfo的其他模式一起使用。比如MODE_ASK和MODE_BID可以获取当前的买价和卖价,用卖价减去买价也能得到点差,但这种方式得到的点差是浮动的,比MODE_SPREAD更精确。不过MODE_SPREAD返回的是服务器端计算好的值,速度更快,适合对性能要求高的场景。

如果你在写回测脚本,也要注意点差数据的处理。历史数据回测时,MarketInfo函数返回的是当前实时点差,而不是历史点差。这意味着你的回测结果可能和实盘有偏差。解决方案是用固定的平均点差值来做回测,或者从历史报价数据中计算当时的点差。

最后提一下,有些MT4版本或者非标准构建的MT4平台,MarketInfo函数的行为可能略有差异。如果你发现获取的点差数据和平台界面显示的不一致,先检查一下是不是平台版本的问题,再考虑代码是否有误。毕竟工具是死的,人是活的,灵活运用才是关键。

文章目录