设为首页 收藏本站 切换语言

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

| 发表于 2023-6-6 08:20:54 | 显示全部楼层 |复制链接
最后由 westwuwei 于 2023-6-6 08:59 编辑

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

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

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

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

在程序化交易中,有上百个“坑”需要填补,才可能打造一个稳定的自动交易系统。
如果有帮助,就支持一下我呗
最近访问 头像模式
举报

评论 使用道具

精彩评论1

daerwushen
DD
| 发表于 2023-6-6 08:24:42 | 显示全部楼层
保证金报价
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)