文章 "使用图形界面处理优化结果"

 

新文章 使用图形界面处理优化结果已发布:

这是处理和分析优化结果想法的续篇,这一次,我们的目标是选择100个最佳的优化结果并且在图形用户界面(GUI)表格中显示它们。用户将可以在优化结果中选择一行而在独立的图表中得到多交易品种余额和回撤图。

我们已经探讨了通用数组的结构以及不同种类的数据序列,现在我们需要了解数据是如何从数组中展开的。数据帧包含了余额数组的大小以及交易品种枚举作为键值,如果余额数组的大小等于回撤数组的大小,我们就能根据一个公式,在循环中确定范围中所有封装数据的索引,就像下面的框架,但是数组的大小是不同的,所以,在循环的最后一次迭代时,我们需要确定数据中的多少元素是与回撤相关的,然后除以二,因为回撤数组的大小是一样的。 

 


图 2. 含有用于计算下一个种类数组索引的参数框架

作者:Anatoli Kazharski

 

В качестве строкового параметра во фрейм будет передаваться перечисление символов через разделитель ','. Изначально предполагалось сохранять данные во фрейм, как полный отчёт в строковом массиве. Но на текущий момент строковые массивы нельзя передавать во фрейм. При попытке передать в функцию FrameAdd() массив строкового типа при компиляции выйдет соообщение об ошибке: строковые массивы и структуры, содержащие объекты, не допускаются. 

不允许使用字符串数组和包含对象的结构

另一种方法是将报告写入文件并传输到框架中。但这一方案也不适合我们:我们必须经常将结果写入硬盘。

还有一种方法是传输字符串和其他东西。

交易、自动交易系统和交易策略测试论坛。

库:TypeToBytes

fxsaber, 2017.07.19 12:16 AM.

报告圣经 中的实际应用示例

发送不同数据的帧

        string Str;
        REPORT::ToString(Str);

        double Balance[];
        REPORT::GetBalanceHistory(Balance);

      #ifdef __TYPETOBYTES__
        CONTAINER<uchar> Container;

        Container[0] = Str;     // 将报告字符串放入容器中
        Container[1] = Balance; // 还在容器中添加了余额变化历史记录的双数组

        ::FrameAdd(NULL, 0, ::AccountInfoDouble(ACCOUNT_BALANCE), Container.Data); // 发送一个包含字符串报告和余额数组的框架
      #else  // __typetobytes__

接收不同数据的框架

 CONTAINER<uchar> Container;

    while (::FrameNext(Pass, Name, ID, Value, Container.Data))
    {
        string Str;
        Container[0].Get(Str);     // 从框架中获取报告字符串

        double Balance[];
        Container[1].Get(Balance); // 从帧中获取相应的双数组

// .....
 
fxsaber:

还有一个选项可以传递字符串之类的东西

这是一个有趣的选项。谢谢。

 

Каждый раз, когда пользователь выделяет строку в таблице, график мультисимвольных балансов обновляется на вкладке Balance:

将图形放在同一个窗口中,从而省去了在图形选项卡中来回切换的两次额外点击?

使用上/下按钮浏览表格行,立即获得相应的曲线?

 
Andrey Khatimlianskii:

将图表放在同一个窗口中,是否就能省去来回切换图表选项卡的两次额外点击?

使用上/下按钮浏览表格行,立即获得相应的曲线?

标准优化器中缺少这样出色的解决方案。

 
Andrey Khatimlianskii:

1. 将图表放在同一个窗口中,是否就能省去来回切换图表选项卡的两次额外点击?

2. 使用上/下按钮在表格行中移动,立即获得相应的曲线?

现在,我正在为另一篇相关文章准备素材。我会考虑第一点,但第二点还没有考虑,因为我不打算在短期内返回 GUI-library。

 
Anatoli Kazharski:

我还没有第二个,因为我不打算在短期内回到图形用户界面库。

它不一定要内置在程序库中,只是一个方便的额外功能。

 
Andrey Khatimlianskii:

它不一定要内置在程序库中,只是一个方便的额外功能。

我看看能做些什么。