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

정규식 작업을 위한 MQL4의 RegularExpressions - MetaTrader 4용 라이브러리

게시자:
MetaQuotes
조회수:
173
평가:
(30)
게시됨:
2022.01.10 11:43
\MQL4\Experts\RegExpressions Demo\
Tests.mq4 (139.5 KB) 조회
\MQL4\Include\Internal\
Array.mqh (22.36 KB) 조회
Wrappers.mqh (17.96 KB) 조회
\MQL4\Include\Internal\Generic\
Collection.mqh (12.54 KB) 조회
Dictionary.mqh (42.58 KB) 조회
IComparer.mqh (6.62 KB) 조회
IEnumerator.mqh (10.39 KB) 조회
IList.mqh (5.7 KB) 조회
LinkedList.mqh (28.29 KB) 조회
List.mqh (38.77 KB) 조회
\MQL4\Include\Internal\TimeSpan\
TimeSpan.mqh (31.7 KB) 조회
\MQL4\Include\RegularExpressions\
Regex.mqh (57.05 KB) 조회
RegexCode.mqh (22.25 KB) 조회
RegexFCD.mqh (31.25 KB) 조회
RegexMatch.mqh (22.94 KB) 조회
RegexNode.mqh (32.45 KB) 조회
RegexParser.mqh (93.16 KB) 조회
RegexTree.mqh (8.47 KB) 조회
RegexWriter.mqh (24.26 KB) 조회
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

실제 저자:

Microsoft Corporation. 소스 코드는 .Net Framework 4.6.1에서 가져온 것입니다.. 

참고:라이브러리는 MetaTrader 4 빌드 1384 이상에서 작동합니다.

압축을 터미널_데이터_폴더에 풉니다.
라이브러리 코드의 위치:minal_data_folder>\MQL4\Include\RegularExpressions\
샘플 테스트 스크립트는 <terminal_data_folder>\MQL4\Scripts\RegularExpressionsExamples\ 에서 찾을수 있습니다.

다음은 .Net Framework 4.6.1의 RegularExpressions를 번역한 것입니다.

라이브러리로 작업하려면 "\MQL4\Include\RegularExpressions\" 디렉토리의 Regex.mqh 파일을 코드에 포함하십시오.

라이브러리와 함께 테스트 케이스 역할을 하는 몇 가지 예가 제공됩니다. 모든 샘플은 Microsoft Corporation의 공식 사이트에서 가져옵니다. 샘플은 C#의 정규식과의 주요 차이점과 MQL4에서의 사용 기능을 생생하게 보여줍니다.

다음은 포트된 RegularExpressions MQL4 라이브러리 패키지에 대한 자세한 정보입니다.

패키지
설명
CharUnicodeInfo.mqh
모든 심볼(비라틴 문자 포함)에 대한 유니코드 범주를 결정하기 위해 보관된 txt 파일.
RegexCapture.mqh
단일의 성공적인 하위 표현식의 캡처 결과를 나타냅니다.
RegexCaptureCollection.mqh
단일 캡처링 그룹에서 만든 캡처 세트를 나타냅니다.
RegexGroup.mqh
단일 캡처링 그룹의 결과를 나타냅니다.
RegexGroupCollections.mqh그룹 객체의 컬렉션을 나타냅니다.
RegexMatch.mqh단일 정규식 일치의 결과를 나타냅니다.
RegexMatchCollection.mqh정규식 패턴을 입력 문자열에 반복적으로 적용하여 찾아낸 일치한 컬렉션을 나타냅니다.
Regex.mqh변경할 수 없는 정규식을 나타냅니다.
RegexOptions.mqh 정규식 옵션을 설정하는 데 사용할 열거형 값을 제공합니다.

RegexOptions.mqh 파일의 정규식 매개변수:

