MT5からTelegramへ - プロフェッショナル取引通知ライブラリ - MetaTrader 5のためのライブラリ
MetaTrader 5用Telegramボット統合のプロフェッショナルライブラリ。取引シグナル、スクリーンショット、レポート、リアルタイム通知をTelegramチャンネルやグループに送信するための完全なソリューションです。
主な機能
- 📨リアルタイム取引通知- ポジションの新規/決済/変更を即座にアラートします。
- チャートスクリーンショット- 注釈付きのチャートを自動的にキャプチャ
- 📊口座レポート- 日次、週次、月次パフォーマンスレポート
- ⚠️リスク管理アラート- ドローダウン、マージンレベル、ストップアウトアラート
- 🔄メッセージキューシステム- リトライメカニズムによる信頼性の高い配信
- 📝マルチチャンネル・サポート- 複数のTelegramチャット/チャンネルに送信
- 📝テンプレートシステム- カスタマイズ可能なメッセージテンプレート
- Ἷスマートレート制限- APIブロッキングの防止
必要条件
- MetaTrader 5 バージョン2375以上
- Telegram ボットトークン(@BotFather から取得)
- チャットまたはチャンネルID
- インターネット接続
インストール
ステップ1:テレグラムボットを作成する
- Telegramを開き、@BotFatherを見つける。
- newbotコマンドを送信
- ボットの名前を選択
- ユーザー名を選択(末尾は 'bot' でなければならない)
- BotFather が提供するトークンを保存する
ステップ 2: チャット ID の取得
- ボットをグループ/チャンネルに追加するか、プライベートチャットルームを開始します。
- ボットにメッセージを送る
- https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates にアクセスしてください。
- 返信でチャットIDを見つける
ステップ3:MT5をセットアップする
- MT5を開く → サービス → 設定 → Expert Advisors
- 以下のURLのWebRequestを許可する」にチェックを入れる
- URLを追加: https://api.telegram.org
- OKをクリックします。
ステップ 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 += "[Link](http://example.com)"; bot.SendMarkdownMessage(message);
パフォーマンス
- メッセージ速度: 1分間に最大30メッセージ
- ファイルサイズ制限: 1ファイルあたり50MB
- メッセージの長さ 4096文字
- 署名長: 1024文字
- キューサイズ: 100メッセージ
- 平均応答時間: 50-200ms
エラー処理
ライブラリには複雑なエラー処理が含まれています:
- 接続チェック
- リミットオーバー保護
- 失敗時の自動再試行
- 失敗メッセージのキューイングシステム
- 詳細なエラーログ
サポート
- ドキュメント: 完全なAPIドキュメントがソースコードに含まれています。
- EAサンプル: すべての機能を備えた動作例
- デバッグモード: トラブルシューティングのためのデバッグ機能内蔵
バージョン履歴
バージョン 1.0.0 (2024)
- 最初のリリース
- Telegram Bot APIの完全統合
- 複数チャンネルのサポート
- キューイングシステム
- テンプレートエンジン
- リスク管理アラート
ライセンス
このライブラリはMetaTrader 5で使用するために「現状のまま」提供されます。個人および商用利用は無料です。
作者
Forex Trading Blueprint
(Stepan Sinic)
免責事項
本ソフトウェアは、いかなる保証もなく「現状のまま」提供されます。取引には多額の損失リスクが伴い、すべての投資家に適しているわけではありません。過去の実績は将来の結果を示すものではありません。
このライブラリが有用であるとお感じになりましたら、MQL5 CodeBaseで評価してください!
詳細なセットアップ手順
テレグラムでボットを作成する
-
BotFatherを見つける
- テレグラムを開く
- 検索に @BotFather と入力
- STARTを押す
-
新しいボットを作成する
- コマンド /newbot を送信
- ボットの名前を入力 (例: "My Trading Bot")
- ボットのユーザー名を入力 (例: my_trading_bot)
- トークンを保存します:123456789:ABCdefGHIjklMNOpqrsTUVwxyz
-
ボットを設定する
- setprivacyを送信し、DISABLEを選択します(グループ内で作業する場合)。
- setjoingroupsを送信し、ENABLEを選択します(グループに追加する)。
チャットIDの取得
プライベートメッセージの場合
- ボットとの対話を開始する
- 任意のメッセージを送信
- ブラウザで開く: https://api.telegram.org/bot<TOKEN>/getUpdates
- chat":{"id":123456789} - これがあなたのチャットIDです。
グループの場合
- ボットをグループに追加
- グループにメッセージを送る
- ブラウザで開く: https://api.telegram.org/bot<TOKEN>/getUpdates
- チャット":{"id":-123456789}はグループに対して負の数です。
チャネルの場合
- チャンネル管理者としてボットを追加
- チャンネルにメッセージを送る
- またはチャネルの @username をチャット ID として使用する
よくある問題の解決方法
WebRequest エラー
解決方法: 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