MT4多开 - MT4点差获取用MarketInfo函数就这么简单_MarketInfo函数的基本用法

MarketInfo函数的基本用法
MarketInfo函数是MQL4内置的一个通用市场信息查询函数,它的原型是MarketInfo(symbol, type),第一个参数是交易品种名称,第二个参数是你要查询的信息类型。要获取点差,type参数要用MODE_SPREAD,返回的值是以点数为单位计算的。举个例子,如果你想获取EURUSD的当前点差,可以这样写:double spread = MarketInfo("EURUSD", MODE_SPREAD); 这一行代码就能把当前点差赋值给spread变量。
不过这里有个细节值得注意,MODE_SPREAD返回的是整数类型,但MarketInfo函数的返回值是double类型。这意味着你拿到的点差数值其实是个整数,比如15或者20,代表15个点或20个点。有些新手会疑惑为什么不是小数,这是因为MT4内置的点差计算方式就是按点数来的,而不是按价格的小数点位数。
在实际使用中,很多人会把MarketInfo函数放在OnTick()或者自定义函数里,这样每次价格变动时都能刷新点差数据。我自己写EA的时候,习惯在每次开仓前先调用一次这个函数,确保用的是最新的点差值,避免因为点差变化导致止损止盈设置不合理。
另外,MarketInfo函数不仅支持当前图表品种,也支持其他品种。比如你在看EURUSD的图表,但想知道GBPUSD的点差,完全可以把"GBPUSD"作为第一个参数传进去。这个灵活性在写多品种策略时特别有用。
误触问题背后的操作习惯因素
其实很多误触问题并不完全是软件缺陷造成的,操作习惯占了很大比重。我见过不少交易者,鼠标灵敏度调得极高,点击和拖拽的触发阈值又设得很低,这种情况下别说锁定功能,就算把MT4的防误触机制全部打开,该误触还是会误触。MT4默认的鼠标操作阈值是4个像素,也就是说鼠标移动超过4个像素后,拖动操作才被识别为“拖拽”而不是“点击”。如果你把这个值调得太低,比如1个像素,那稍微手抖一下就会触发拖动。
在MT4的“工具”菜单里,有一个“选项”窗口,切到“图表”标签页,底部能找到“鼠标操作阈值”的滑动条。建议把阈值设置在4到8像素之间,这样既能保证拖拽操作精准,又不会因为手部微小抖动导致误触。这个设置和锁定功能配合使用,基本能解决九成以上的误触问题。
另外,图表上对象过多也是误触频发的诱因。有些交易者喜欢把各种分析工具全堆在图表上,涨跌趋势线、支撑阻力线、通道线、斐波那契回撤线,密密麻麻一大片。这种情况下,即使有锁定功能,操作起来也会很混乱。我个人的习惯是,只保留当前交易策略必需的分析对象,其余的全部删掉或者放到其他模板里。图表清爽了,误触概率自然大幅下降。
还有一个容易被忽视的点:MT4的“自动滚动”功能。当价格更新导致图表滚动时,鼠标指针所在位置的对象可能会被“挤”到指针下方,这时候你本意是点击某个按钮,却可能变成拖拽了一条线。解决方法是把“图表滚动”选项中的“自动滚动”关掉,或者把鼠标放在图表边缘的操作区域外。这个细节虽然小,但实际交易中影响很大。
有阵子我干脆不用图表模板直接在交易终端里头裸看
不过有些现象也挺离谱的,你仅仅打开一个图表,没有任何复杂指标,它也照样加载,这让我怀疑有时候它就是习惯性动作,非得把最远的那些历史K线验明正身才肯罢休,然后我还试过把平台调成英文版,想看看减少一些系统默认加载的内容会不会有什么变化,结果发现它还是那副德行,并不会因为界面语言改了哪里就能跳过步骤,真的是很死脑筋啊。
然后有一段时间我都是每天设置好专家的那个实时更新数据工具在电脑自动定时下载,避开早上的高峰,每次开机前就用批处理把旧历史文件挪走一部分,等到MT4启动完再看它那个加载时间,确实是缩短了一些呢,但这只能解一时的问题啊,过了三四天它又重新积累那堆以前数据的缓存,然后又回到老半天才打开的状态,说到底它那个重新加载的机制就摆在那里,后台总会有一堆你看不见也不关心的历史数据在默默地全量同步,其实你真正用的指标文件也就几只手数得过来罢了。
说到这我又想起有一次,我在那边下数据的时候不小心把MT4安装目录给剪切走了,然后右键创建一个快捷方式摆在桌面上那种操作,还以为会搞出个大事情来,结果它打开以后一样要加载半天,然后提示了哪些券商的服务器连接不上,我心想这不就是彻底的重装了吗,但是也没有用,因为所有历史记录又重新给你推一遍,那个等待又开始了,所以我对这个软件的理解就是,只要你能忍受打开时的耐心等,其它时候它还算能凑合着用,反正它关掉前干的事情就是随时准备在你下次打开了狂加载一通,我也认了。
关于那个加载完之后的瞬间,状态栏会显示要签名才能访问服务器内容之类的东西,这个和重新加载数据的关系我不知道大不大,反正一并都在那里发生,就当是这个软件的固定老年病好了,你看多少论坛里都在吐槽MT4打开后要重新加载数据,但也没见过哪个版本更新把这个毛病真正解决掉的,问了身边的朋友有的说偶尔会有有的说每次都这样,反正我每天碰它之前都先烧水泡茶准备等一等,估计这个现象就跟着它终老了,也不知道官方以后还会不会管这是几十年里诞生以来就没换过肝脏的老骨头了。
账户数据隔离与交易策略的独立性
很多人在同时使用两个经纪商账户时,最担心的其实是数据混淆问题,比如会不会把A平台的订单发到B平台上去。我明确告诉你,不会,只要你用的是不同的MT4客户端,数据是完全隔离的,每个客户端只跟它对应的服务器通信,不可能会串线。
但这里有个心理学层面的问题值得聊聊。当你同时开着两个账户做交易时,很容易产生一种错觉,觉得两个账户的资金加起来就是自己的总资金,然后在下单的时候手数会不自觉放大。比如你有两个账户各5000美金,本来你只想用5000美金的风险来做单,但看到两个账户都有余额,可能就会各下0.5手,实际总仓位变成了MT4点值计算与计价货币的关联性探讨_切换图表或最小化对脚本执行的影响1手,风险翻倍了。
我自己就有过这样的教训,以前用两个账户做对冲策略的时候,本来是想一个做多一个做空,结果因为两边图表都开着,手一滑点错了方向,两个账户变成了同向交易,亏得我怀疑人生。所以如果你要用多账户操作,一定要提前规划好每个账户的用途,比如一个做长线,一个做短线,或者一个用趋势策略,一个用震荡策略,不能混着来。
另外,如果你想在两个账户之间快速切换查看持仓或者历史记录,不需要退出当前账户再登录另一个,直接切换到另一个MT4窗口就行。但如果你用的是同一个MT4客户端的便携模式,那就得注意,虽然数据是隔离的,但图表布局和自定义指标是跟着数据文件夹走的,所以你在A账户里画的趋势线,在B账户里是看不到的,这反而是个优点,可以避免视觉上的干扰。
最后提醒一句,不管你是用哪种方法同时操作两个经纪商的账户,一定要确保这两个经纪商都是正规受监管的,而且你用的是自己实名认证的账户。有些平台的服务条款里明确写了禁止同一客户在不同经纪商之间进行某些特定操作,虽然实际上很难查,但万一出了纠纷,你自己要承担风险。
反正我用了这么多年,只要不做违法的事,基本上没遇到过问题。