mcpField
L
log-reader

log-reader

github.com/terrylicaテスト・品質2144 回インストール1 日前に更新
リポジトリ

log-reader について

log-readerは、MetaTrader 5のログを読むスキルで、インジケーター、スクリプト、エキスパートアドバイザーの出力を確認する開発者向けです。Expertsペインを手動で調べずに、Print()のデバッグ出力、コンパイルエラー、テスト結果を検索できます。

主な機能

  1. 01当日の MT5 ログを読み込む
  2. 02エラー、テスト、指定文字列を検索
  3. 03直近のログ項目を確認
  4. 04インジケーターやスクリプトの初期化出力を確認
  5. 05ログ内の機密情報に注意

活用シーン

  1. 01インジケーターやスクリプトの実行を検証
  2. 02コンパイル・実行時エラーを特定
  3. 03ユニットテストの結果を確認
  4. 04テスト用矢印など特定の出力を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/terrylica/cc-skills --skill log-reader

インストール後、Claude Code で/log-readerを入力して読み込まれたか確認します。

同梱ファイルreferences/evolution-log.md

詳細

MT5 ログリーダー

MetaTrader 5 のログファイルを直接読み取り、エキスパートタブを手動で確認することなく、インジケーター、スクリプト、エキスパートアドバイザーの Print() 出力にアクセスします。

自己進化型スキル:このスキルは使用を通じて改善されます。指示に誤りがある場合、パラメーターが変わった場合、または回避策が必要だった場合は、先延ばしにせず、このファイルをすぐに修正してください。実際に再現できる問題がある場合にのみ更新してください。

目的

「オプション 3」の二重ロギングパターンを実装します。

  • Print() - MT5 ログファイル(エキスパートタブから人が読める形式)
  • CSV ファイル - 構造化データ(プログラムによる分析用)

Claude Code は、ユーザーの介入なしに両方の出力を自律的に読み取れます。

このスキルを使用する場面

次の場合にこのスキルを使用してください。

  • MT5 インジケーター/スクリプトの実行を検証するとき
  • コンパイルエラーまたは実行時エラーを確認するとき
  • Print() のデバッグ出力を分析するとき
  • 単体テストの結果(Test_PatternDetector、Test_ArrowManager)を検証するとき
  • ユーザーが「エキスパートタブ」を手動で確認すると言及したとき

ログファイルの場所

MT5 のログは次の場所に保存されます。

$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Logs/YYYYMMDD.log

ファイル形式:

  • エンコーディング:UTF-16LE(リトルエンディアン)
  • 構造:タブ区切りフィールド(タイムスタンプ、ソース、メッセージ)
  • サイズ:1 日を通して増加します(通常は 10~100KB)

手順

1. 今日のログパスを組み立てる
/usr/bin/env bash << 'SKILL_SCRIPT_EOF'
# Determine current date
TODAY=$(date +"%Y%m%d")

# Build absolute path
LOG_FILE="$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Logs/${TODAY}.log"
SKILL_SCRIPT_EOF
2. ログファイル全体を読み取る

Read ツールを使用します。

  • ファイルパス:手順 1 で取得した絶対パス
  • ファイルには、MT5 のインジケーター/スクリプトからのすべての Print() 文が含まれます
  • UTF-16LE エンコーディングは Read ツールによって自動的に処理されます
3. 特定の内容を検索する(任意)

Grep を使用してエントリーを絞り込みます。

Pattern: indicator name, "error", "test.*passed", etc.
Path: Log file path from step 1
Output mode: "content" with -n (line numbers)
Context: -A 5 for 5 lines after matches
4. 最近のエントリーを分析する(任意)

Bash で tail を使用して最新の出力を確認します。

tail -n 50 "$LOG_FILE"

一般的な検証パターン

単体テストの結果を確認する

テストの成功/失敗を示す情報を検索します。

Pattern: test.*passed|test.*failed|Tests Passed|Tests Failed|ALL TESTS PASSED
Output mode: content
Context: -B 2 -A 2
コンパイルエラーを見つける
Pattern: error|ERROR|warning|WARNING|failed to create
Output mode: content
Context: -A 3
特定のインジケーターを監視する
Pattern: CCI Rising Test|PatternDetector|ArrowManager
Output mode: content
Context: -A 2
初期化メッセージを表示する
Pattern: OnInit|initialization|Initialization complete|Phase \d+
Output mode: content