패러미터
설명
None
옵션이 세팅 되지 않았음을 지정함
IgnoreCase
대소문자를 구분하지 않는지를 지정합니다.
Multiline여러 줄 모드를 지정합니다.
ExplicitCapture이름 없는 그룹을 캡처하지 마십시오. 유효한 캡처가 형식의 명시적으로 명명되거나 번호가 매겨진 그룹임을 지정합니다.(?<name>subexpression).
Singleline한 줄 모드를 지정합니다.
IgnorePatternWhitespace패턴에서 이스케이프 처리되지 않은 공백을 제거하고 #으로 표시된 주석을 활성화합니다.
RightToLeft왼쪽에서 오른쪽이 아니라 오른쪽에서 왼쪽으로 검색하도록 지정합니다.
Debug디버그 모드에서 프로그램동작 하도록 지정합니다.
ECMAScript표현식에 대해 ECMAScript 호환 동작을 활성화합니다. 이 값은 다음과 함께 사용할 수 있습니다. IgnoreCaseMultiline 값.


MQL4에서 RegularExpressions 사용하기:

  1. .Net 버전에서 이 라이브러리는 정규식의 저장소(static cache)를 구현합니다. 암시적으로 생성된 모든 정규식(Regex 클래스의 인스턴스)은 해당 저장소에 기록됩니다. 이러한 방식은 패턴이 기존 패턴과 일치하는 경우 정규식을 다시 빌드할 필요가 없으므로 스크립트 작업의 속도를 높입니다. 저장소의 디폴트 사이즈는 15입니다. Regex::CacheSize()메서드는 컴파일된 정규식의 현재의 정적 캐시에 있는 최대 항목 수를 반환하거나 설정합니다.
  2. MQL4에서 정규식으로 작업하는 두 번째 기능은 첫 번째 기능에서 바로 이어집니다. 그리고 위의 저장소는 반드시 비워져야 합니다. 그렇게 하려면 Regex::ClearCache() 정적 함수를 호출해야 합니다. 정규식 작업이 완료된 후에만 이 함수를 호출하는 것이 좋습니다. 그렇지 않으면 필요한 포인터가 삭제될 위험이 있습니다.
  3. .Net과 달리 MQL4는 foreach 루프이므로 열거 처리가 다릅니다. 예:
    //--- C#에서 코드
    Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b", RegexOptions.IgnoreCase);   
    string text = "The the quick brown fox  fox jumped over the lazy dog dog.";
    MatchCollection matches = rx.Matches(text);
    foreach (Match match in matches) 
      {
       //--- 핸들링
      }
    
    //--- MQL4에서 코드
    Regex *rx = new Regex("\\b(?<word>\\w+)\\s+(\\k<word>)\\b", RegexOptions::IgnoreCase);        
    string text = "The the quick brown fox  fox jumped over the lazy dog dog.";
    MatchCollection *matches = rx.Matches(text);
    IEnumerator<Match*> *en = matches.GetEnumerator();
    while(en.MoveNext()) 
      {
       Match *match = en.Current();
       //--- 핸들링
      }
    delete rx;
    delete matches;
    delete en;
    Regex::ClearCache();
    
  4. 모든 서식 표시를 무시하기 위해서는 위의 예에서 볼 수 있듯이 C# 구문을 사용하여 문자열 앞에 '@' 기호를 넣을 수 있습니다 MQL4에서는 이 접근 방식이 제공되지 않으므로 정규식 패턴의 모든 제어 문자를 명시적으로 정의해야 합니다.

MQL4용 정규식 및 그 기능에 대해 자세히 알아보려면 제공된 Tests.mqh Expert를 사용해 보세요. 라이브러리의 모든 주요 기능을 다루는 다양한 정규식 사용 예를 구현합니다.

Tr



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

Fuzzy - fuzzy 모델 개발을 위한 라이브러리 Fuzzy - fuzzy 모델 개발을 위한 라이브러리

fuzzy 모델 개발을 위한 라이브러리인 FuzzyNet library C#으로 작성되었습니다. MQL4로 변환하는 동안 Mamdani 유형 시스템을 위한 8개의 멤버십 기능과 4개의 역퍼지화 방법이 라이브러리에 추가되었습니다.

Didi Index (Cleaned/Reversed) Didi Index (Cleaned/Reversed)

Slow Line of the original Didi Index

Quantile Price Analysis Quantile Price Analysis

Quantile Price Analysis by Jas Wu, Calculations are below.

Force index volatility bands Force index volatility bands

Force index with Volume/Volatility bands