당사 팬 페이지에 가입하십시오
- 조회수:
- 55
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
Logify는 EA 및 지표의 디버깅, 추적, 모니터링을 간소화하도록 설계된 MQL용 로깅 라이브러리입니다. 로그 수준, 유연한 형식 및 여러 핸들러를 지원하여 차트나 터미널에서 직접 구조화되고 사용자 지정 가능하며 정리된 로그를 제공합니다. MQL 프로젝트에 쉽게 통합할 수 있는 가볍고 우아한 솔루션입니다.
📦 특징
- 여러 로그 수준: 디버그, 정보, 경고, 오류, 치명적
- 그래프, 터미널, 파일 또는 데이터베이스에 직접 로그 표시
- 사용자 정의 가능한 로그 형식 및 레이아웃
- 여러 핸들러가 있는 모듈식 아키텍처
- 가볍고 간편한 통합 및 사용
🚀 설치
- Logify 폴더를 다음 주소로 복사하세요:
MQL5/Include/
- EA, 인디케이터 또는 스크립트에 Logify 포함:
#include <Logify/Logify.mqh> - Git을 사용하여 설치할 수 있으며, 리포지토리에 액세스하여 단계를 따르기만 하면 됩니다.
🔧 빠른 시작 예제
기본 설정을 사용한 간단한 예제:
//+------------------------------------------------------------------+ //| 가져오기| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| 전문가 초기화 기능| //+------------------------------------------------------------------+ int OnInit() { //--- 로그 예시 Logify.Debug("Initialization started"); Logify.Info("Account balance is OK"); Logify.Alert("Take profit reached"); Logify.Error("Failed to send order", "Order", "Reason: No money"); Logify.Fatal("Critical error: Invalid input parameters"); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+
사용자 지정 핸들러 설정이 포함된 고급 예제. 이 예에서는 로그 기록을 파일과 그래프 댓글에 저장합니다. 각각의 설정을 사용자 지정합니다.
//+------------------------------------------------------------------+ //| 가져오기| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| 전문가 초기화 기능| //+------------------------------------------------------------------+ int OnInit() { //--- 주석 처리기 구성 MqlLogifyHandleCommentConfig config_comment; config_comment.size = 10; config_comment.frame_style = LOG_FRAME_STYLE_SINGLE; config_comment.direction = LOG_DIRECTION_UP; config_comment.title = "My Expert"; //--- 댓글 핸들러 생성 및 구성 CLogifyHandlerComment *handler_comment = new CLogifyHandlerComment(); handler_comment.SetConfig(config_comment); handler_comment.SetLevel(LOG_LEVEL_DEBUG); handler_comment.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg}","hh:mm:ss")); //--- 파일 핸들러 구성 MqlLogifyHandleFileConfig file_config; file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8); //--- 파일 핸들러 생성 및 구성 CLogifyHandlerFile *handler_file = new CLogifyHandlerFile(); handler_file.SetConfig(file_config); handler_file.SetLevel(LOG_LEVEL_DEBUG); handler_file.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg} ({filename} | {origin} | {function})","hh:mm:ss")); //--- 핸들러 첨부 Logify.AddHandler(handler_comment); Logify.AddHandler(handler_file); //--- 로그 예시 Logify.Debug("Initialization started"); Logify.Info("Account balance is OK"); Logify.Alert("Take profit reached"); Logify.Error("Failed to send order", "Order", "Reason: No money"); Logify.Fatal("Critical error: Invalid input parameters"); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+
각 설정을 이해하려면 라이브러리 개발의 각 단계를 설명하는 아래 글을 읽어보시기 바랍니다:
- 로그 레코드 마스터하기(1부): MQL5의 기본 개념 및 첫 번째 단계
- 로그 레코드 마스터하기(2부): 로그 포맷 지정하기
- 로그 레코드 마스터하기(3부): 로그 저장을 위한 핸들러 살펴보기
- 로그 레코드 마스터하기(4부) 파일에 로그 저장하기
- 로그 레코드 마스터하기(5부): 캐시 및 로테이션으로 핸들러 최적화하기
- 로그 레코드 마스터하기(6부): 데이터베이스에 로그 저장하기
- 로그 레코드 마스터하기(7부): 차트에 로그를 표시하는 방법
- 로그 레코드 마스터하기(8부) 스스로 번역되는 오류 레코드
- 로그 레코드 마스터하기(9부): 빌더 패턴 구현하기 및 기본 구성 추가하기
- 로그 레코드 마스터하기(10부): 억제를 구현하여 로그 재생 방지하기
✔️ 로그 수준
| Level | 설명 |
|---|---|
| DEBUG | 디버그에 대한 자세한 정보 |
| INFO | 일반 정보 |
| ALERT | 경고 또는 중요한 이벤트 |
| ERROR | 주의가 필요한 오류 |
| 치명적 | 치명적인 오류, 실행 중지 |
🖥️ 핸들러 포함
각 핸들러는 로그가 표시되거나 저장될 위치를 정의합니다.
| 핸들러 | 설명 |
|---|---|
| Comment | 그래프에 직접 로그를 표시합니다(댓글). |
| 콘솔 | 메타트레이더 터미널에서 로그 표시 |
| 파일 | .txt 또는 .log 파일에 로그 저장 |
| 데이터베이스 | 로그를 로컬 SQLite 데이터베이스에 저장 |
예를 들어 그래픽 + 파일 + 콘솔과 같이 하나를 사용하거나 여러 핸들러를 동시에 결합할 수 있습니다.
🛠️ 로그 형식
포맷 패턴의 예시입니다:
"{date_time} [{levelname}]: {msg}" 사용 가능한 토큰:
- {레벨 이름}: 레벨 이름(디버그, 정보, 오류 등)
- {msg}: 메인 메시지
- {args}: 추가 인수 또는 세부 정보
- {타임스탬프}: 타임스탬프(초)(유닉스 시간)
- {날짜_시간}: 형식화된 날짜 및 시간(hh:mm:ss 등)
- {레벨}: 레벨에 대한 숫자 코드(0 = DEBUG, 1 = INFO...)
- {origin}: 로그 호출에 정의된 원본 또는 컨텍스트
- {파일 이름}: 소스 파일 이름(사용 가능한 경우)
- {함수}: 호출된 함수의 이름
- {line}: 로그가 발생한 코드의 줄 번호
⚖️ 라이선스
MIT 라이선스 - 개인 및 상업용 프로젝트에 무료로 사용할 수 있습니다.
👨💻 저자
MQL 개발을 보다 전문적이고 체계적이며 효율적으로 만드는 데 중점을 두고 joaopedrodev가 개발했습니다.
MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/59821
양수 볼륨 지수
양수 거래량 지수(PVI)는 거래량 증가를 유가증권의 가격 변동과 연관시킵니다.
히스토리로더
쿼리 결과 처리와 함께 모든 기록 데이터에 대한 액세스를 구성하는 다중 통화 전문가 어드바이저 기능 모듈입니다.
Rsi Engulfing Bar V2
Rsi 표시기
행렬 연산용 라이브러리
행렬 작업을 위한 라이브러리: 행렬 생성 및 행렬을 사용한 기본 연산(덧셈, 뺄셈, 곱셈, 반전)을 할 수 있습니다.