거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
46
평가:
(6)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

MT4Orders 또는 Virtual을 통해 구현된 MT4 스타일 거래 명령을 위한 빠른 JavaScript 버전의 보고서 라이브러리입니다.

보고서보다 최대 10배 빠르게 작동하고, NTML 파일 크기가 더 작으며, 최대 540만 개의 보고서 줄을 업로드하고 표시할 수 있습니다(아래 스크린샷).

기능: (보고서와 동일)

  • MT4, MT5, 해당 테스터 또는 가상 테스터가 실행한 거래를 표시합니다.
  • 차트 표시
  • 브라우저에서 보고서가 포함된 HTML 파일을 엽니다(DLL 및 #define REPORT_BROWSER 명령어 사용 권한 필요).

보고서와의 차이점:

  • MT5 사이드 코드에서는 보고서의 모든 데이터가 HTML 코드로 줄을 조합하지 않고 즉시 파일에 배열로 출력됩니다. 따라서 속도가 크게 향상되고 파일 크기가 줄어듭니다.

  • 통계 계산, 차트 작성, 거래 라인이 포함된 HTML 코드 생성은 브라우저 측에서 자바스크립트 코드로 수행됩니다. 필요한 페이지를 표시하는 페이지 매기기가 만들어집니다.

  • 차트는 거래 번호별로 일률적인 척도가 아닌 시간 척도로 거래를 표시합니다. 따라서 1주차에 전문가 어드바이저가 1000건의 거래를 체결하고 52주 동안 활동하지 않았다는 것을 알 수 있습니다.
    다음은 5년간 3386개의 거래가 있는 예시입니다:
    Number_vs_Time
    두 차트에 동일한 거래가 배치되어 있습니다.
    위쪽 차트는 거래 사이에 균일한 단계로 만들어져 있습니다(현재 MetaQuotes 테스터에 표시된 것처럼). 유망해 보입니다.
    아래 차트는 시간 척도로 작성되었으며 전문가 자문가가 5년 동안 몇 주만 거래했음을 보여줍니다. 가로 1픽셀 = 1주
    아래 차트에 따르면 처음에는 2년간 활동하지 않다가 몇 주 동안 거래한 후 다시 2.5년 동안 활동하지 않는 것을 알 수 있습니다. 이러한 거래는 첫 번째 차트의 인상만큼 흥미롭지 않습니다.

  • 슬리피지, 수수료, 수수료 및 슬리피지가없는 옵션이있는 잔액 차트는 동일한 옵션 (잔액 작업 없음)의 이익 (P / L) 차트로 대체되었습니다.

  • 잔고 운영 입출금을 표시하는 별도의 잔고 차트가 추가되었습니다. 이렇게 하면 손익 차트에서 거래 작업과 잔고 작업의 금액을 별도로 확인할 수 있습니다.

  • 차트를 클릭하면 대화형 Google.charts가 열립니다. 여기서 확대하여 거래를 자세히 볼 수 있습니다. 100,000건의 거래가 있는 4개의 손익 차트가 약 10초 동안 열립니다.

  • 턴오버 차트는 매수, 매도 및 그 금액에 대한 손익 차트로 대체됩니다. 이렇게 하면 전략이 강세인지 약세인지 파악할 수 있습니다. 수익성이 없는 경우 거래 방향 중 하나를 끄기로 결정할 수 있습니다. 상품 종가 차트는 그 아래에 표시됩니다. 환율이 상승할 때 매수하면 수익이 발생하고 매도하면 손실이 발생하는지, 반대로 환율이 하락할 때 매수하면 손실이 발생하는지 추적하는 것이 편리합니다. 여러 상품이 있는 경우 가격이 함께 표시되므로 필터로 상품 중 하나만 선택해 해당 가격만 확인하는 것이 좋습니다.

  • 시초가, 종가 및 그 합계에서 슬리피지 및 누적 슬리피지 차트를 추가한 아이디어는 https://www.mql5.com/ru/blogs/post/760817 에서 가져온 것입니다 .

  • 보고서의 열을 약간 재정렬했지만 보고서-e에서와 같이 열을 재정렬하는 확인란이 있습니다. 더 익숙하다면.

  • 가상에서 작업할 때 QuickReport를 여러 번 호출하여 각 가상(여러 개 있는 경우) 및/또는 실제 MT5 테스터에 대한 보고서를 생성할 수 있습니다.

사용 예시:

  • MT4Orders로 간단하게
    #include <MT4Orders.mqh>
    #define REPORT_BROWSER            // Open report in browswer automatically. Require DLL.
    //#include <Report.mqh>
    #include <MT4Orders_QuickReport.mqh>//
    
    void OnInit(){}
    
    void OnTick(){ strategy (); }
    
    void OnDeinit(const int  reason ){
       QuickReport("report", true);
    }
    
    int TimeHour     ( datetime time ){return((int)((time / 3600) % 24));}//현재 시간(시간 단위) 3600초(시간)
    
    void strategy (){
      string Symb = _Symbol;
      MqlTick Tick;
      if (SymbolInfoTick(Symb, Tick)){    
        if(TimeHour(TimeCurrent())<23 && TimeHour(TimeCurrent())>0 ){return;} 
        OrderSend(Symb, OP_BUY,  10, Tick.ask, 0, Tick.bid, Tick.bid,  NULL, 1000);
        OrderSend(Symb, OP_SELL, 10, Tick.bid, 0, Tick.ask, Tick.ask,  NULL, 1000);
       }
    }
    
  • 대형 테스트 코드

  • 가상으로 간단
    #include <MT4Orders.mqh>
    
    #include <fxsaber\Virtual\Virtual.mqh>
    #define REPORT_BROWSER            // Open report in browswer automatically. Require DLL.
    //#include <Report.mqh>
    #include <MT4Orders_QuickReport.mqh>
    
    double OnTester() { //or OnDeinit()
       for (int v = 0 ; v <= VIRTUAL::Total(); v++){if (VIRTUAL::SelectByIndex(v)){QuickReport("report_"+(string)v, true, v);}} //각 테스터에 대한 보고서 표시
       return(AccountInfoDouble(ACCOUNT_BALANCE)); 
    }
  • 호출 매개변수 설명
    void QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=0, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){...}
    file_name - 기록할 파일 이름
    is_open_file_in_browser - 계산이 완료되면 브라우저에서 파일을 자동으로 엽니다(DLL 권한 필요). 파일은 수천 개가 있을 수 있으므로 최적화 중에는 자동으로 열리지 않습니다.
    virtual_number - (가상으로 작업하려면) 가상 테스터의 수(-1 - 자동으로 결정됨, 0 - MT5 테스터, >0 - 가상 테스터)
    hide_account_and_name - 계정 번호 및 이름 숨기기
    common_path - 터미널의 공용 폴더에 저장합니다. 최적화 중 다른 에이전트가 파일을 덮어쓰는 것을 방지하기 위해 파일 이름에 에이전트 번호(3000, 3001,...)가 추가됩니다. 테스터 폴더에 저장하는 경우(거짓), 계산을 수행한 에이전트의 폴더에 저장됩니다.
    fileANSI - ANSI 인코딩 또는 유니코드로 저장합니다. 유니코드 파일은 크기가 2배 더 크고 처리 시간이 오래 걸리므로 1GB와 같이 많은 양의 데이터를 업로드하는 경우 ANSI를 사용하는 것이 더 경제적입니다. 필요한 경우 타사 서비스와의 호환성을 위해 유니코드가 추가됩니다.


