MetaTrader 5 / 라이브러리

MT5에서 텔레그램으로 - 전문 트레이딩 알림 라이브러리 - MetaTrader 5용 라이브러리

53
(6)

메타트레이더 5용 텔레그램 봇 통합 전문 라이브러리. 거래 신호, 스크린샷, 보고서, 실시간 알림을 텔레그램 채널 및 그룹에 전송할 수 있는 완벽한 솔루션입니다.

주요 기능

  • 📨 실시간 거래 알림 - 포지션 개설/청산/수정 시 즉시 알림
  • 📸 차트 스크린샷 - 주석이 있는 차트를 자동으로 캡처합니다.
  • 📊 계좌 보고서 - 일일, 주간 및 월간 성과 보고서
  • ⚠️ 위험 관리 알림 - 드로다운, 마진 수준 및 스톱 아웃 알림
  • 🔄 메시지 대기 시스템 - 재시도 메커니즘을 통한 안정적인 전달
  • 👥 멀티 채널 지원 - 여러 텔레그램 채팅/채널로 전송 가능
  • 📝 템플릿 시스템 - 사용자 지정 가능한 메시지 템플릿
  • 🎯 스마트 속도 제한 - API 차단 방지

요구사항

  • 메타트레이더 5 버전 2375 이상
  • 텔레그램 봇 토큰 (@BotFather에서 받음)
  • 채팅 또는 채널 ID
  • 인터넷 연결

설치

1단계: 텔레그램 봇 생성

  1. 텔레그램을 열고 @BotFather를 찾습니다.
  2. 명령을 /newbot으로 전송합니다.
  3. 봇의 이름을 선택합니다.
  4. 사용자명을 선택합니다 ('bot'으로 끝나야 합니다).
  5. 봇파더에서 제공한 토큰을 저장합니다.

2단계: 채팅 ID 얻기

  1. 그룹/채널에 봇을 추가하거나 비공개 대화방을 시작합니다.
  2. 봇에게 메시지 보내기
  3. https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates로 이동합니다.
  4. 답장에서 채팅 ID 찾기

3단계: MT5 설정

  1. MT5 → 서비스 → 설정 → 전문가 조언을 엽니다.
  2. "다음 URL에 대한 웹 요청 허용" 상자를 선택합니다.
  3. URL 추가: https://api.telegram.org
  4. 확인을 클릭합니다.

4단계: 파일 설치

  1. TelegramBot.mqh를 MQL5/Include/ 폴더에 복사합니다.
  2. TelegramBot_Example.mq5를 MQL5/Experts/ 폴더에 복사합니다.
  3. 두 파일 모두 컴파일하기

빠른 시작

#include <TelegramBot.mqh> CTelegramBot bot; int OnInit() {     // 봇 초기화하기     if(!bot.Initialize("YOUR_TOKEN"., "YOUR_CHAT_ID"))     {         Print("봇을 초기화하지 못했습니다.");         return INIT_FAILED;     }          // 테스트 메시지 보내기     bot.SendMessage("봇이 성공적으로 연결되었습니다!");          // 그래프 스크린샷 보내기     bot.SendChartScreenshot("현재 시장 상황.");          return INIT_SUCCEEDED; }

API 참조

기본 메시지

bool SendMessage(string text); bool SendHTMLMessage(string text); bool SendMarkdownMessage(string text); bool SendMessageToAll(string text);

거래 신호

bool SendTradeSignal(ENUM_SIGNAL_TYPE type, string symbol, double price); bool SendPositionOpened(ulong ticket, string symbol, ENUM_POSITION_TYPE type, double volume, double price); bool SendPositionClosed(ulong ticket, string symbol, double profit, double commission, double swap);

미디어 파일

bool SendPhoto(string file_path, string caption); bool SendDocument(string file_path, string caption); bool SendChartScreenshot(); bool SendChartScreenshot(string caption);

보고서

bool SendAccountStatus(); bool SendDailyReport(); bool SendWeeklyReport(); bool SendMonthlyReport();

리스크 관리

bool SendRiskAlert(double drawdown_percent); bool SendMarginWarning(double margin_level); bool SendStopOutWarning();

전문가 어드바이저 예시

이 패키지에는 모든 기능을 갖춘 Expert Advisor 데모 예시가 포함되어 있습니다:

  • 알림을 통한 포지션 모니터링
  • 트레이딩 이벤트 시 자동 스크린샷
  • 주기적인 계좌 상태 업데이트
  • 위험 관리 알림
  • 일일 보고서
  • 데모 거래 신호

메시지 형식

HTML 형식(권장)

string message = "<b> Жирный текст</b>\n"; message += "<i> Курсив</i>\n"; message += "<code> Моноширинный код</code>\n"; message += "<a href='http://example.com'> Ссылка</a>"; bot.SendHTMLMessage(message);

마크다운 형식

string message = "굵은 텍스트{\n}"; message += "이탤릭체."; message += "단일 간격 코드."; message += "[링크](http://example.com)"; bot.SendMarkdownMessage(message);

성능

  • 메시지 속도: 분당 최대 30개 메시지
  • 파일 크기 제한: 파일당 50MB
  • 메시지 길이 4096자
  • 서명 길이: 1024자
  • 대기열 크기: 100개 메시지
  • 평균 응답 시간: 50-200ms

오류 처리

