거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
라이브러리

싱글 테스터 캐시 - MetaTrader 5용 라이브러리

조회수:
67
평가:
(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 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

이 라이브러리를 사용하면 MT5-Tester 단일 패스 형식인 tst 파일을 읽고 쓸 수 있습니다.


다양한 사용 방법

    트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼

    메타트레이더 5 플랫폼 베타 빌드 2155: MQL5의 가시성 영역, 전략 테스터의 글로벌 업데이트 및 내장 호스팅 제공

    fxsaber, 2019.10.04 07:18 오후.

    tst 파일 형식을 열고 테스터의 캐시 폴더를 샌드박스에 배치하면 테스터 결과의 분석기/수정기가 되는 새로운 유형의 마켓 상품을 만들 수 있습니다.


    예를 들어, 캐시에서 사용 가능한 모든 단일 패스를 표시하는 Market-combine을 작성할 수 있습니다.

    • 마우스로 필요한 항목을 선택하면 결합된 통계가 표시됩니다.
    • 불필요한 패스로부터 캐시를 정리합니다.
    • 패스로부터 적절한 가중치 계수를 사용하여 최적의 포트폴리오를 계산합니다.
    • 각 패스에 대한 최적의 매매주기를 표시합니다.
    • 필터를 포함한 자체적인 대화형 통계 시각화를 제공합니다.
    • 최적의 MM을 계산합니다.
    • 히스토리의 각 헤지 포지션에 대해 주문개시가격 베스트(포지션의 수명 기간 동안 가장 좋은 개시 가격), 주문종가 베스트(유사), 주문개시가격 길이(포지션의 수명 기간 동안 주문개시가격보다 나쁘지 않은 기간), 주문종가 길이(유사), 주문이익 베스트(원래 포지션의 수명 기간 동안 유사한 포지션의 가능한 최고 이익)를 표시합니다.
    • 각 헤지 포지션의 효율을 표시합니다.
    • 레이턴시가 활성화된 경우 결과를 계산합니다.
    • 다양한 주문 체결 설정(슬라이드 여부 등) 및 커미션에서 결과를 계산합니다.
    • 다른 틱 기록에 대한 TS 결과를 표시합니다.
    • ...

    각 항목을 구현하기 위해 테스터를 실행할 필요가 없습니다.

    mklink를 통해 캐시 폴더를 샌드박스에 넣으면 이 모든 작업을 수행할 수 있습니다. tst 형식 만 필요합니다.

    스스로 힘을 느끼는 사람은 누구나 그러한 제품을 작성하기 시작해야합니다. 나는 기꺼이 개발자 팀에 합류하여 구매할 것입니다. 틈새 시장은 완전히 비어 있습니다.


    캐시 폴더가 샌드 박스화되지 않으면 다른 언어로 작성되므로 유사한 제품이 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/ko/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);             // 매개변수 입력.
      }
    }


    이 스크립트는 마지막 단일 패스의 데이터를 자동으로 가져와 잔액/자산 그래프를 포함한 데이터를 출력합니다.


    감사의 글

    테스터 캐시를 만들고 포맷을 풀 수 있도록 도와준 개발자에게 감사드립니다.

    MetaQuotes Ltd에서 러시아어로 번역함.
    원본 코드: https://www.mql5.com/ru/code/27611

    Pinbar Detector MT5 Pinbar Detector MT5

    Pinbar Detector is a MetaTrader indicator that tries to detect Pinbars (also known as "Pin-bar" or "Pin bar") and marks them by placing a "smiling face" symbol below the bullish Pinbars and above the bearish Pinbars. It is a pure price action indicator, which is not using any standard technical indicators in its code. The configuration of Pinbar detection can be done via the indicator's input parameters. Pinbar Detector can issue platform alerts and email alerts on detection. The indicator is available both for MT4 and MT5 versions of the trading platform.

    Keltner Channel MT5 Keltner Channel MT5

    Keltner Channel (MetaTrader indicator) — is a classical technical analysis indicator developed by Chester W. Keltner in 1960. The indicator is somewhat similar to the Bollinger Bands and Envelopes. It uses three plot lines: the middle line is the 10-day simple moving average applied to the typical price ((high + low + close) / 3), the upper and the lower bands are produced by adding and subtracting the moving average of the daily price range (High and Low difference) from the middle line. This way, a volatility-based channel is built. In this version of the indicator you can modify all the parameters of the MA. The indicator is available both for MT4 and MT5 versions of the platform.

    캘린더 캘린더

    캘린더 - 기록 및 실시간에 대한 기본 분석.

    새 막대 또는 캔들 시작 감지하기 새 막대 또는 캔들 시작 감지하기

    Expert Advisor의 OnTick() 이벤트 핸들러에서 새 막대 또는 캔들의 시작을 감지합니다.