540만 건의 트랜잭션에 대한 보고서 예시:

(내 컴퓨터에서 보고서가 100,000줄 이상인 가상의 보고서는 모든 메모리를 소모하고 중단되므로 자바스크립트 버전을 만들었습니다).

빠른 보고서 샘플

이 보고서에는 Firefox가 표시되었습니다. Chrome이 중단되고 더 작은 파일이 필요합니다.

파일에 540만 개 이상의 행을 업로드할 수 있지만 Firefox 브라우저는 더 이상 처리할 수 없습니다.

이 보고서를 로드할 때 브라우저는 약 6GB의 메모리를 사용한 후(약 1분 처리) 메모리를 확보한 후 페이지에 보고서가 표시됩니다(보고서는 8~10만 줄에서 5~6GB 사용).

메모리 사용량


확대/축소가가능한 상세 차트:

차트를 클릭하면 해당 차트와 함께 대화형 차트가 열리며, 확대하여 자세히 볼 수 있는 기능이 있습니다.
두 가지 옵션이 있습니다:

  1. 기본값은 무료 Google.charts입니다.
  2. 상용 제품인 하이차트는 더 빠르고 편리하지만 개발 중인 프로그래머만 무료로 사용할 수 있으며 프로젝트/제품을 출시할 때는 라이선스를 구매하고 매년 갱신해야 합니다. 자세한 내용은 https://shop.highcharts.com/ 참조

