MetaTrader 5 / 라이브러리
MT5에서 텔레그램으로 - 전문 트레이딩 알림 라이브러리 - MetaTrader 5용 라이브러리
53
메타트레이더 5용 텔레그램 봇 통합 전문 라이브러리. 거래 신호, 스크린샷, 보고서, 실시간 알림을 텔레그램 채널 및 그룹에 전송할 수 있는 완벽한 솔루션입니다.
주요 기능
- 📨 실시간 거래 알림 - 포지션 개설/청산/수정 시 즉시 알림
- 📸 차트 스크린샷 - 주석이 있는 차트를 자동으로 캡처합니다.
- 📊 계좌 보고서 - 일일, 주간 및 월간 성과 보고서
- ⚠️ 위험 관리 알림 - 드로다운, 마진 수준 및 스톱 아웃 알림
- 🔄 메시지 대기 시스템 - 재시도 메커니즘을 통한 안정적인 전달
- 👥 멀티 채널 지원 - 여러 텔레그램 채팅/채널로 전송 가능
- 📝 템플릿 시스템 - 사용자 지정 가능한 메시지 템플릿
- 🎯 스마트 속도 제한 - API 차단 방지
요구사항
- 메타트레이더 5 버전 2375 이상
- 텔레그램 봇 토큰 (@BotFather에서 받음)
- 채팅 또는 채널 ID
- 인터넷 연결
설치
1단계: 텔레그램 봇 생성
- 텔레그램을 열고 @BotFather를 찾습니다.
- 명령을 /newbot으로 전송합니다.
- 봇의 이름을 선택합니다.
- 사용자명을 선택합니다 ('bot'으로 끝나야 합니다).
- 봇파더에서 제공한 토큰을 저장합니다.
2단계: 채팅 ID 얻기
- 그룹/채널에 봇을 추가하거나 비공개 대화방을 시작합니다.
- 봇에게 메시지 보내기
- https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates로 이동합니다.
- 답장에서 채팅 ID 찾기
3단계: MT5 설정
- MT5 → 서비스 → 설정 → 전문가 조언을 엽니다.
- "다음 URL에 대한 웹 요청 허용" 상자를 선택합니다.
- URL 추가: https://api.telegram.org
- 확인을 클릭합니다.
4단계: 파일 설치
- TelegramBot.mqh를 MQL5/Include/ 폴더에 복사합니다.
- TelegramBot_Example.mq5를 MQL5/Experts/ 폴더에 복사합니다.
- 두 파일 모두 컴파일하기
빠른 시작
#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 코드베이스에서 평가해 주세요!
자세한 설정 지침
텔레그램에서 봇 만들기
-
봇파더 찾기
- 텔레그램 열기
- 검색에 @BotFather를 입력합니다.
- 시작을 누릅니다.
-
새 봇 만들기
- 명령을 /newbot으로 전송합니다.
- 봇의 이름을 입력합니다 (예: "내 트레이딩 봇").
- 봇의 사용자 아이디를 입력합니다(예: my_trading_bot).
- 양식의 토큰을 저장합니다: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
-
봇 구성
- setprivacy를 전송하고 비활성화(그룹 작업용)를 선택합니다.
- setjoingroups를 보내고 활성화를 선택합니다(그룹에 추가하려면).
채팅 ID 받기
비공개 메시지의 경우:
- 봇과 대화 시작하기
- 아무 메시지나 보내기
- 브라우저에서 열기: https://api.telegram.org/bot<TOKEN>/getUpdates
- "chat":{"id":123456789} - 내 채팅 ID를 찾습니다.
그룹의 경우:
- 그룹에 봇 추가하기
- 그룹에서 메시지 보내기
- 브라우저에서 열기: https://api.telegram.org/bot<TOKEN>/getUpdates
- "chat":{"id":-123456789}은 그룹의 경우 음수입니다.
채널의 경우
- 봇을 채널 관리자로 추가하기
- 채널에 메시지를 보냅니다.
- 또는 채널의 @사용자 아이디를 채팅 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