找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 14|回复: 0

解决 MT4 的 AccountFreeMarginCheck 或者 MT5 的 OrderCalcMargin 返回错误报价问题

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-24 00:20:00 | 显示全部楼层 |阅读模式
最后由 westwuwei 于 2023-6-6 08:59 编辑

因为自己计算比较繁琐麻烦,而且也不准确,所以程序化交易(EA)经常要使用 MT5 或者 MT4 的功能来返回不同货币对的“保证金报价”。例如要“买 AUDCAD”之前就要知道“下单 1 手需要占用多少保证金”,才能进行账户资金管理。这个数值涉及到平台差异、品种不同、账户类型、用户资金、用户协议、报价时间、固定或者浮动杠杠、以及其它许多规则的不同情况,MT5或者MT4通过后台服务平台通讯,去查询不同结果。


在我们的运行中,其实每当调用几千次,总有可能出现“大意外”。例如正常情况下例如返回 88 美金左右(根据账户和平台的当前状况有所变化),但是很可能在凌晨4点半的时候,偶尔会返回“2、1.5”这类数字。如果这时候恰好要开仓、加仓,这就会造成系统开仓很大的手数,瞬间造成“保证金不足”,将账户当前正在运作中持有的浮亏强行结算,造成巨大亏损。


“处理浮亏”是不同策略赚钱的根本。任何策略都不可能一开单就“只盈利不浮亏”,除非是含糊其辞的那种“大忽悠”交易法,否则各种策略都必须明确地给出持有和处理浮亏的细节,来换取盈利的机会。因此如果因为开仓手数明显不合理而错误地处理了浮亏,就可能把盈利的机会变为了亏损的压力。


在我们的系统中,每当进程启动之后,就会对每一个货币对,持续记录最后 5-10 次所得到的保证金价格。当开仓或者加仓时,如果当时取到的保证金价格是货币对的“历史保证金价格”的平均值的一半还低,就不会开仓加仓。


在程序化交易中,有上百个“坑”需要填补,才可能打造一个稳定的自动交易系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-13 00:16 , Processed in 0.107579 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表