로그 - 로그 스케일을 선택할 수 있습니다(잔액이 기하급수적으로 증가하는 경우 유용할 수 있음). 하이차트의 경우 서수 - 균일 단계(MetaQuotes 테스터 보고서에서와 같이)를 추가로 선택할 수 있습니다. 이러한 항목을 변경한 후 선택한 옵션을 적용하려면 원하는 차트를 다시 클릭해야 합니다.

Google.chart의 예: (마우스 휠로 확대/축소).


Highcharts의 예 : (마우스로 필요한 영역을 선택하여 눈금 변경).


MT5 지정가 주문 체결

지정가 주문이 트리거된 주문의 경우 유형 필드에 지정가 주문 유형(매수 제한, 매도 제한, 매수 중지 또는 매도 중지), 주문 설정부터 트리거까지 걸린 시간(초) 및 활성화된 주문/포지션 유형이 진한 파란색으로 표시됩니다. 이 정보는 MT5 단말기 또는 테스터에만 표시되며, 가상 테스터 또는 MT4는 이 정보를 제공하지 않습니다.



시간 및 요일별 수익 및 손실 그래프.

MQ 테스터와 달리 수익과 손실은 발생 시점이 아닌 거래 진입 시점으로 표시됩니다. 따라서 특정 시간대의 진입은 대부분 수익성이 없다는 것을 더 쉽게 이해할 수 있으며 해당 시간대의 진입은 간단히 해제할 수 있습니다.
또한 구매 및 판매에 대한 차트도 제공됩니다.


이러한 차트를 클릭하면 시간 및 날짜별로 정확한 금액이 표시된 표를 볼 수 있습니다. 입력에서 시간 및 요일을 비활성화하는 데 사용할 수 있는 확인란도 있어 차트와 테이블이 다시 작성되고 추가 테스트 없이 결과를 평가할 수 있습니다. Fxsaber의 BestInterval과 유사하지만 더 거칠고(1시간 단계) 자동화가 없습니다. 단계를 줄이기 위해 M10 간격이 추가되었습니다.

이 차트에서 시간별 또는 일별 수익의 일부 폭발은 짧은 테스트 기간에서 볼 수 있습니다. 위 차트는 상승 추세의 1개월 테스트입니다. 따라서 매수는 이익이고 매도는 손실입니다. 테스트를 1년 이상으로 늘리면 양방향으로 몇 가지 큰 추세가 지나가면 모든 것이 고르게 번지고 일반적으로 수익성이 떨어지므로 무언가를 끄고 수익에 큰 변화를 가져올 수 없습니다.
다음은 1 년 동안 동일한 전략으로 테스트 한 것입니다 (거의 모든 것을 꺼야 함).

