私募

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

期货量化软件:赫兹量化手工制图表和交易工具箱-- 优化和全新工

[复制链接]
发表于 2023-9-2 08:24:04 | 显示全部楼层 |阅读模式
主文件是 Shortcuts.mqh。 该文件存储击键处理逻辑。 甚而,这是唯一直接包含在智能交易系统或指标中的文件。 相应地,它包含其余文件,并对其进行初始化。文件 GlobalVariables.mqh 则包含所有全局变量。 这些设置主要用于设置线条颜色、线条厚度、线条延伸系数、等等。文件 Mouse.mqh 包含处理鼠标移动的类定义。 它存储当前光标坐标,含像素和“价格-时间”坐标,以及当前主线编号。Utilites.mqh 包含辅助函数。 它计算柱线图极值、指标线交点和其它有用参数,这些参数也许与绘图没有直接关系,但可判断图形的所有方面。文件 Graphics.mqh 负责依据其它文件中的数据进行绘图。 来自该文件中的主要函数调用 Shortcuts.mqh 文件。我并不总是严格地将函数分组。 某些计算是在绘图函数中进行的。 到目前为止,于我来讲,开发和维护这个结构还很方便。 也许有一天我会改进总体布局。此实现展示了如何在指标中运用函数库代码。: Q9 q! j( k6 H3 k
优化函数库性能此处这是略微有点修改。为什么我在最初的函数库版本中选择采用智能交易系统,而非指标? 这很简单。 每个智能交易系统都在自己的执行线程中运行。 理想情况下,它们不会相互影响,因此,如果我们需要在多个图表上处理键盘快捷键,终端不会变慢太多。不过,智能交易系统的目的是交易,而该程序并不执行任何交易操作。 甚而,当一个指标附加到图表上时,在图表上运行另一个智能交易系统也更容易一些。 因此,我决定实现一款指标。 这里会浮现一个性能速度的问题。 如果用户有多个打开的窗口,这一点尤其重要。 例如,如果用户有 40 个打开的选项卡(可以有更多),那么若所有图表同时处理击键,则很难进行击键检查。然后我就悟了:为什么我们要处理所有的图表? 所有检查只需在活动窗口中执行。代码非常简单。/* Shortcuts.mqh */void CShortcuts::OnChartEvent(  const int id,  const long &lparam,  const double &dparam,  const string &sparam) { //...  if(ChartGetInteger(0,CHART_BRING_TO_TOP)==false)   {    return;   }  //...
http://www.simu001.cn/x281026x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Archiver| ( 桂ICP备12001440号-3 )|网站地图

GMT+8, 2024-4-27 22:38 , Processed in 0.372107 second(s), 25 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

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