MT5 시작하는 방법 요약! - 페이지 2

 

곧 -
Telegram과 유사한 새로운 통신 시스템 - 이 게시물 을 읽어보세요.

 

=============

이치모쿠


시작

  1. 단순 이치모쿠 시스템
  2. 단순 Ichimoku 시스템 - 시스템 규칙
  3. 단순 이치모쿠 스캘핑

후에

=============

 

좋은 스레드는 시각화된 정보로 생성되었습니다 - 팁 스레드 .
모든 초보자(알기 위해)와 숙련된 사용자(지식을 새로 고침)에게 이 작은 스레드를 읽는 것이 좋습니다.

----------------

프리랜서 서비스

  • MQL5 계정에 자금을 입금하는 방법
  • 다음 단계로 진행하는 방법
  • 피드백을 남기는 방법
  • 스크린샷이란?
  • 예비 요구 사양의 파일/다른 형식의 파일을 첨부하는 방법
  • 프로그램에 오류가 있는 경우 개발자에게 제공할 사항
  • 이미지/코드/비디오/표를 텍스트에 삽입하는 방법
  • 모바일 장치에서 스크린샷을 만드는 방법
  • 주문 실행 기간/비용 연장 방법
  • 실행 3일 설정 후 5일 동안 사라지지 않음고객: 채팅에 임베딩하기 위해 동영상 대신 GIF 이미지를 만드는 방법

----------------

플랫폼

  • Expert Advisor/Indicator 설치 방법
  • 플랫폼/테스터/옵티마이저 저널은 어디에 있습니까?
  • 푸시 알림 구성을 위한 MetaQuotes ID는 어디에 있습니까?
  • 세 번의 클릭으로 차트 메뉴를 통해 오류 스크린샷을 만드는 방법
  • 이메일 알림 활성화 및 구성 위치
  • EA/지표가 작업하는 파일은 어디에 있습니까?
  • '설명' 및 '아이콘' 필드란 무엇이며 찾을 수 있는 위치
  • 플랫폼 빌드 번호를 찾는 위치데이터 창을 활성화하고 표시기 값을 보는 방법
  • 정확한 시간 척도를 활성화하는 방법
  • 차트 템플릿을 저장하는 방법
  • WebRequest를 통해 작동하도록 URL을 추가하는 방법 EX4/EX5 파일을 찾을 수 있는 위치

----------------

전문가 고문

  • 매직넘버란?
  • 후행 정지가 작동하는 방식 EA의 저널은 어디에 있습니까?
  • 네비게이터에서 EA/표시기가 회색인 이유
  • 네팅과 헤징의 차이점은 무엇입니까
  • 마켓에서 구매한 제품을 설치하는 방법

----------------

시험 장치

  • 설정 파일 저장/로드 방법
  • 플랫폼/테스터/옵티마이저 저널을 찾을 수 있는 곳
  • 테스트 모드는 서로 어떻게 다른가요?
  • 시각적 테스트를 시작하고 사용하는 방법
  • MetaTrader 4에서 사용 가능한 가격 기록을 다운로드하는 방법

 

이것은 매우 중요하고 매우 흥미로운 업데이트입니다 - 꼭 읽어보세요 -

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MetaTrader 5 플랫폼 베타 빌드 1910: MQL5에서 차트 및 .Net 라이브러리의 언바운드 드래그 앤 드롭

MetaQuotes Software Corp. , 2018.10.12 19:43

업데이트된 MetaTrader 5 플랫폼의 베타 버전은 2018년 10월 14일에 출시됩니다. access.metatrader5.com:443에 있는 공개 MetaQuotes-Demo 서버를 업데이트할 것입니다. 업데이트된 플랫폼 기능을 평가하고 개발자가 오류를 수정할 수 있도록 모든 거래자가 테스트에 참여하도록 초대합니다.

MetaTrader 5 플랫폼을 빌드 1910으로 업데이트하려면 access.metatrader5.com server:443에 연결하십시오.

새로운 MetaTrader 5 플랫폼의 최종 빌드는 공개 베타 테스트 후에 출시됩니다.