따라서 전략의 기초가 될 수 없습니다.


주문 필터링.

다양한 매개변수별로 주문을 표시하기 위해 많은 필터가 추가되었습니다.


매수, 매도, 매수 제한, 매도 제한, 매수 중지, 매도 중지, 잔고 - 보고서에서 모든 유형의 주문을 제거할 수 있습니다.
기호 - 사용된 상품의 전체 목록이 표시되며 필요한 상품만 선택할 수 있습니다.
매직 - 지정된 매직이 있는 주문만 표시할 수 있습니다
최소 랏, 최대 랏 - 필요한 랏이 있는 주문을 선택할 수 있습니다
마이너스 슬리피지 - 개시 주문 또는 청산 주문에 대해 마이너스 슬리피지가 있는 주문을 별도로 표시할 수 있습니다
스왑 - 스왑이 있는 주문을 표시합니다 >. 0
최소 길이 시간 - 기간이 지정된 시간보다 긴 주문(일, 시간, 분, 초 단위로 지정)
최대 길이 시간 - 기간이 지정된 시간보다 짧은 주문
개시 시간 - 지정된 날짜부터 지정된 날짜까지의 주문 개시 시간
마감 시간 - 지정된 날짜부터 지정된 날짜까지의 주문 마감 시간
TP, SL - TP 또는 SL 트리거로 종료된 주문
이익, 손실 - 이익 또는 손실 주문(수수료 및 스왑은 포함되지 않으며 최종 수익이 마이너스가 될 수 있음)
거부 - 체결되지 않은 주문입니다.

재설정 버튼을 사용하면 필터를 기본값으로 재설정하고 필터링 없이 모든 주문을 표시할 수 있습니다.


추가 옵션:



  1. 포워드 테스트의 시작 날짜를 지정할 수 있으며, 전체 플롯의 통계가 적용된 후 지정된 날짜 이전의 플롯(백테스트)과 그 이후의 플롯(포워드테스트)이 계산됩니다. 그래프에는 이 날짜에 수직선이 표시됩니다.
  2. 이전 열 순서 - 보고서 라이브러리에서와 같이 열 순서가 재정렬됩니다.

추신: 거래에 대한 코멘트가 많을수록 더 적은 수의 행을 표시할 수 있습니다. 540만 행이 있는 보고서에는 "테스트 종료"를 제외하고는 댓글이 없습니다. 따라서 보고서가 4백만 건 이상의 거래가 될 경우 댓글을 달지 않는 것이 좋습니다.

추신: MT5와 MT4 모두에서 작동합니다. MT4를 수정해준 fxsaber에게 감사드립니다.

개선 옵션:

  • 보고서를 바이너리 파일로 언로드하고 브라우저에서 읽을 수 있으며 540 만 개의 큰 행 수로 작동 할 수 있습니다. 그러나 보안 제한으로 인해 바이너리 파일을 수동으로 선택해야 합니다. 즉, 테스트 직후에는 보고서를 자동으로 열 수 없습니다.

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

iCHO 트렌드 CCIDualOnMA 필터 iCHO 트렌드 CCIDualOnMA 필터

표준 보조지표 iCHO(차이킨 오실레이터, CHO)와 사용자 지정 보조지표 'CCIDualOnMA'를 기반으로 한 전략

수동 위치 추적 패널 수동 위치 추적 패널

CDialog 클래스에 기반한 패널입니다. 현재 심볼에서 작업합니다. 포지션 그룹에서 삭제, 이익실현, 손익분기점 설정하기

볼륨 프로필 생성을 위한 기본 라이브러리 볼륨 프로필 생성을 위한 기본 라이브러리

차트에 볼륨 프로필을 생성하는 기본 라이브러리입니다.

각도 및 속도 각도 및 속도

표시기는 가격 변화의 각도 또는 평균 속도를 보여줍니다.