是否可以使用 Expert Advisor 代码更改 One-Click-Trading window 中 Lot-size 字段输入的值?

Is it possible to change a value of a Lot-size field input in a One-Click-Trading window with Expert Advisor code?

如标题所述,是否可以通过专家顾问在一次点击交易中更改手数 window?

问候,AK

不,不是。 TLDR


为什么?

MetaTrader4 终端软件是一个历史悠久的程序(更好的平台),其中一些架构决策最初是以某种方式设置的,现在不容易更改。

这在任何大型软件项目中都是有效且常见的情况,MetaQuotes, Inc. 过去和现在都没有排除在这种情况之外。

从历史上看,该平台支持多个同时运行的用户定义算法的内部代码执行工具。

每个 MT4.Graph 可以容纳以下资源:
- 1x Expert Advisor 过程
- Nx Custom Indicator 进程
- 1x Script 进程

One-Click-Trading 由 MetaQuotes, Inc. 引入,作为所谓的插件附加组件的示例,可以使用 MetaTrader 终端软件进行操作,但是用户不会从 MetaQuotes, Inc. 收到任何代码可控的 API,用于以编程方式操作这些附加组件的工程。

人们可能同样遇到过另一个插件小部件,称为 Depth of Market,它被经纪人"marketed" 积极推广,但甚至比 OCT-widget 的弱点更多(对于喜欢这种风格的人,它至少可以进行基于点击的交易)

好吧,虽然开发用于 Windows O/S 对象之间的接口的中间件代码并不是什么致命的事情,但这种重新发明轮子的成本很难证明这种 Dev/Test努力。

更多的是,在 MetaTrader 终端软件(如果专业执行,这可能会受到欢迎)以及 MQL4[=86= 中开始了一些重大的重新设计更改]-语言语法(这实际上开始了代码维护者无尽的头痛噩梦)

最近 new-MQL4.56789 令人毛骨悚然,是的,令人毛骨悚然 - 一些无声的限制变化,语法默认行为转变和头撞 string 突然在技术上不再是 string,而是 struct 只是增加了新的挫败感。

更不用说无数人*年的修复和重新定义 DLL-接口噩梦


如何逃离这样的流沙?

分布式计算似乎是一种很有前途的方法,可以将大部分代码从 MQL4 域中排除,并在 外部进行操作MQL4(它仍然是某种形式的瘦客户端界面/中介:
FOREX Market Events' Flow(通过 MetaTrader 服务器提供系统 )
MMI/GUI(通过 MetaTrader 终端系统提供)
AlgoTrading Strategy / Services 收集证据记录+ SysLog(s) + ...你给它命名(通过分布式处理节点/网格/GPU-云/等提供)