업데이트에는 다음 변경 사항이 포함됩니다.

  1. 터미널: 이제 거래 터미널 창에서 금융 기호 차트를 분리할 수 있습니다.

    이 기능은 여러 대의 모니터를 사용할 때 편리합니다. 따라서 하나의 모니터에 기본 플랫폼 창을 설정하여 계정 상태를 제어하고 차트를 두 번째 화면으로 이동하여 시장 상황을 관찰할 수 있습니다. 터미널에서 차트를 분리하려면 컨텍스트 메뉴에서 도킹 옵션을 비활성화합니다. 이후 원하는 모니터로 차트를 이동합니다.



    분리된 차트의 별도 도구 모음을 사용하면 모니터 간에 전환하지 않고도 분석 개체 및 지표를 적용할 수 있습니다. 도구 모음 상황에 맞는 메뉴를 사용하여 사용 가능한 명령 집합을 관리하거나 숨깁니다.

  2. 터미널: 내장 채팅을 완전히 업데이트했습니다. 이제 그룹 대화 및 채널을 지원합니다. 서로 다른 대화 사이를 전환하지 않고 통합된 환경에서 그룹의 사람들과 비공개 토론을 수행하고 관심사와 언어에 따라 채널을 만듭니다. 웹사이트를 방문하지 않고도 MQL5.community에서 동료 및 친구들과 소통할 수 있습니다.

    그룹 채팅 및 채널은 공개 또는 비공개일 수 있습니다. 그들의 제작자는 자유롭게 참여할 수 있는지 아니면 초대를 통해서만 참여할 수 있는지 결정합니다. 추가 커뮤니케이션 제어를 위해 채널 및 채팅에 중재자를 할당할 수도 있습니다.



  3. 터미널: 암호화폐 거래에 대한 증가된 볼륨 정확도에 대한 지원이 추가되었습니다. 이제 가능한 최소 거래량은 0.00000001랏입니다. 시장 깊이, 시간, 판매 및 기타 인터페이스 요소는 이제 소수점 이하 8자리까지 정확한 수량을 표시하는 기능을 제공합니다.

    최소 거래량 및 변경 단계는 브로커 측의 금융 상품 설정에 따라 다릅니다.




  4. 터미널: MQL5.community 에 게시된 기사 탭을 도구 상자 창에 추가했습니다. MQL5의 거래 전략 개발에 대한 600개 이상의 자세한 자료는 이제 터미널을 떠날 필요 없이 사용할 수 있습니다. 새로운 기사가 매주 게시됩니다.



  5. 터미널: Wine에서 작업할 때 인증서를 사용한 확장 인증 에 대한 지원이 추가되었습니다.
  6. 터미널: 시장 깊이가 한 수준으로 제한될 때 고정 표시됩니다.
  7. 터미널: 표준 도구 모음에 "그림으로 저장" 명령을 추가했습니다. 이제 차트를 사진으로 찍어 커뮤니티에서 공유하는 것이 훨씬 쉬워졌습니다.




  8. 터미널: 막대와 눈금을 가져올 때 시간 이동을 적용하는 문제를 수정했습니다. 이전에는 일부 경우에 시프트가 적용되지 않았습니다.



  9. MQL5: "스마트" 기능 가져오기가 있는 .NET 라이브러리에 대한 기본 지원이 추가되었습니다. 이제 특별한 래퍼를 작성하지 않고도 .NET 라이브러리를 사용할 수 있습니다. MetaEditor가 자체적으로 수행합니다.

    .NET 라이브러리 함수로 작업하려면 특정 함수를 정의하지 않고 DLL 자체를 가져오기만 하면 됩니다. MetaEditor는 작업 가능한 모든 기능을 자동으로 가져옵니다.
    • 단순 구조(POD, 일반 이전 데이터)
    • 단순 데이터 유형이 있는 구조
    • 단순 유형 및 POD 구조 또는 해당 배열만 사용되는 매개변수가 있는 공용 정적 함수

    라이브러리에서 함수를 호출하려면 다음과 같이 가져오기만 하면 됩니다.
     #import "TestLib.dll"
    
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart ()
      {
       int x= 6 ;
       TestClass::Inc(x);
       Print (x);
      }
    TestClass의 Inc 함수의 C# 코드는 다음과 같습니다.
     public class TestClass
    {
       public static void Inc(ref int x)
       {
        x++;
       }
    }
    실행 결과 스크립트는 값 7을 반환합니다.

  10. MQL5: 코드를 구문 분석할 때 인라인, __inline 및 __forceinline 지정자에 대한 지원이 추가되었습니다. 코드에 지정자가 있으면 오류가 발생하지 않으며 컴파일에 영향을 미치지 않습니다. 현재 이 기능은 С++ 코드를 MQL5로 전송하는 것을 단순화합니다.
    MSDN 에서 지정자에 대한 자세한 정보를 찾으십시오.

  11. MQL5: MQL5 프로그램 실행이 크게 최적화되었습니다. 어떤 경우에는 성능 향상이 10%에 도달할 수 있습니다. 프로그램을 더 빠르게 실행하려면 새 MetaEditor 버전에서 프로그램을 다시 컴파일하십시오.
    안타깝게도 이러한 추가 최적화로 인해 새 프로그램은 이전 터미널 버전과 호환되지 않습니다. MetaEditor 버전 1910 이상에서 컴파일된 프로그램은 1880 미만의 터미널 버전에서 실행할 수 없습니다. 이전 MetaEditor 버전에서 컴파일된 프로그램은 새 터미널에서 실행할 수 있습니다.

  12. MQL5: 여러 MQL5 기능을 크게 최적화했습니다.
  13. MQL5: 터미널 기본 창에서 차트를 연결/분리하고 위치를 관리하기 위한 새 속성이 추가되었습니다.

    ENUM_CHART_PROPERTY_INTEGER 열거에 다음 속성을 추가했습니다.

    • CHART_IS_DOCKED — 차트 창이 도킹됩니다. 'false'로 설정하면 차트를 터미널 영역 밖으로 드래그할 수 있습니다.
    • CHART_FLOAT_LEFT — 가상 화면을 기준으로 도킹 해제된 차트 창의 왼쪽 좌표입니다.
    • CHART_FLOAT_TOP — 가상 화면을 기준으로 도킹 해제된 차트 창의 상위 좌표입니다.
    • CHART_FLOAT_RIGHT — 가상 화면을 기준으로 도킹 해제된 차트 창의 오른쪽 좌표입니다.
    • CHART_FLOAT_BOTTOM — 가상 화면을 기준으로 도킹 해제된 차트 창의 아래쪽 좌표입니다.

    ENUM_TERMINAL_INFO_INTEGER 열거에 다음 함수를 추가했습니다.

    • TERMINAL_SCREEN_LEFT — 가상 화면의 왼쪽 좌표. 가상 화면은 모든 모니터를 덮는 직사각형입니다. 시스템에 오른쪽에서 왼쪽으로 정렬된 두 개의 모니터가 있는 경우 가상 화면의 왼쪽 좌표는 두 모니터의 경계에 있을 수 있습니다.
    • TERMINAL_SCREEN_TOP — 가상 화면의 상단 좌표.
    • TERMINAL_SCREEN_WIDTH — 터미널 너비.
    • TERMINAL_SCREEN_HEIGHT — 터미널 높이.
    • TERMINAL_LEFT — 가상 화면을 기준으로 한 터미널의 왼쪽 좌표입니다.
    • TERMINAL_TOP — 가상 화면에 상대적인 터미널의 상단 좌표.
    • TERMINAL_RIGHT — 가상 화면을 기준으로 한 터미널의 오른쪽 좌표.
    • TERMINAL_BOTTOM — 가상 화면을 기준으로 한 터미널의 하단 좌표.

  14. MQL5: MqlTick 및 MqlBookInfo 구조에 volume_real 필드를 추가했습니다. 증가된 정확도 볼륨에서 작동하도록 설계되었습니다. volume_real 값은 'volume'보다 우선 순위가 높습니다. 지정된 경우 서버는 이 값을 사용합니다.

    struct  MqlTick
      {
        datetime          time;           // Last price update time
        double            bid;            // Current Bid price
        double            ask;            // Current Ask price
        double            last;           // Current price of the Last trade
        ulong             volume;         // Volume for the current Last price
        long              time_msc;       // Last price update time in milliseconds
        uint              flags;          // Tick flags
        double            volume_real;    // Volume for the current Last price with greater accuracy
      };

    struct MqlBookInfo
      {
       ENUM_BOOK_TYPE   type;             // order type from the ENUM_BOOK_TYPE enumeration
       double            price;           // price
       long              volume;           // volume
       double            volume_real;     // volume with greater accuracy
      };

  15. MQL5: ENUM_SYMBOL_INFO_DOUBLE 열거에 새 속성을 추가했습니다.

    • SYMBOL_VOLUME_REAL — 마지막으로 실행된 거래의 볼륨.
    • SYMBOL_VOLUMEHIGH_REAL — 당일 가장 높은 거래량.
    • SYMBOL_VOLUMELOW_REAL — 당일 가장 낮은 거래량.

    SymbolInfoDouble 함수를 사용하여 이러한 속성을 가져옵니다.

  16. MQL5: ENUM_MQL_INFO_INTEGER 열거에 MQL_FORWARD 속성을 추가했습니다. - 순방향 테스트 모드 플래그입니다.
  17. MQL5: 열거형 캐스팅에 대한 요구 사항 완화. 암시적 캐스팅의 경우 컴파일러는 자동으로 올바른 열거 값을 대체하고 경고를 표시합니다.

    다음 코드의 경우:
     enum Main
      {
       PRICE_CLOSE_,
       PRICE_OPEN_
      };
    
    input Main Inp=PRICE_CLOSE;
    //+------------------------------------------------------------------+
    //| Start function                                                   |
    //+------------------------------------------------------------------+
    void OnStart ()
      {
      }
    컴파일러는 경고를 표시합니다.
    implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main'
    'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
    이전에는 이 경우 다음 오류가 생성되었습니다.
    'PRICE_CLOSE' - cannot convert enum
    열거형이 함수 매개변수에서 잘못 사용된 경우 컴파일러는 여전히 오류를 표시합니다.

  18. MQL5: 템플릿 함수의 컴파일이 수정되었습니다. 이제 오버로드된 템플릿 함수를 사용할 때 기존의 모든 오버로드가 아닌 필요한 오버로드만 인스턴스화됩니다.
     class X {  };
    
    void f( int )  {  }
      
    template < typename T>
    void a(T*) { new T( 2 ); }   // previously, the compiler generated the error here
      
    template < typename T>
    void a()  { f( 0 ); }
      
      
    void OnInit ()  { a<X>(); }  
    
  19. MQL5: CopyTicks* 기능 을 통해 틱 기록에 액세스하는 일부 경우를 최적화했습니다.
  20. 테스터: 관련 보고서를 테스트/최적화하고 생성할 때 입금 통화 정확도를 계산하는 문제를 수정했습니다.
  21. 테스터: 전략 테스터 작업을 최적화하고 가속화합니다.
  22. MetaEditor: 전체 단어 검색을 수정했습니다. 이제 검색할 때 밑줄이 단어 구분 기호가 아닌 일반 문자로 계산됩니다.
  23. 업데이트된 설명서.

 

