请观看如何免费下载自动交易
请在Telegram上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
141
等级:
(16)
已发布:
\MQL5\Include\fxsaber\SingleTesterCache\
TradeDeal.mqh (16.52 KB) 预览
String.mqh (1.79 KB) 预览
\MQL5\Scripts\fxsaber\ \MQL5\Include\
TypeToBytes.mqh (20.45 KB) 预览
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

该库允许您读/写 tst 文件 - MT5-Tester 单程格式。


使用的一些变体

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

    MetaTrader 5 平台 beta 版本 2155:MQL5 中的可见性领域、策略测试器的全球更新和内置托管

    fxsaber, 2019.10.04 07:18 pm.

    如果打开 tst 文件格式并将测试器的缓存文件夹放入沙盒,就有可能创建新类型的 Market 产品,作为测试器结果的分析器/校正器。


    例如,可以编写一个 Market-combine,显示缓存中所有可用的单次通过。

    • 您只需用鼠标选择所需的数据,它就会显示综合统计数据。
    • 它可以清除缓存中不必要的单次交易。
    • 用适当的加权系数计算出最佳投资组合。
    • 显示每次交易的最佳交易时间间隔。
    • 提供自己的交互式可视化统计数据,包括过滤器。
    • 计算最佳 MM。
    • 显示历史上每个对冲头寸的 OrderOpenPriceBest(头寸有效期内的最佳开仓价)、OrderClosePriceBest(类似)、OrderOpenPriceLength(头寸有效期内价格不低于 OrderOpenPrice 的时间长度)、OrderClosePriceLength(类似)、OrderProfitBest(原始头寸有效期内类似头寸的最高利润)。
    • 显示每个对冲头寸的效率。
    • 计算启用延迟时的结果。
    • 计算不同订单执行 设置(是否滑动等)和佣金下的结果。
    • 在不同的跳动历史上显示 TS 的结果。
    • ...

    您不需要启动测试器来执行每个项目。

    如果通过 mklink 将缓存文件夹放入沙盒,现在就可以完成所有这些操作。您只需要 tst-format。

    谁觉得自己有实力,谁就应该开始编写这样的产品。我很乐意加入开发团队并购买它。这个市场完全空白。


    如果不对 cache-folder 进行沙盒化处理,那么类似产品出现在 MQ 生态系统之外的可能性就会增加,因为它们将是用其他语言编写的。



    #include <fxsaber\SingleTesterCache\SingleTesterCache.mqh> // 测试人员的单程数据。
    
    void OnStart()
    {  
      SINGLETESTERCACHE SingleTesterCache; // 创建一个测试器缓存对象。
      
      SingleTesterCache.Set(); // 把竞标的真实情况写进去。
      
    // .\.\.MQL5\Files/Test.tst.
      Print(SingleTesterCache.Save("Test.tst")); // 将其写入可导入测试器的文件。
    }

    该脚本将真实账户的交易历史记录整理成 tst 格式。导入测试器的方式如下。


    结果是这样的


    DLL 解决方案不能放在 KB 中,因此下面是另一个脚本的源代码,它不包含在 KB 中。

    #include <fxsaber\SingleTesterCache\SingleTesterCache.mqh> // 测试人员的单程数据。
    
    #include <Graphics\Graphic.mqh>
    #include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/zh/code/26132
    
    #define  MIN_WIDTH 10
    
    // 创建图形。
    string GraphPlot( const double &Y1[], const double &Y2[],
                      int Width = 0, int Height = 0, const ENUM_CURVE_TYPE Type = CURVE_NONE,
                      const string CurveName1 = NULL, const string CurveName2 = NULL, string ObjName = NULL )
    {
      Width = Width ? Width : (int)::ChartGetInteger(0, CHART_WIDTH_IN_PIXELS);
      Height = Height ? Height : (int)::ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS);
      ObjName = (ObjName == NULL) ? __FUNCTION__ : ObjName;
    
      CGraphic Graphic;
    
      const bool Res = (::ObjectFind(0, ObjName) >= 0) ? Graphic.Attach(0, ObjName) : Graphic.Create(0, ObjName, 0, 0, 0, Width, Height);
    
      if (Res)
      {
        const int Size1 = ::ArraySize(Y1);
        const int Size2 = ::ArraySize(Y2);
    
        Graphic.CurveAdd(Y1, ((Type == CURVE_NONE) && Size1) ? ((Width / Size1 < MIN_WIDTH) ? CURVE_LINES : CURVE_POINTS_AND_LINES) : Type, CurveName1);
        Graphic.CurveAdd(Y2, ((Type == CURVE_NONE) && Size2) ? ((Width / Size2 < MIN_WIDTH) ? CURVE_LINES : CURVE_POINTS_AND_LINES) : Type, CurveName2);
    
        Graphic.CurvePlotAll();
        Graphic.Update();
      }
    
      return (Res ? Graphic.ChartObjectName() : NULL);
    }
    
    void OnStart()
    {  
      uchar Bytes2[];
      
      if (MTTESTER::GetLastTstCache(Bytes2) != -1) // 如果可以读取单次运行的最后一条缓存记录
      {
        const SINGLETESTERCACHE SingleTesterCache(Bytes2); // 将其驱动到相应的对象中。
    
        SingleTesterCache.SaveSet(NULL, true, "Created by " + __FILE__); // 保存包含详细信息的设置文件。
        
        double Balance[];
        double Equity[];
      
        // 打印余额和权益图表。
        if (SingleTesterCache.GetBalance(Balance) && SingleTesterCache.GetEquity(Equity))
          GraphPlot(Balance, Equity, 1200, 500, CURVE_NONE, "Balance", "Equity");
          
        Print(SingleTesterCache.Header.ToString());  // 输出单次传递的页眉。
        Print(SingleTesterCache.Summary.ToString()); // Statistica.
        Print(SingleTesterCache.Inputs);             // 输入参数。
      }
    }


    该脚本将自动获取最后一次单程的数据并输出其数据,包括平衡/权益图。


    鸣谢。

    感谢开发人员创建 Tester 缓存并帮助我解压其格式。

    由MetaQuotes Ltd译自俄语
    原代码: https://www.mql5.com/ru/code/27611

    趋势均衡指标 TrendEQ 趋势均衡指标 TrendEQ

    趨勢均衡指標 TrendEQ 透過結合動量和波動性來動態分析市場趨勢。透過根據市場走勢衡量動量,TrendEQ 提供了趨勢強度和方向的可靠衡量標準。

    辅助平仓工具 辅助平仓工具

    这是一个辅助止盈止损工具,它可以帮助你严格止损,动态止盈。已更新

    日历 日历

    日历 - 历史和实时基本面分析。

    检测新柱状或蜡烛的开始 检测新柱状或蜡烛的开始

    在智能交易系统的 OnTick() 事件处理程序中检测新柱状图或蜡烛图的开始。