라이브러리에는 복잡한 오류 처리 기능이 포함되어 있습니다:

  • 연결 확인
  • 오버런 제한 보호
  • 실패 시 자동 재시도
  • 실패 메시지에 대한 대기열 시스템
  • 자세한 오류 로깅

지원

  • 문서: 전체 API 문서가 소스 코드에 포함되어 있습니다.
  • EA 예제: 모든 기능이 포함된 작업 예제
  • 디버그 모드: 문제 해결을 위한 디버깅 기능 내장

버전 히스토리

버전 1.0.0 (2024)

  • 첫 번째 릴리즈
  • 텔레그램 봇 API 완전 통합
  • 여러 채널 지원
  • 대기열 시스템
  • 템플릿 엔진
  • 위험 관리 알림

라이선스

이 라이브러리는 메타트레이더 5에서 사용할 수 있도록 "있는 그대로" 제공됩니다. 개인 및 상업적 용도로는 무료입니다.

저자

외환 트레이딩 청사진
(스테판 시닉)

면책 조항

이 소프트웨어는 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. 트레이딩은 상당한 손실 위험을 수반하며 모든 투자자에게 적합하지 않습니다. 과거 성과는 미래 결과를 보장하는 지표가 아닙니다.


이 라이브러리가 유용하다고 생각되면 MQL5 코드베이스에서 평가해 주세요!

자세한 설정 지침

텔레그램에서 봇 만들기

  1. 봇파더 찾기

    • 텔레그램 열기
    • 검색에 @BotFather를 입력합니다.
    • 시작을 누릅니다.
  2. 새 봇 만들기

    • 명령을 /newbot으로 전송합니다.
    • 봇의 이름을 입력합니다 (예: "내 트레이딩 봇").
    • 봇의 사용자 아이디를 입력합니다(예: my_trading_bot).
    • 양식의 토큰을 저장합니다: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
  3. 봇 구성

    • setprivacy를 전송하고 비활성화(그룹 작업용)를 선택합니다.
    • setjoingroups를 보내고 활성화를 선택합니다(그룹에 추가하려면).

채팅 ID 받기

비공개 메시지의 경우:

  1. 봇과 대화 시작하기
  2. 아무 메시지나 보내기
  3. 브라우저에서 열기: https://api.telegram.org/bot<TOKEN>/getUpdates
  4. "chat":{"id":123456789} - 내 채팅 ID를 찾습니다.

그룹의 경우:

  1. 그룹에 봇 추가하기
  2. 그룹에서 메시지 보내기
  3. 브라우저에서 열기: https://api.telegram.org/bot<TOKEN>/getUpdates
  4. "chat":{"id":-123456789}은 그룹의 경우 음수입니다.

채널의 경우

  1. 봇을 채널 관리자로 추가하기
  2. 채널에 메시지를 보냅니다.
  3. 또는 채널의 @사용자 아이디를 채팅 ID로 사용합니다.

자주 발생하는 문제 해결

웹 요청 오류:

해결 방법: 1. 도구 → 설정 → 어드바이저 2. 다음 URL에 대해 WebRequest 허용 3. 추가: https://api.telegram.org 4. MT5 재시작

봇이 응답하지 않습니다:

확인: 1. 올바른 토큰 2. 채팅 ID가 올바른가 3. 인터넷 연결 4. WebRequest 설정

메시지가 전달되지 않습니다:

가능한 원인: 1. API 한도 초과(분당 30개 메시지) 2. 메시지의 HTML 형식이 잘못됨 3. 메시지가 너무 깁니다(4096자 이상).

사용 예시

구매 신호 보내기

bot.SendTradeSignal(SIGNAL_BUY, "EURUSD", 1.1850, 1.1800, 1.1900);

주석이 포함된 스크린샷 보내기

string caption = "<b> Точка входа</b>\n"; caption += "Пара: EURUSD\n"; caption += "Тип: BUY\n"; caption += "Цена: 1.1850"; bot.SendChartScreenshot(caption);

계정 상태 보내기

bot.SendAccountStatus(); // 잔액, 편일예탁잔고, 마진 등을 자동으로 전송합니다.

일일 보고서 설정하기

// OnTimer() 어드바이저에서 if(TimeHour(TimeCurrent()) == 23 && TimeMinute(TimeCurrent()) == 0) {     bot.SendDailyReport(); }

드로다운 알림

double drawdown = CalculateDrawdown(); // 계산 함수 if(drawdown > 20.0) // 드로다운이 20% 이상입니다. {     bot.SendRiskAlert(drawdown); }

메시지 구조

포지션 개설

[POSITION OPENED] ↑ ================ Ticket: #12345678 Symbol: EURUSD Type: BUY Volume: 0.10 Price: 1.18500 Time: 2024.01.15 10:30 ================

포지션 청산

[POSITION CLOSED] ================ Ticket: #12345678 Symbol: EURUSD Profit: +125.50 USD Commission: -2.00 Swap: -0.50 Total: +123.00 USD Time: 2024.01.15 14:45 ================

일일 보고서

[DAILY REPORT] ================ Date: 2024.01.15 ACCOUNT SUMMARY ---------------- Balance: 10,125.50 USD Equity: 10,250.00 USD Floating P/L: +124.50 USD TRADING ACTIVITY ---------------- Trades Today: 5 Today's Result: +250.00 USD Open Positions: 2 BOT STATISTICS ---------------- Messages Sent: 45 Signals Sent: 8 Success Rate: 98.5% ================

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