좋은 스레드가 시작되었습니다 - MQL5로 시작하는 방법

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL5로 시작하는 방법

블라디미르 카르푸토프 , 2018.12.24 20:34

이 스레드는 MQL5 코드 예제에 대해 설명합니다. 지표에서 데이터를 가져오는 방법, 어드바이저를 프로그래밍하는 방법... 일반적으로 초보자에서 MQL5 언어에 이르는 모든 질문에 대한 예가 있습니다.


MetaTrader 5 터미널에 막 익숙해지기 시작했다면 다음 스레드를 추천할 수 있습니다.

 

시장의 모든 판매자가 읽어야 할 한 가지 기사가 있습니다. 그것은 Market 제품의 유효성 검사에 관한 것입니다.

----------------

거래 로봇이 마켓에 게시하기 전에 통과해야 하는 검사

Why products are checked before they are published in the Market

전문가 또는 지표 논리의 작은 오류로 인해 거래 계정에 손실이 발생할 수 있으므로 제품이 시장에 게시되기 전에 필수 사전 확인을 거쳐야 합니다. 이것이 우리가 Market 제품의 요구되는 품질 수준을 보장하기 위해 일련의 기본 검사를 개발한 이유입니다.

마켓 모더레이터가 상품을 확인하는 과정에서 오류가 발견되면 모두 수정해야 합니다. 이 기사는 거래 로봇 및 기술 지표에서 개발자가 가장 자주 범하는 오류를 고려합니다. 다음 기사도 읽는 것이 좋습니다.

 

고마워 남자...

