用 MQL 编写的用户界面图库 - 页 76 1...6970717273747576777879808182 新评论 Реter Konow 2024.12.06 17:42 #751 Edgar Akhmadeev #:我们也还不是。我们必须从某个地方开始。散开,跳跃。 我正在自行决定制作第一个版本,没有退路,但我一定会听取尊敬的论坛成员的明智意见。 Edgar Akhmadeev 2024.12.06 19:44 #752 就像 STALKER2 一样,我们会一起完成它。 Реter Konow 2024.12.06 20:06 #753 Edgar Akhmadeev #: 就像 STALKER2 一样,我们一起完成它。 好的)。 Doerk Hilger 2024.12.09 11:15 #754 用户界面仍然是 100% 纯 MQL。 全部基于矢量,完全可缩放并可调整以适应任何显示器。 所有可视化显示都在一个核心类中同步运行,该类根据对象的订阅设置和事件优先级,处理并向对象分发所有 MQL 事件。 它还提供了一个应用程序接口(API),用于访问所有数据,并通过用 MQL(特殊模板)和 C# 编写的指标控制交易。>400 个类,<>200.没有原始库或类。 实际上整个代码 99.99% 是 MQL,只有管道交互 和字符串比较是用 C#/DLL 完成 的。 截图显示的是差价合约交易,但使用的是标的期货的映射交易量。这就是为什么有一个真实的订单簿和交易量概况。 Doerk Hilger 2024.12.09 12:02 #755 另外,这也是其中的一部分,一个带有对象和类浏览器等功能的增强型开发环境: Реter Konow 2024.12.09 20:48 #756 VE 目前的开发阶段: 核心部分的近 400 多个窗口属性、元素和参数已集成到编辑器窗口中,并以标签形式显示。所有这些都将成为在 VE 中创建的图形用户界面元素的可控设置。 用户工作中所需的各种控制元素的 52 个模板已经集成。 在设计和造型方面已经做了大量工作。我将继续权衡各种解决方案,以实现 VE 图形用户界面的实用性和可用性。 一旦完成模板和属性的整合,以及它们的分类和分配,就将开始功能方面的工作。 目前,图形用户界面是用 KIB 标记语言编写的,非常繁琐。目前还没有过渡到可视化编辑。不过,这将在不久的将来实现。 图形用户界面存在缺陷。这些都是暂时的。 为了节省空间,任务栏的高度已经降低。 为了节省空间,编辑器窗口的边框已移出视野范围。 Douglas Prager 2024.12.10 03:59 #757 听起来很不错,彼得,我想一旦你使用 VE 进行自我构建,它肯定会给你一些宝贵的见解,让你了解你的用户界面设计是如何工作的。 期待下一次开发更新。 Реter Konow 2024.12.10 07:25 #758 Douglas Prager #: 听起来不错,彼得。我认为,当你使用 VE 进行自我构建时,它将为你的用户界面设计工作提供宝贵的见解。期待下一次开发更新。 谢谢你,道格拉斯。你说得没错。我们需要克服一个最起码的技术 "障碍"。我也将饶有兴趣地关注你们的基本开发工作。 Amir Yacoby 2024.12.10 12:12 #759 Doerk Hilger #: 用户界面仍然是 100% 的纯 MQL。 全部基于矢量,完全可缩放并可根据任何显示器进行调整。 所有可视化显示都在一个核心类中同步运行,该类根据对象的订阅设置和事件优先级处理并向对象分发所有 MQL 事件。 我希望我没有盗用这个非常有趣的主题,如果我盗用了,请原谅我 Peter,这不会是一个讨论,只是希望得到一个简短的答案,以满足理论上的兴趣--你的意思是你有一种静态类,它知道(跟踪所有对象指针)系统中实例化的所有类对象,每个对象都可以访问该控制静态类订阅自己所需的事件,该静态控制单例类只是将事件传递给所有对象?如果是这样,你认为这在 OOP 方面是正确的,还是可以接受的事件驱动编程?因为你写过这方面的文章,所以我猜你会希望接受相关的问题,如果是这样的话,请尽量简短,不要劫持这个主题,虽然它是相关的。 Doerk Hilger 2024.12.11 13:21 #760 Amir Yacoby #:我希望我没有盗用这个非常有趣的主题,如果我盗用了,请原谅我 Peter,这将不会是一个讨论,只是希望为理论兴趣提供一个简短的答案--你的意思是你有一种静态类,它知道(跟踪所有对象指针)系统中实例化的所有类对象,每个对象都可以访问该控制静态类订阅自己所需的事件,该静态控制单例类只是将事件传递给所有对象?如果是这样,你认为这在 OOP 方面是正确的,还是可以接受的事件驱动编程?因为你写过这方面的文章,所以我猜你会希望接受相关的问题,如果是这样的话,请尽量简短,不要劫持这个主题,虽然它是相关的。 简要说明: 核心接收所有 MetaTrader 事件,任何对象都可以订阅核心。因此,必须重新设计/修改 CObject 类,使任何对象都有一个名为 "public: virtual void OnEACycle(CCycleParams * cpm) "的函数。这样一个循环就可以是一个图表事件、init、deinit 等。每个对象还可以有一个 "public: virtual void OnEATick() "函数。这样做的副作用是,你可以获得额外的功能,因为你也可以订阅任何周期的结束,不管是哪个周期。 此外,每个 CObject 对象都可以有子对象和订阅者。这意味着,一个对象可以触发自己的事件,如点击......或类似事件。然后,只需执行 object.SubEvent(STH_CLICKED, params)。这样,对象本身并不关心谁需要这些信息,而只是将这些信息分发给订阅者,他们会收到 OnSubEvent(int msg, CSubEventParams * sep) 并可以做任何他们想做的事情。 总而言之,这种方式更接近于我们从 C# 中了解到的编码方式,在 C# 中也只是使用 .Invoke()来触发事件,而在 C# 中也只是使用 .SubEvent()来触发事件。 其实实现起来并不复杂,当然细节是最终的挑战,因为它是未来每个 EA 或指标的核心/基础,必须在各种情况下都能发挥作用。 通用EA:自定义策略和辅助交易类(第三章) 如何使用 UML 工具开发 EA 1...6970717273747576777879808182 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们也还不是。我们必须从某个地方开始。散开,跳跃。
就像 STALKER2 一样,我们一起完成它。
全部基于矢量,完全可缩放并可调整以适应任何显示器。
所有可视化显示都在一个核心类中同步运行,该类根据对象的订阅设置和事件优先级,处理并向对象分发所有 MQL 事件。
它还提供了一个应用程序接口(API),用于访问所有数据,并通过用 MQL(特殊模板)和 C# 编写的指标控制交易。
>400 个类,<>200.
没有原始库或类。
实际上整个代码 99.99% 是 MQL,只有管道交互 和字符串比较是用 C#/DLL 完成 的。
截图显示的是差价合约交易,但使用的是标的期货的映射交易量。这就是为什么有一个真实的订单簿和交易量概况。
VE 目前的开发阶段:
期待下一次开发更新。
听起来不错,彼得。我认为,当你使用 VE 进行自我构建时,它将为你的用户界面设计工作提供宝贵的见解。期待下一次开发更新。
用户界面仍然是 100% 的纯 MQL。
全部基于矢量,完全可缩放并可根据任何显示器进行调整。 所有可视化显示都在一个核心类中同步运行,该类根据对象的订阅设置和事件优先级处理并向对象分发所有 MQL 事件。
我希望我没有盗用这个非常有趣的主题,如果我盗用了,请原谅我 Peter,这不会是一个讨论,只是希望得到一个简短的答案,以满足理论上的兴趣--你的意思是你有一种静态类,它知道(跟踪所有对象指针)系统中实例化的所有类对象,每个对象都可以访问该控制静态类订阅自己所需的事件,该静态控制单例类只是将事件传递给所有对象?如果是这样,你认为这在 OOP 方面是正确的,还是可以接受的事件驱动编程?因为你写过这方面的文章,所以我猜你会希望接受相关的问题,如果是这样的话,请尽量简短,不要劫持这个主题,虽然它是相关的。
我希望我没有盗用这个非常有趣的主题,如果我盗用了,请原谅我 Peter,这将不会是一个讨论,只是希望为理论兴趣提供一个简短的答案--你的意思是你有一种静态类,它知道(跟踪所有对象指针)系统中实例化的所有类对象,每个对象都可以访问该控制静态类订阅自己所需的事件,该静态控制单例类只是将事件传递给所有对象?如果是这样,你认为这在 OOP 方面是正确的,还是可以接受的事件驱动编程?因为你写过这方面的文章,所以我猜你会希望接受相关的问题,如果是这样的话,请尽量简短,不要劫持这个主题,虽然它是相关的。
简要说明:
核心接收所有 MetaTrader 事件,任何对象都可以订阅核心。因此,必须重新设计/修改 CObject 类,使任何对象都有一个名为 "public: virtual void OnEACycle(CCycleParams * cpm) "的函数。这样一个循环就可以是一个图表事件、init、deinit 等。每个对象还可以有一个 "public: virtual void OnEATick() "函数。这样做的副作用是,你可以获得额外的功能,因为你也可以订阅任何周期的结束,不管是哪个周期。
此外,每个 CObject 对象都可以有子对象和订阅者。这意味着,一个对象可以触发自己的事件,如点击......或类似事件。然后,只需执行 object.SubEvent(STH_CLICKED, params)。这样,对象本身并不关心谁需要这些信息,而只是将这些信息分发给订阅者,他们会收到 OnSubEvent(int msg, CSubEventParams * sep) 并可以做任何他们想做的事情。
总而言之,这种方式更接近于我们从 C# 中了解到的编码方式,在 C# 中也只是使用 .Invoke()来触发事件,而在 C# 中也只是使用 .SubEvent()来触发事件。
其实实现起来并不复杂,当然细节是最终的挑战,因为它是未来每个 EA 或指标的核心/基础,必须在各种情况下都能发挥作用。