例

例 1:単体テストの完了を検証する
Input: User compiled Test_PatternDetector.mq5
Action:
  1. Read today's log file
  2. Grep for "Test.*PatternDetector|Tests Passed|Tests Failed"
  3. Report results (e.g., "17 tests passed, 0 failed")
Output: Test status without user checking Experts pane
例 2:実行時エラーを確認する
Input: User reports indicator not working
Action:
  1. Read today's log file
  2. Grep for "ERROR|error|failed" with -A 3 context
  3. Analyze error messages
Output: Specific error details and line numbers
例 3:フェーズ 2 の矢印作成を検証する
Input: User asks "did the test arrow get created?"
Action:
  1. Read today's log file
  2. Grep for "Phase 2|Test arrow created|Failed to create"
  3. Check for success/failure messages
Output: Arrow creation status with timestamp

セキュリティに関する考慮事項

  • ログファイルには機密性の高い取引データ(銘柄名、アカウント情報)が含まれる場合があります
  • 使用できるツールは Read、Bash、Grep のみです(WebFetch によるネットワークアクセスは禁止)
  • ユーザー向けの出力では、絶対パスを不必要に公開しないでください
  • 結果を報告する際は、機密情報をフィルタリングしてください
  • ファイルの変更操作は禁止されています

二重ロギングとの連携

このスキルにより、二重ロギングパターンの片方にプログラムからアクセスできます。

  1. MT5 ログファイル(このスキル) - 人が読める形式の Print() 出力
  2. CSV ファイル(CSVLogger.mqh) - 検証用の構造化された監査証跡

どちらもユーザーの介入なしにアクセスできます。

  • MT5 ログ:このスキルで読み取ります
  • CSV ファイル:Read ツールで直接読み取るか、validate_export.py で検証します

検証チェックリスト

このスキルを使用する際は、次を確認してください。

  • 今日の日付のログファイルが存在する
  • ファイルサイズが 0 より大きい(空ではない)
  • 想定されるインジケーター/スクリプトの出力が含まれている
  • タイムスタンプが実行時刻と一致している
  • エラーメッセージ(ある場合)から対処方法が分かる
  • テスト結果(該当する場合)に成功/失敗の件数が示されている

参考資料

  • MT5 のファイルの場所:docs/guides/MT5_FILE_LOCATIONS.md
  • 二重ロギングの実装:docs/plans/cci-rising-pattern-marker.yaml Phase 3-4
  • CSVLogger ライブラリ:Program Files/MetaTrader 5/MQL5/Indicators/Custom/Development/CCINeutrality/lib/CSVLogger.mqh

トラブルシューティング

問題原因解決策
ログファイルが見つからない日付またはパスが間違っていますYYYYMMDD.log 形式と MQL5_ROOT 環境変数を確認します
ログファイルが空ですMT5 が実行されていない、または出力がありませんMT5 が実行中で、Print() が呼び出されていることを確認します
エンコーディングエラーUTF-16LE が処理されていません読み取りツールがエンコーディングを自動的に処理します
テスト結果がありませんテストが実行されていませんまず MT5 でテストスクリプトをコンパイルして実行します
Grep で何も見つかりませんパターンが間違っています大文字と小文字を区別しない(-i)か、より広いパターンを使用します
古いログデータログのローテーション毎日、新しい YYYYMMDD.log ファイルが作成されます
パスにスペースが含まれていますパス変数が引用符で囲まれていませんパスを引用符で囲みます:「$LOG_FILE」
機密データが公開されていますログに取引情報が含まれていますユーザーへの報告時に機密フィールドをフィルタリングします

実行後の振り返り

このスキルの実行が完了したら、終了する前に次の点を確認します。

  1. コマンドは成功しましたか? — 成功しなかった場合は、失敗の原因となった手順またはエラー表を修正します。
  2. パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変更があった場合は、使用例とパラメーター表を更新して一致させます。
  3. 回避策が必要でしたか? — 別のフラグや追加手順などで臨機応変に対応した場合は、次回同じ回避策が必要にならないよう、この SKILL.md を更新します。

問題が実在し、再現可能な場合にのみ更新してください。推測に基づく更新は行わないでください。

コメント