매우 도움이 됩니다, 큰 노력...

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

새로운 MetaTrader 5 플랫폼 빌드 2005: 경제 캘린더, 서비스로서의 MQL5 애플리케이션 및 R 언어 API

MetaQuotes Software Corp. , 2019.02.20 17:20

MetaTrader 5 플랫폼 업데이트는 2019년 2월 21일에 출시됩니다. 새 버전에는 다음과 같은 변경 사항이 있습니다.

  1. 터미널: 내장 경제 달력을 완전히 수정했습니다.

    경제 달력 은 우리의 독점 솔루션입니다. 여기에는 미국, 유럽 연합, 일본, 영국, 캐나다, 호주, 중국 등 13대 글로벌 경제와 관련된 600개 이상의 금융 뉴스 및 지표가 있습니다. 관련 데이터는 오픈 소스에서 실시간으로 수집됩니다.

    새 버전에는 업데이트된 콘텐츠와 고급 이벤트 필터(시간, 우선 순위, 통화 및 국가별)가 있습니다.

    이제 MQL5 프로그램에서 캘린더 데이터에 액세스할 수 있습니다. 자세한 내용은 아래를 참조하십시오.




  2. 터미널: 새로운 유형의 MQL5 애플리케이션인 서비스가 추가되었습니다. 이 새로운 유형을 통해 터미널에 대한 맞춤형 가격 피드를 생성할 수 있습니다. 즉, 브로커의 거래 서버에서 구현되는 것처럼 실시간으로 외부 시스템에서 가격 전달을 구현할 수 있습니다.

    Expert Advisors, 지표 및 스크립트와 달리 서비스는 특정 차트에 연결되지 않습니다. 이러한 응용 프로그램은 백그라운드에서 실행되며 터미널이 시작될 때 자동으로 실행됩니다(해당 응용 프로그램이 강제로 중지된 경우 제외).

    서비스는 네비게이터 창의 새 섹션에서 관리할 수 있습니다.





    서비스를 만드는 방법
    서비스 템플릿을 생성하려면 해당 MQL5 마법사 옵션을 사용하십시오. 서비스에는 스크립트와 유사한 하나의 OnStart 진입점이 있습니다. 이때 네트워크 기능 을 사용하여 데이터 수신 및 처리 주기를 무한대로 구현할 수 있습니다.

    서비스를 시작하는 방법
    매개변수가 다른 여러 Expert Advisor 또는 지표 복사본을 실행하려면 다른 차트에서 실행해야 합니다. 이 경우 다른 프로그램 인스턴스가 생성된 다음 독립적으로 작동합니다. 서비스는 차트에 연결되지 않으므로 서비스 인스턴스 생성을 위한 특별한 메커니즘이 구현되었습니다.

    네비게이터에서 서비스를 선택하고 컨텍스트 메뉴에서 "서비스 추가"를 클릭하십시오. 그러면 거래를 활성화/비활성화하고 신호 설정에 액세스하고 다양한 매개변수를 설정할 수 있는 표준 MQL5 프로그램 대화 상자가 열립니다.




    적절한 인스턴스 메뉴를 사용하여 서비스 인스턴스를 시작 및 중지할 수 있습니다. 모든 인스턴스를 관리하려면 서비스 메뉴를 사용하세요.

  3. 터미널: 학습 프로그램이 추가되었습니다.

    새로운 기능은 초보자가 플랫폼과 상호 작용하는 방법을 배우는 데 도움이 됩니다. 주요 플랫폼 기능과 관련된 100개 이상의 대화형 팁을 추가했습니다.

    • 팁은 도구 모음에 진행률 표시줄로 매끄럽게 표시되므로 사용자의 주의를 산만하게 하지 않습니다.
    • 팁은 플랫폼에서 수행한 적이 없는 작업에 대해서만 나타납니다.
    • 모든 팁에는 관련 인터페이스 요소로 이동할 수 있는 대화형 링크가 포함되어 있습니다. 예를 들어, 거래 대화 상자나 원하는 프로그램이 있는 메뉴를 팁에서 바로 실행할 수 있습니다.

    적절한 작업을 수행하고 교육을 계속할 때마다 진행률 표시줄의 채워진 영역이 늘어납니다.




  4. 터미널: 거래 계좌 내역 을 포지션으로 제시할 수 있습니다. 플랫폼은 포지션(오픈, 볼륨 증가, 부분 또는 전체 마감)과 관련된 거래에 대한 데이터를 수집하고 정보를 단일 레코드로 그룹화합니다. 따라서 오픈 및 클로즈 시간, 거래량, 가격 및 결과와 같은 위치 세부 정보에 액세스할 수 있습니다. 이 효율적인 프레젠테이션 양식은 이제 파일로 내보낸 기록 보고서에서 사용할 수 있습니다.




  5. 터미널: R 언어를 사용하는 애플리케이션을 통해 MetaTrader 5 터미널 데이터를 요청할 수 있는 새로운 API가 추가되었습니다.

    특별한 MetaTrader 패키지를 준비했습니다. 여기에는 R과 MetaTrader 5 터미널, 문서 및 보조 r 파일 간의 상호 작용을 위한 DLL이 포함되어 있습니다. CRAN 저장소에서 패키지 등록을 완료하고 나면 다운로드 및 설치가 가능합니다.




    패키지는 다음과 같은 특수 명령을 사용하여 설치할 수 있습니다.
    R CMD INSTALL --build MetaTrader

    데이터 요청과 관련된 다음 명령을 사용할 수 있습니다.

    • MT5Initialize는 MetaTrader 5 터미널을 초기화하고 연결을 설정합니다. 필요한 경우 명령 실행 중에 터미널이 실행됩니다.
    • MT5Shutdown은 MetaTrader 5를 초기화 해제하고 연결을 끊습니다.
    • MT5Version은 MetaTrader 5 터미널 버전을 가져옵니다.
    • MT5TerminalInfo는 브로커의 서버에 대한 터미널 연결 상태 및 매개변수(계정 번호 및 서버 주소)를 가져옵니다.
    • MT5WaitTerminal은 MetaTrader 5 터미널이 브로커 서버에 연결될 때까지 기다립니다.
    • MT5CopyTicksFrom(symbol, from, count, flags)은 지정된 날짜부터 시작하여 지정된 틱 수를 복사합니다. 날짜는 1970년 1월 1일부터 밀리초 단위로 지정됩니다.
    • MT5CopyTicksRange(symbol, from, to, flags)는 지정된 기간 내에서 틱을 복사합니다. 날짜는 1970년 1월 1일부터 밀리초 단위로 지정됩니다.
    • MT5CopyRatesFrom(symbol, timeframe, from, count)는 지정된 날짜부터 시작하여 지정된 수의 1분 막대를 복사합니다. 날짜는 1970년 1월 1일부터 초 단위로 지정됩니다.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count)는 마지막 막대를 기준으로 지정된 위치에서 1분 막대를 복사합니다.
    • MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to)는 지정된 기간 내에서 막대를 복사합니다. 날짜는 1970년 1월 1일부터 초 단위로 지정됩니다.

    지원되는 명령 목록이 더 확장됩니다.

  6. 터미널: 반대 위치로 위치를 마감하는 데 사용되는 최적화된 닫기 기준 대화 상자입니다. 이제 많은 수의 열린 위치가 있어도 대화가 느려지지 않습니다.
  7. 터미널: 때때로 데이터를 건너뛸 수 있었던 합성 기호 계산 오류를 수정했습니다.
  8. 터미널: 사용자 지정 기호 가 삭제되면 해당 눈금 및 막대 기록이 저장된 파일도 삭제됩니다. 이렇게 하면 사용하지 않는 데이터가 하드 디스크에 축적되는 것을 방지할 수 있습니다.
  9. 터미널: 높은 DPI 화면에서 검색 결과가 표시되는 문제를 수정했습니다.
  10. MQL5: MQL5 프로그램에서 경제 캘린더 데이터에 대한 액세스를 구현했습니다.

    새로운 기능

    CalendarCountryById — 식별자로 국가 설명을 가져옵니다.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById — 식별자로 이벤트 설명을 가져옵니다.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById — 식별자로 이벤트 값 설명을 가져옵니다.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry — 해당 국가에서 사용 가능한 이벤트의 배열을 가져옵니다.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency — 영향을 받는 통화에 대해 사용 가능한 이벤트 배열을 가져옵니다.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent — 이벤트 식별자별로 지정된 기간의 값 배열을 가져옵니다.
     bool CalendarValueHistoryByEvent(
       ulong                 event_id,      // event ID
       MqlCalendarValue&    values[],      // array of values
       datetime              datetime_from, // period beginning date
       datetime              datetime_to= 0  // period end date
       );
    CalendarValueHistory — 국가 및/또는 통화별로 필터링된 모든 이벤트에 대해 지정된 기간의 값 배열을 가져옵니다.
     bool CalendarValueHistory(
       MqlCalendarValue&    values[],           // array of values
       datetime              datetime_from,     // beginning of period
       datetime              datetime_to= 0 ,     // end of period
       string                country_code=NULL, // country code
       string               currency=NULL      // currency
       );
    CalendarValueLastByEvent — 식별자별로 마지막 이벤트 값의 배열을 가져옵니다. 이 기능은 이전 요청 이후에 나타난 값의 요청을 가능하게 합니다. 이 작업에는 입/출력 매개변수 "change_id"가 추가로 사용됩니다.

    달력 데이터베이스가 변경될 때마다 "change_id" 속성(마지막 변경 식별자)이 업데이트됩니다. 데이터 요청 중에 "change_id"를 지정하면 터미널은 그 시간 이후에 발생한 이벤트와 다음 요청에 사용할 수 있는 현재 "change_id" 값을 반환합니다. 첫 번째 함수 호출 중에 "change_id"를 0으로 지정합니다. 함수는 이벤트를 반환하지 않지만 추가 요청에 대해 현재 "change_id"를 반환합니다.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast — 국가 및/또는 통화별로 필터링된 모든 이벤트의 마지막 값 배열을 가져옵니다. 이 기능은 이전 요청 이후에 나타난 값의 요청을 가능하게 합니다. CalendarValueLastByEvent와 유사하게 "change_id" 속성이 요청에 사용됩니다.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[],           // array of values
       string                country_code=NULL, // country code
       string currency=NULL                     // currency
       );

    새로운 구조

    MqlCalendarCountry — 국가 설명.
     struct MqlCalendarCountry
      {
       ulong              id;                         // country ID in ISO 3166-1
       string             name;                       // text name of the country
       string             code;                       // code name of the country in ISO 3166-1 alpha-2
       string             currency;                   // country currency code
       string             currency_symbol;           // country currency symbol/sign
       string             url_name;                   // country name used in URL on mql5.com
      };
    MqlCalendarEvent — 이벤트 설명입니다.
     struct MqlCalendarEvent
      {
       ulong                           id;           // event ID
       ENUM_CALENDAR_EVENT_TYPE       type;         // event type
       ENUM_CALENDAR_EVENT_SECTOR     sector;       // sector to which the event belongs
       ENUM_CALENDAR_EVENT_FREQUENCY  frequency;     // event release frequency
       ENUM_CALENDAR_EVENT_TIMEMODE   time_mode;     // event release time mode
       ulong                           country_id;   // country ID
       ENUM_CALENDAR_EVENT_UNIT       unit;         // unit for the event values
       ENUM_CALENDAR_EVENT_IMPORTANCE importance;   // event importance
       ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;   // event importance multiplier
       uint                            digits;       // number of decimal places in the event value
       string                          source_url;   // source URL
       string                          event_code;   // event code
       string                          name;         // text name of the event in the terminal language
      };
    MqlCalendarValue — 이벤트 값 설명.
     struct MqlCalendarValue
      {
       ulong              id;                         // value ID
       ulong              event_id;                   // event ID
       datetime           time;                       // event date and time
       datetime           period;                     // period, for which the event is published
       int                revision;                   // published indicator revision in relation to the reported period
       long               actual_value;               // current event value
       long               prev_value;                 // previous event value
       long               revised_prev_value;         // revised previous event value
       long               forecast_value;             // forecast event value
       ENUM_CALENDAR_EVENT_IMPACRT impact_type;     // potential impact on the currency rate
      };

    새로운 열거

     enum ENUM_CALENDAR_EVENT_FREQUENCY
      {
       CALENDAR_FREQUENCY_NONE            = 0 ,   // not used
       CALENDAR_FREQUENCY_WEEK            = 1 ,   // weekly
       CALENDAR_FREQUENCY_MONTH           = 2 ,   // monthly
       CALENDAR_FREQUENCY_QUARTER         = 3 ,   // quarterly
       CALENDAR_FREQUENCY_YEAR            = 4 ,   // yearly
       CALENDAR_FREQUENCY_DAY             = 5 ,   // daily
      };
    
    enum ENUM_CALENDAR_EVENT_TYPE
      {
       CALENDAR_TYPE_EVENT                = 0 ,   // event (meeting, speech, etc.)
       CALENDAR_TYPE_INDICATOR            = 1 ,   // indicator
       CALENDAR_TYPE_HOLIDAY              = 2 ,   // holiday
      };
    
    enum ENUM_CALENDAR_EVENT_SECTOR
      {
       CALENDAR_SECTOR_NONE               = 0 ,   // no
       CALENDAR_SECTOR_MARKET             = 1 ,   // market
       CALENDAR_SECTOR_GDP                = 2 ,   // GDP
       CALENDAR_SECTOR_JOBS               = 3 ,   // jobs
       CALENDAR_SECTOR_PRICES             = 4 ,   // prices
       CALENDAR_SECTOR_MONEY              = 5 ,   // money
       CALENDAR_SECTOR_TRADE              = 6 ,   // trade
       CALENDAR_SECTOR_GOVERNMENT         = 7 ,   // government
       CALENDAR_SECTOR_BUSINESS           = 8 ,   // business
       CALENDAR_SECTOR_CONSUMER           = 9 ,   // consumer
       CALENDAR_SECTOR_HOUSING            = 10 ,   // housing
       CALENDAR_SECTOR_TAXES              = 11 ,   // taxes
       CALENDAR_SECTOR_HOLIDAYS           = 12 ,   // holidays
      };
      
    enum ENUM_CALENDAR_EVENT_IMPORTANCE
      {
       CALENDAR_IMPORTANCE_LOW            = 0 ,   // no
       CALENDAR_IMPORTANCE_NONE           = 1 ,   // low
       CALENDAR_IMPORTANCE_MODERATE       = 2 ,   // moderate
       CALENDAR_IMPORTANCE_HIGH           = 3 ,   // high
      };
    
    enum ENUM_CALENDAR_EVENT_UNIT
      {
       CALENDAR_UNIT_NONE                 = 0 ,   // no
       CALENDAR_UNIT_PERCENT              = 1 ,   // percent
       CALENDAR_UNIT_CURRENCY             = 2 ,   // national currency
       CALENDAR_UNIT_HOUR                 = 3 ,   // number of hours
       CALENDAR_UNIT_JOB                  = 4 ,   // number of jobs
       CALENDAR_UNIT_RIG                  = 5 ,   // number of rigs
       CALENDAR_UNIT_USD                  = 6 ,   // US dollar
       CALENDAR_UNIT_PEOPLE               = 7 ,   // number of people
       CALENDAR_UNIT_MORTGAGE             = 8 ,   // number of mortgages
       CALENDAR_UNIT_VOTE                 = 9 ,   // number of votes
       CALENDAR_UNIT_BARREL               = 10 ,   // number of barrels
       CALENDAR_UNIT_CUBICFEET            = 11 ,   // volume in cubic feet
       CALENDAR_UNIT_POSITION             = 12 ,   // number of job positions
       CALENDAR_UNIT_BUILDING             = 13    // number of buildings
      };
      
    enum ENUM_CALENDAR_EVENT_MULTIPLIER
      {
       CALENDAR_MULTIPLIER_NONE           = 0 ,   // no    
       CALENDAR_MULTIPLIER_THOUSANDS      = 1 ,   // thousands
       CALENDAR_MULTIPLIER_MILLIONS       = 2 ,   // millions
       CALENDAR_MULTIPLIER_BILLIONS       = 3 ,   // billions
       CALENDAR_MULTIPLIER_TRILLIONS      = 4 ,   // trillions
      };
      
    enum ENUM_CALENDAR_EVENT_IMPACRT
      {
       CALENDAR_IMPACT_NA                 = 0 ,   // not available
       CALENDAR_IMPACT_POSITIVE           = 1 ,   // positive
       CALENDAR_IMPACT_NEGATIVE           = 2 ,   // negative
      };
    
    enum ENUM_CALENDAR_EVENT_TIMEMODE
      {
       CALENDAR_TIMEMODE_DATETIME         = 0 ,   // the source publishes the exact time
       CALENDAR_TIMEMODE_DATE             = 1 ,   // the event takes the whole day
       CALENDAR_TIMEMODE_NOTIME           = 2 ,   // the source does not publish the event time
       CALENDAR_TIMEMODE_TENTATIVE        = 3 ,   // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
      };

    새로운 오류 코드

    ERR_CALENDAR_MORE_DATA             = 5400 ,   // the array is small for the whole result (values which fit in the array were passed)
    ERR_CALENDAR_TIMEOUT               = 5401 ,   // timed out waiting for a response to the calendar data request
    ERR_CALENDAR_NO_DATA               = 5402 ,   // data not found

  11. MQL5: 눈금 및 막대 기록과 관련된 수정 사항 및 작업 속도 개선 사항.
  12. MQL5: 사용자 지정 거래 기호, CustomTicks*CustomRates* 의 눈금 및 막대 기록 수정 기능과 관련된 수정 사항 및 상당한 작업 속도 향상.
  13. MQL5: 새로운 데이터 변환 기능.

    CharArrayToStruct 는 uchar 배열을 POD 구조에 복사합니다.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray 는 POD 구조를 uchar 배열에 복사합니다.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. ushort, uint 및 ulong 값의 바이트 순서를 변경하기 위한 MathSwap 기능이 추가되었습니다.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5: 시스템 소켓을 통해 원격 호스트에 대한 TCP 연결을 생성하기 위한 네트워크 기능 추가:

    • SocketCreate는 지정된 플래그로 소켓을 만들고 핸들을 반환합니다.
    • SocketClose는 소켓을 닫습니다.
    • SocketConnect는 시간 초과 제어를 사용하여 서버에 연결합니다.
    • SocketIsConnected는 소켓이 현재 연결되어 있는지 확인합니다.
    • SocketIsReadable은 소켓에서 읽을 수 있는 바이트 수를 가져옵니다.
    • SocketIsWritable은 현재 시간에 이 소켓에 데이터 쓰기가 가능한지 확인합니다.
    • SocketTimeouts는 시스템 소켓 개체에 대한 데이터 수신 및 전송 시간 제한을 설정합니다.
    • SocketRead는 소켓에서 데이터를 읽습니다.
    • SocketSend는 소켓에 데이터를 씁니다.
    • SocketTlsHandshake는 TLS 핸드셰이크 프로토콜을 사용하여 지정된 호스트와의 보안 TLS(SSL) 연결을 시작합니다.
    • SocketTlsCertificate는 보안 네트워크 연결에 사용되는 인증서에 관한 정보를 수신합니다.
    • SocketTlsRead는 보안 TLS 연결에서 데이터를 읽습니다.
    • SocketTlsReadAvailable은 보안 TLS 연결에서 사용 가능한 모든 데이터를 읽습니다.
    • SocketTlsSend는 보안 TLS 연결을 사용하여 데이터를 보냅니다.

    네트워크 기능을 사용하여 연결이 설정된 호스트 의 주소는 터미널 설정에서 허용된 주소 목록에 명시적으로 추가되어야 합니다.

    네트워크 기능을 사용하는 작업에 대해 새로운 오류 코드 가 추가되었습니다.

    • ERR_NETSOCKET_INVALIDHANDLE (5270): 유효하지 않은 소켓 핸들이 함수에 전달되었습니다.
    • ERR_NETSOCKET_TOO_MANY_OPENED(5271): 너무 많은 소켓이 열려 있습니다(최대 128).
    • ERR_NETSOCKET_CANNOT_CONNECT (5272): 원격 호스트에 연결하는 동안 오류가 발생했습니다.
    • ERR_NETSOCKET_IO_ERROR (5273): 소켓에서 데이터를 송수신하는 동안 오류가 발생했습니다.
    • ERR_NETSOCKET_HANDSHAKE_FAILED(5274): 보안 연결 설정 오류(TLS 핸드셰이크)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — 보안 연결에 사용된 인증서에 대한 데이터가 없습니다.

  16. MQL5: 문자열 작업을 위한 새 기능 추가:

    StringReserve는 지정된 크기의 문자열 메모리 버퍼를 예약합니다.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength는 지정된 문자열 길이를 문자로 설정합니다.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5: 배열 작업을 위한 새 기능 추가:

    ArrayRemove는 지정된 인덱스로 시작하는 지정된 수의 요소를 배열에서 제거합니다.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert는 지정된 인덱스부터 시작하여 소스 배열에서 지정된 수의 요소를 수신기 배열에 삽입합니다.
     bool   ArrayInsert(
       void &         dst_array[],          // receiver array
       const void &   src_array[],          // source array
       uint           dst_start,            // index in the receiver array where to insert
       uint           src_start= 0 ,           // index in the source array to start copying
       uint           count=WHOLE_ARRAY     // number of inserted elements
       );
    ArrayReverse는 지정된 인덱스로 시작하는 지정된 수의 요소를 배열에서 반전시킵니다.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5: CustomRatesUpdate , CustomRatesReplace , CustomTicksAddCustomTicksReplace 함수에 새로운 "단위 개수" 매개변수가 추가되었습니다. 전달된 배열의 요소 수를 지정할 수 있으며 이러한 기능에 사용할 수 있습니다. WHOLE_ARRAY 값은 기본적으로 매개변수에 사용됩니다. 이는 전체 어레이가 활용됨을 의미합니다.
  19. MQL5: 사용자 정의 기호에 대한 시장 깊이의 상태를 전달하기 위해 CustomBookAdd 기능을 추가했습니다. 이 기능을 사용하면 가격이 브로커의 서버에서 도착한 것처럼 Depth of Market을 방송할 수 있습니다.
     int   CustomBookAdd(
       const string         symbol,             // symbol name
       const MqlBookInfo&  books[]             // an array with the DOM elements descriptions
       uint                 count=WHOLE_ARRAY   // number of elements to be used
       );
  20. MQL5: CustomSymbolCreate 함수 오버로딩이 추가되었습니다. 이를 통해 기존 기호를 기반으로 사용자 지정 거래 기호를 만들 수 있습니다. 생성 후 해당 기능을 사용하여 모든 기호 속성을 편집할 수 있습니다.
     bool   CustomSymbolCreate (
       const string         symbol_name,       // custom symbol name
       const string         symbol_path= "" ,    // name of the group in which the symbol will be created
       const string         symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
       );
    사용자 정의 기호의 속성을 복사해야 하는 기호의 이름은 "symbol_origin" 매개변수에 지정됩니다.

  21. 날짜/시간이 포함된 문자열을 날짜/시간 값으로 변환하는 StringToTime 함수가 업데이트되었습니다. 이제 다음 날짜 형식을 지원합니다.

    • yyyy.mm.dd [hh:mi]
    • yyyy.mm.dd [hh:mi:ss]
    • yyyymmdd [hh:mi:ss]
    • yyyymmdd [hhmiss]
    • yyyy/mm/dd [hh:mi:ss]
    • yyyy-mm-dd [hh:mi:ss]

  22. MQL5: ENUM_TERMINAL_INFO_INTEGER 열거의 새 TERMINAL_VPS 속성. 터미널이 MetaTrader 가상 호스팅 서버(MetaTrader VPS)에서 실행되고 있음을 보여줍니다. 응용 프로그램이 호스팅 서버에서 실행 중인 경우 가상 서버에는 그래픽 사용자 인터페이스가 없기 때문에 모든 시각적 기능을 비활성화할 수 있습니다.
  23. MQL5: ENUM_SYMBOL_INFO_INTEGER 열거형의 새 SYMBOL_EXIST 속성은 이 이름 아래의 기호가 존재함을 의미합니다.
  24. MQL5: 템플릿 함수 사전 선언을 사용할 때 입력이 수정되었습니다.
  25. MQL5: 거래 계정을 변경할 때 표시기의 재초기화를 추가했습니다.
  26. MQL5: 최적화된 StringSplit 기능.
  27. MQL5: 표준 라이브러리 작업의 오류를 수정했습니다.
  28. 테스터: TesterStop 기능 추가 - 테스트 에이전트에서 Expert Advisor의 일상적인 조기 종료. 이제 지정된 손실 거래 수, 사전 설정된 하락 수준 또는 기타 기준에 도달한 후 테스트를 강제로 중지할 수 있습니다.

    이 기능을 사용하여 완료된 테스트는 성공한 것으로 간주됩니다. 함수 호출 후 테스트 중에 얻은 거래 내역과 모든 거래 통계가 터미널로 전달됩니다.

  29. 테스터: 실제 틱 모드에서 MQL5 Cloud Network 를 통해 Expert Advisors를 테스트하고 최적화하는 기능을 비활성화했습니다. 이 모드는 로컬 에이전트 및 로컬 네트워크 팜에서만 사용할 수 있습니다.
  30. 테스터: 시각적 테스트 중 표시기 작업이 개선되었습니다. 이제 최대 시각화 속도에서도 가격 차트와 표시선이 동기식으로 그려집니다.
  31. 테스터: 최적화되고 상당히 가속화된 테스트 및 최적화.
  32. 테스터: 기록 데이터의 표시기 디버깅을 수정했습니다. 이제 OnInit 및 OnDeinit 표시기 기능을 적절하게 디버깅할 수 있습니다.
  33. 테스터: 다중 통화 Expert Advisors를 테스트할 때 기록 데이터에 대한 더 빠른 액세스를 구현했습니다.
  34. 테스터: 기록 데이터에서 디버깅하는 동안 시각적 테스터가 가끔 멈추는 문제를 수정했습니다.
  35. 테스터: 에이전트가 작업 패키지를 처리할 때 최적화 패스의 더 빠른 시작을 구현했습니다.
  36. 테스터: 테스팅 에이전트에 작업 패키지를 배포하는 정책이 변경되었습니다. 패키지 크기가 증가하여 네트워크 작업에 대한 리소스 소비가 크게 감소했습니다.
  37. 테스터: 로컬, 네트워크 및 클라우드 에이전트를 사용할 수 있는 옵션의 동작이 변경되었습니다. 이제 옵션을 끄면 에이전트가 수신된 작업의 처리를 완료하고 더 이상 새 작업이 제공되지 않습니다. 이전 버전에서 동작은 에이전트 작업을 즉시 중지하는 "사용 안 함" 명령과 유사했습니다.




  38. MetaEditor: 디버거에서 ANSI가 아닌 문자에 대한 지원을 추가했습니다. 이제 변수 이름을 키릴 문자로 지정해도 표현식이 제대로 표시됩니다.
  39. MetaEditor: 높은 DPI 화면에서 검색 결과의 표시를 수정했습니다.
  40. 크로아티아어로 사용자 인터페이스 번역을 추가했습니다.
  41. 문서가 업데이트되었습니다.
업데이트는 LiveUpdate 시스템을 통해 제공됩니다.

 

안녕하세요.

이 2005를 설치하기 전에 내 빌드 1940을 제거 해야 합니까?
제거하지 않고 시도했는데 설치 후 이전과 동일한 1940입니다.
그리고 작년부터 업데이트가 안되는데 이유가 있나요?
모두 제거하고 다시 시도해야 합니까?


감사해요...

 
초보자에게 유용