既存EA・インジケータ改修を依頼する前に整理すること
既存のEAやインジケータを改修したい場合、最初に重要になるのは「何を直したいか」だけではありません。
実際には、現在のファイル、発生している症状、ログ、使っている環境、希望する変更内容が整理されているほど、調査・見積もり・改修方針の判断が進めやすくなります。
この記事では、MT4/MT5のEA・インジケータ改修を依頼する前に整理しておきたい内容をまとめます。
この記事で扱う内容
- 改修相談前に用意したいファイル
- 不具合やエラーの伝え方
- 希望仕様を整理する時のポイント
- ログやスクリーンショットの確認項目
- 改修できない、または確認が必要になりやすいケース
- 既存EA・インジケータ改修で最初に確認したいこと
- まず用意したいファイル
- 不具合相談では「症状」と「再現条件」を分ける
- コンパイルエラーは全文をそのまま残す
- 希望する改修内容は「目的」と「動作仕様」に分ける
- EAの場合は売買に関わる範囲を明確にする
- インジケータの場合は表示と判定を分けて整理する
- 外部連携がある場合は設定情報を整理する
- 改修できない、または確認が必要になりやすいケース
- パラメータ・setファイルの変更を依頼する場合
- 不具合や動作確認を依頼する場合
- 決済・建値・トレーリングを変更する場合
- ナンピン・追加条件・停止条件を変更する場合
- パネル・ボタン・チャート表示を変更する場合
- ログ出力・CSV・記録を追加する場合
- 改修内容ごとに資料と確認結果を対応させる
- 依頼前にまとめておくとよいチェックリスト
- 改修相談時の文章例
- 追加・移行する機能についてよくある質問
- 関連ページ
- 相談先・利用条件を確認する
- 補足して確認したいページ
- まとめ
- お問い合わせはEAFC公式LINEへ
既存EA・インジケータ改修で最初に確認したいこと
- mq4/mq5/mqhなど編集可能なソースと改変権を確認する
- 変更したい機能を設定・エントリー・決済・通知・UI・ログに分ける
- 改修前のEA版・set・銘柄・時間足・検証期間を保存する
- 機密情報を除いたログ・スクリーンショット・再現条件を整理する
EAやインジケータの改修では、まず現在の状態を確認する必要があります。
たとえば、次のような相談でも、必要な情報が不足していると、すぐに改修方針を決められない場合があります。
- エントリー条件を追加したい
- 通知機能を追加したい
- パネル表示を変更したい
- アラートの条件を変えたい
- コンパイルエラーを直したい
- バックテストとリアル運用の挙動差を確認したい
- MT4版をMT5版へ移行したい
改修内容が小さく見えても、内部の作りによっては、表示・判定・発注・決済・通知・外部連携など、複数箇所に影響することがあります。
そのため、依頼前には「今どうなっているか」と「何をどう変えたいか」を分けて整理することが大切です。
まず用意したいファイル
改修相談では、可能な範囲で次のファイルを整理しておくと確認が進めやすくなります。
| 項目 | 内容 |
|---|---|
| ソースファイル | .mq4、.mq5、必要な.mqhファイル |
| 設定ファイル | 現在使用している.setファイル |
| コンパイル結果 | MetaEditor上のエラー・警告内容 |
| ログ | Expertsログ、Journalログ、必要に応じてStrategy Testerログ |
| 画面画像 | チャート表示、パネル表示、エラー表示、Inputs設定画面など |
| 説明メモ | 現在の動き、困っている点、希望する変更内容 |
特に、ソースファイルがない場合は、改修できる範囲が大きく制限されます。
.ex4や.ex5だけでは、内部ロジックを確認して改修することは基本的にできません。既存EAやインジケータの改修を相談する場合は、可能であれば.mq4または.mq5の有無を先に確認してください。
不具合相談では「症状」と「再現条件」を分ける
不具合や動作不良を相談する場合は、症状だけでなく、再現条件も重要です。
たとえば、次のように整理すると確認しやすくなります。
| 整理項目 | 記載例 |
|---|---|
| 発生している症状 | EAをチャートに入れてもエントリーしない |
| 発生タイミング | 起動直後、時間足変更後、バックテスト中、通知送信時など |
| 銘柄・時間足 | GOLD M15、USDJPY M5など |
| 口座環境 | デモ口座、リアル口座、セント口座、VPS環境など |
| 再現性 | 毎回発生する、特定条件だけで発生する、長時間放置後に発生するなど |
| 直前に変更した内容 | Inputs変更、set差し替え、MT5更新、VPS移行など |
「動かない」「通知が来ない」「表示がおかしい」だけでは、原因がEA側なのか、MT5設定なのか、外部連携なのか、口座環境なのかを区別しにくくなります。
問い合わせ前のログ確認については、次の記事も参考になります。
コンパイルエラーは全文をそのまま残す
既存EAやインジケータの改修では、コンパイルエラーの内容が重要な手がかりになります。
エラーが出ている場合は、MetaEditorのエラー一覧から、次の情報をそのまま残してください。
- エラーメッセージ
- ファイル名
- 行番号
- 列番号
- 警告がある場合は警告内容
一部だけを省略すると、原因の判断が難しくなることがあります。
特に、文字コード、includeファイル不足、関数名の不一致、MT4/MT5の仕様差、古い書き方の残存などは、エラーメッセージ全体を見ないと判断しにくい場合があります。
希望する改修内容は「目的」と「動作仕様」に分ける
改修依頼では、「こうしたい」という目的と、「具体的にどう動かすか」という仕様を分けて整理すると、認識違いを減らせます。
| 区分 | 例 |
|---|---|
| 目的 | Discordへ通知を送りたい |
| 動作仕様 | エントリー時、決済時、エラー発生時に通知する |
| 目的 | エントリー条件を増やしたい |
| 動作仕様 | 既存条件にRSI条件を追加し、BUY/SELLで閾値を分ける |
| 目的 | パネルを見やすくしたい |
| 動作仕様 | ロット、稼働状態、最終エラー、通知状態を左上に表示する |
目的だけでは実装内容が広すぎる場合があります。反対に、細かい仕様だけを先に決めると、現在の構造に合わないこともあります。
まずは「何のために変えたいのか」を整理し、そのうえで、必要な動作仕様を決める流れが安全です。
EAの場合は売買に関わる範囲を明確にする
EAの改修では、表示や通知だけの変更なのか、実際の発注・決済に関わる変更なのかで確認範囲が変わります。
たとえば、次のような改修は売買動作に影響する可能性があります。
- エントリー条件の追加・変更
- ロット計算方式の変更
- ナンピン条件の変更
- 決済条件の変更
- トレーリングストップの変更
- スプレッド制限の変更
- 稼働時間制御の変更
- マジックナンバー管理の変更
このような改修では、単にコードを書き換えるだけでなく、変更前後の動作確認が必要です。
特に、複数ロジック、複数ポジション、コピーEA、ナンピンEA、外部シート連携などが含まれる場合は、どの範囲に変更を反映するのかを先に整理しておく必要があります。
インジケータの場合は表示と判定を分けて整理する
インジケータの改修では、表示だけを変えたいのか、サイン判定そのものを変えたいのかを分けて考えます。
- 矢印やラベルの表示位置を変えたい
- サインの色やサイズを変えたい
- アラート条件を変えたい
- 表示する時間足を制限したい
- サイン条件にフィルターを追加したい
- 過去サインの再描画を抑えたい
見た目だけの変更に見えても、内部では判定条件やバッファ、オブジェクト描画、アラート処理と関係している場合があります。
「表示変更」「通知変更」「判定変更」を分けて整理しておくと、改修後の確認項目も明確になります。
外部連携がある場合は設定情報を整理する
Discord通知、Google Sheets連携、WebRequest、外部CSV、認証処理などがあるEAやインジケータでは、外部連携の設定確認も必要です。
ただし、Webhook URL、APIキー、認証トークン、口座番号などの実値は、公開場所や通常の問い合わせ文面へそのまま記載しないよう注意してください。
相談時は、実値ではなく、次のような状態情報を整理すると安全です。
- WebRequest許可URLを設定済みか
- 通知送信時にエラーが出ているか
- 外部シートを読み取れているか
- MT5のExpertsログに通信エラーが出ているか
- 直近でURLやGAS、Webhook側を変更したか
WebRequestや外部通知の確認については、関連する確認記事も参考になります。
改修できない、または確認が必要になりやすいケース
以下のようなケースでは、すぐに改修できるとは限りません。
- ソースファイルがなく、
.ex4や.ex5しかない - 第三者が作成したEAやインジケータで、改修許可が不明
- 外部認証やライセンス機能が含まれている
- 複数のincludeファイルが不足している
- 元の仕様書や使い方が残っていない
- 現在の動作が仕様なのか不具合なのか判断できない
- 販売元や開発元の利用規約に抵触する可能性がある
特に、第三者が作成したEAやインジケータを改修する場合は、利用権限や改修可否の確認が必要です。
改修相談では、技術的に可能かどうかだけでなく、ファイルの権利関係や利用条件も確認対象になります。
パラメータ・setファイルの変更を依頼する場合
パラメータ変更依頼で最初に整理すること
何を変更したいのかを具体的にする
EAのパラメータ変更では、変更したい項目名をできるだけ具体的に整理します。
「もっと入りやすくしたい」「安全にしたい」「利益が出るようにしたい」といった表現だけでは、どの項目を確認すればよいか判断しにくくなります。
依頼前には、Inputs上の項目名、現在値、変更後の希望値、変更したい理由、確認したい動作を分けて整理してください。
| 整理項目 | 記載例 | 確認する理由 |
|---|---|---|
| 項目名 | MaxPositions、TakeProfit、SpreadFilter など | 対象パラメータを特定するため |
| 現在値 | 現在のsetファイル上の値 | 変更前の状態を確認するため |
| 変更後の希望値 | 変更したい値 | 作業内容を明確にするため |
| 変更理由 | 確認したい動作、検証したい条件 | 影響範囲を判断するため |
| 確認方法 | バックテスト、デモ口座、ログ確認など | 変更後の検証方法を決めるため |
変更したい理由を技術確認として書く
パラメータ変更の理由は、売買判断や利益目的ではなく、技術確認として整理する方が確認しやすくなります。
たとえば、「ロット計算後の丸め処理を確認したい」「最大ポジション到達時のログを確認したい」「通知条件を変更した時の送信回数を確認したい」「稼働時間フィルターの判定を確認したい」といった形です。
- どの項目を変更したいか
- なぜ変更したいか
- どの動作を確認したいか
- 変更後にどのログを見たいか
- 既存ポジションへ影響するか確認したいか
「利益が出る設定にしたい」「損失を避けたい」といった内容は、パラメータ変更の技術確認とは分けて扱う必要があります。
変更対象になりやすいパラメータ
ロット関連
ロット関連のパラメータは、注文可否や合計ロットに関係します。
変更を依頼する場合は、初回ロット、固定ロット、倍率、複利設定、最小ロット、最大ロット、ロットステップ、端数処理を分けて確認します。
- 初回ロットを変更したいのか
- 追加ロットを変更したいのか
- 倍率を変更したいのか
- 固定ロットにしたいのか
- 口座の最小ロット・ロットステップに合っているか
- 計算後ロットが注文可能な値になるか
この記事では、推奨ロットや資金配分の助言は扱いません。確認できるのは、設定項目、計算結果、注文条件、ログでの確認方法です。
TP / SL関連
TP、SL、建値移動、トレーリング、決済幅などは、注文後の管理や決済処理に関係します。
変更前には、ブローカー側に実際のTP/SLを置く仕様なのか、EA内部で決済条件を管理する仕様なのかを確認してください。
- TPを変更したいのか
- SLを変更したいのか
- 建値移動条件を変更したいのか
- トレーリング開始条件を変更したいのか
- トレーリング幅や更新間隔を変更したいのか
- ブローカー側SL/TPか、EA内部管理か
ナンピン・追加ポジション関連
ナンピンEAや追加ポジションを持つEAでは、ナンピン幅、最大ポジション数、追加ロット、追加間隔、スプレッド制限、停止条件などが関係します。
これらの項目を変更すると、ポジション数、合計ロット、ログ、通知、停止条件の判定が変わる場合があります。
| 項目 | 確認すること |
|---|---|
| ナンピン幅 | 単位、pips/points、固定幅か可変幅か |
| 最大ポジション数 | 方向別、ロジック別、口座全体のどれか |
| 追加ロット | 固定、倍率、段階指定、丸め処理 |
| 追加間隔 | 時間制限、バー制限、連続追加の扱い |
| 停止条件 | 新規停止、追加停止、決済継続の違い |
稼働時間・曜日・フィルター関連
稼働時間、曜日制限、スプレッド制限、外部停止、経済指標フィルターなどを変更する場合は、基準時刻や反映範囲を確認します。
- サーバー時間基準か、PC時間基準か
- 曜日制限があるか
- 新規エントリーだけを止めるのか
- 既存ポジション管理は継続するのか
- スプレッド超過時のログが出るか
- 外部シート設定と連動しているか
通知・外部連携関連
Discord通知、Google Sheets連携、CSV出力、外部認証、外部シート設定などを変更する場合は、EA本体の売買条件とは別に確認します。
Webhook URL、GAS URL、APIキー、認証トークンなどの実値は、公開ページや通常の問い合わせ文面にそのまま貼らないようにしてください。
- 通知ON/OFFを変更したいのか
- 通知条件を変更したいのか
- 通知先を変更したいのか
- Google Sheetsの列構成を変更したいのか
- CSV保存先やファイル名を変更したいのか
- WebRequest許可URLが変わるか
変更前に用意するもの
現在使っているEA本体
パラメータ変更を依頼する場合、対象EAを特定できる情報が必要です。
- EA名
- ファイル名
- バージョン
- MT5用かMT4用か
- mq5ファイルの有無
- ex5ファイルのみか
- 現在使っている口座・銘柄・時間足
ex5ファイルのみの場合、内部ロジックの直接改修ができないことがあります。その場合は、外部補助ツールや別実装で対応できるかを確認する流れになります。
現在のsetファイル
現在使っているsetファイルは、変更前の状態を確認するために重要です。
setファイルがない場合、現在のInputsをスクリーンショットで確認できるようにしてください。
- 現在使っているsetファイル
- 変更前のバックアップset
- 変更したい項目を記載したメモ
- 変更後の希望値
- 検証用setと通常用setの区別
変更したい項目の一覧
変更したい項目は、文章だけでなく表形式で整理すると確認しやすくなります。
| Inputs項目名 | 現在値 | 変更後の希望値 | 確認したい動作 |
|---|---|---|---|
| 例:MaxPositions | 現在の値 | 変更後の値 | 最大本数到達時の動作を確認 |
| 例:UseSpreadFilter | 現在の値 | 変更後の値 | スプレッド制限時のログを確認 |
| 例:NotifyToDiscord | 現在の値 | 変更後の値 | 通知ON/OFFを確認 |
実際の依頼時は、EAに表示されている正式なInputs名を使ってください。表示名が似ている項目が複数ある場合、誤った項目を変更してしまう可能性があります。
変更前後の比較方法
変更前setと変更後setを分ける
パラメータ変更では、変更前setと変更後setを別名で保存しておくことが重要です。
同じファイル名で上書きすると、後から何を変更したのか、元の状態へ戻せるのかが分かりにくくなります。
- 変更前setを保存する
- 変更後setを別名で保存する
- 日付、EA名、銘柄、時間足、用途をファイル名に入れる
- 変更した項目をメモに残す
- 相談時には変更前後の両方を用意する
差分を確認する
変更前後の差分を確認すると、意図しない項目まで変わっていないかを確認しやすくなります。
特に、ロット、最大ポジション数、マジックナンバー、通知設定、外部URL、稼働時間、スプレッド制限は、意図せず変わると動作に影響しやすい項目です。
| 差分確認で見る項目 | 確認する理由 |
|---|---|
| ロット関連 | 注文可否や合計ロットに関係するため |
| 最大ポジション数 | 追加ポジションや停止条件に関係するため |
| マジックナンバー | 他EAや手動注文との混在を防ぐため |
| 通知設定 | 通知不達や通知過多を防ぐため |
| 外部連携設定 | WebRequestや記録先に関係するため |
バックテスト・動作確認で見ること
バックテストで確認できること
バックテストでは、変更したパラメータがEAの条件判定、注文、決済、ログ出力に反映されているかを確認しやすくなります。
- 変更後の値が読み込まれているか
- 注文回数や決済回数が変わるか
- 最大ポジション数に関するログが出るか
- TP/SLやトレーリングの処理が意図どおりか
- 注文エラーや不正値が出ていないか
ただし、バックテスト結果は将来の利益や成績を保証するものではありません。リアル環境では、スプレッド、約定、通信、VPS、外部連携、ブローカー仕様の影響を受ける場合があります。
デモ口座・検証環境で確認すること
外部通知、Google Sheets連携、WebRequest、コピーEA、決済補助EAなどは、バックテストだけでは確認しにくい場合があります。
変更後は、デモ口座や検証環境で、EAが起動するか、設定値が読み込まれているか、通知や外部連携が動くか、ログにエラーが出ていないかを確認してください。
運用中ポジションがある場合の注意
運用中ポジションがある状態でパラメータを変更する場合は、変更対象が新規エントリーだけに関係するのか、既存ポジション管理にも関係するのかを確認する必要があります。
EAによっては、初回ロットは次回新規エントリーだけに使われ、進行中ポジションには反映されない場合があります。一方で、トレーリング、決済条件、通知条件、停止条件は、既存ポジション管理に関係する場合があります。
- 現在ポジションがあるか確認する
- 変更対象が新規エントリー用か既存管理用か確認する
- 進行中ポジションに反映されるか確認する
- 変更直後のExpertsログを確認する
- 不明な場合は仕様確認を優先する
不具合や動作確認を依頼する場合
動作確認依頼で最初に整理すること
EAの動作確認を依頼する時は、まず「何を確認してほしいのか」を明確にします。
「EAが動きません」だけでは、設置確認なのか、設定確認なのか、エントリー条件の確認なのか、注文エラーなのか、通知不達なのかを判断しにくくなります。
| 確認したいこと | 具体例 | 必要になりやすい情報 |
|---|---|---|
| 設置確認 | EAが正しくチャートに入っているか | EA名、チャート、スクリーンショット |
| 設定確認 | setファイルが読み込まれているか | setファイル、Inputs画面、初期化ログ |
| ログ確認 | 初期化エラーや通信エラーがないか | Expertsログ、Journalログ |
| 通知確認 | Discord通知や外部連携が動いているか | 通知ON/OFF、WebRequest、送信ログ |
| 不具合確認 | エントリーしない、決済しない、表示が崩れるなど | 発生時刻、症状、ログ、スクリーンショット |
動作確認の目的を整理しておくと、確認対象を絞りやすくなります。
EA本体とsetファイルを用意する
EA本体を特定する
動作確認では、どのEAを確認するのかを最初に特定します。
同じEA名でも、通常版、検証版、修正版、旧版、最新版、開発者確認用などが分かれている場合があります。ファイル名とバージョンを確認してください。
- EA名
- EAファイル名
- EAのバージョン
- MT5用かMT4用か
- ex5ファイルのみか、mq5ソースがあるか
- 現在チャートに入れているファイルか
- 旧版や検証版と混同していないか
EA本体が特定できない場合、setファイルやログがあっても確認対象がずれる可能性があります。
setファイルを用意する
setファイルには、EAのInputsで設定している値が保存されています。
動作確認では、現在チャートに読み込んでいるsetファイル、変更前set、変更後set、検証用setがある場合は区別して整理します。
- 現在使っているsetファイル
- 変更前setファイル
- 変更後setファイル
- 検証用setファイル
- VPS用setファイル
- バックテスト用setファイル
setファイルだけでは、どの環境で使っているか、どの症状が出ているかまでは分からない場合があります。EA本体情報、使用環境、ログとあわせて整理してください。
使用環境を整理する
EAの動作確認では、使用環境の情報も重要です。
同じEAと同じsetファイルでも、ブローカー、口座種別、銘柄名、時間足、最小ロット、サーバー時刻、スプレッド、VPS環境、外部連携設定によって動作確認の結果が変わる場合があります。
| 整理項目 | 確認する内容 |
|---|---|
| MT5環境 | MT5の端末、ログイン口座、サーバー |
| ブローカー | ブローカー名、口座タイプ、デモ/リアル |
| 銘柄 | GOLD、XAUUSD、XAUUSDcなどの表記 |
| 時間足 | M1、M5、M15、H1など |
| VPS | ローカルPCかVPSか、移行後か |
| 他EA | 同じ口座で複数EAを使っているか |
| 外部連携 | WebRequest、Discord通知、Google Sheets連携の有無 |
別口座・別環境へ移した後か確認する
デモ口座からリアル口座へ移した、別ブローカーへ移した、ローカルPCからVPSへ移した、別MT5へ移した場合は、移行前後の環境差を整理してください。
- 移行前の口座環境
- 移行後の口座環境
- 銘柄名やサフィックスの違い
- setファイルを同じものにしたか
- WebRequest設定を移行先でも行ったか
- 通知や外部連携を移行先でテストしたか
- 移行後のExpertsログとJournalログ
環境差がある場合、EA本体ではなく、口座設定やMT5設定が原因になることがあります。
発生している症状を具体的にする
動作確認を依頼する時は、発生している症状をできるだけ具体的に整理してください。
いつ、どの操作の後に、どのような症状が出たのかを整理すると確認しやすくなります。
- EAを入れても起動しない
- エントリーしない
- 決済しない
- 注文エラーが出る
- 通知が届かない
- Google Sheetsへ反映されない
- パネルが表示されない
- 時間足変更後に表示が崩れる
- バックテストで取引が出ない
- ログが多すぎて確認しにくい
症状を分けることで、確認するログや設定項目を絞りやすくなります。
症状ごとに確認する場所を分ける
| 症状 | 主に見る場所 | 確認する内容 |
|---|---|---|
| EAが起動しない | チャート右上、Expertsログ | 設置場所、ファイル形式、初期化エラー |
| エントリーしない | Inputs、Expertsログ | 自動売買、時間帯、スプレッド、条件判定 |
| 決済しない | 保有ポジション、Expertsログ | TP/SL、トレーリング、決済対象、マジックナンバー |
| 注文エラーが出る | Expertsログ、Journalログ | ロット、証拠金、取引時間、銘柄条件 |
| 表示が崩れる | チャート、オブジェクト、Expertsログ | パネル、ボタン、時間足変更、旧オブジェクト |
| 通知が届かない | WebRequest、Expertsログ | Webhook、通知ON/OFF、外部通信 |
ExpertsログとJournalログを確認する
EAの動作確認では、ログが重要です。
チャート表示だけでは、EAが条件を満たしていないのか、設定エラーなのか、注文が拒否されたのか、外部連携が失敗しているのか判断できない場合があります。
| ログ | 確認内容 |
|---|---|
| Expertsログ | EAの初期化、設定、注文、決済、通知、外部連携、エラー |
| Journalログ | MT5端末側の接続、注文、チャート、ファイル、サーバー状態 |
| Strategy Testerログ | バックテスト中の起動、注文、決済、エラー、判定 |
Expertsログで見ること
- EAが起動しているか
- EA名とバージョンが正しいか
- setファイルの値が反映されているか
- 認証エラーが出ていないか
- 条件ブロックの理由が出ているか
- 注文エラーや決済エラーが出ていないか
- 通知送信成功・失敗が出ているか
- WebRequestエラーが出ていないか
Journalログで見ること
- MT5がサーバーへ接続しているか
- 取引が許可されているか
- 注文応答が出ているか
- 取引時間外や証拠金不足が出ていないか
- チャート操作やファイル操作でエラーが出ていないか
- VPS再起動や接続断の影響がないか
ログが多い場合は、発生時刻、EA名、エラー、警告、注文関連、WebRequest関連を優先して確認してください。
外部連携や通知も分けて確認する
Discord通知、Google Sheets連携、WebRequest、外部認証、外部シート取得を使うEAでは、EA本体の判定とは別に外部連携を確認します。
通知が届かない場合でも、EAの売買条件や注文処理とは原因が異なることがあります。
- 通知ON/OFFが意図どおりか
- Webhook URLが正しく設定されているか
- WebRequest許可URLが登録されているか
- VPS側MT5でも同じ設定になっているか
- Google SheetsのGAS URLや権限に問題がないか
- 外部認証の成功・失敗ログが出ているか
- 外部シート取得結果がログに出ているか
Webhook URL、GAS URL、APIキー、認証トークンなどの実値は、公開ページや通常の問い合わせ文面にそのまま貼らないでください。スクリーンショットに映る場合も、必要に応じてマスキングしてください。
動作確認と売買判断を混同しない
EAの動作確認は、EAが正しく設置されているか、設定が読み込まれているか、ログにエラーが出ていないか、通知や外部連携が動いているかを確認するためのものです。
どのEAを使うべきか、どのタイミングで売買すべきか、どの設定が利益につながるか、どのロットが適切かを助言するものではありません。
動作確認の結果は、設定や環境を確認するための材料として扱ってください。実際の運用判断、設定判断、取引判断は、利用者ご自身の責任で行う必要があります。
決済・建値・トレーリングを変更する場合
決済ロジックだけを改修するとは
決済ロジックだけを改修するとは、EAのエントリー判定は大きく変えず、保有中ポジションの閉じ方や管理方法を変更することです。
ただし、EA内部ではエントリー、ポジション管理、リスク制御、決済処理がつながっている場合があります。そのため、決済だけの改修に見えても、実際にはポジション管理やリスク処理の確認が必要になることがあります。
| 改修対象 | 内容 | 注意点 |
|---|---|---|
| TP変更 | 利益確定幅や利益確定条件を変更します。 | 固定TPか内部決済かを分けて確認します。 |
| SL変更 | 損切り幅や損切り条件を変更します。 | 口座側SLとEA内部SLを分けて確認します。 |
| 建値移動 | 一定条件でSLを建値付近へ移動します。 | 手数料、スプレッド、移動先価格を確認します。 |
| トレーリング | 価格が有利に動いた時にSLを追従させます。 | 開始条件、幅、更新間隔を確認します。 |
| 一括決済 | 複数ポジションをまとめて閉じます。 | 対象Magic Numberや方向を確認します。 |
| 部分決済 | ポジションの一部ロットだけを閉じます。 | 最小ロット、ロットステップ、残ロットを確認します。 |
依頼前には、「エントリー条件は変更しない」「決済だけ変更したい」という希望を伝えるだけでなく、どの決済処理をどう変えたいのかを分けて整理します。
エントリーと決済を分けて整理する
EA改修では、エントリー条件と決済条件を分けて考えることが重要です。
エントリーは新規注文を出す条件です。決済は、すでに保有しているポジションを閉じる条件です。どちらもEAの成績に影響しますが、開発上の責務は異なります。
| 区分 | 主な役割 | 依頼前に整理すること |
|---|---|---|
| エントリー | 新規注文を出す条件です。 | 今回は変更するか、変更しないかを明確にします。 |
| ポジション管理 | 保有中ポジションの状態を管理します。 | Magic Number、方向、銘柄、保有数を確認します。 |
| リスク制御 | 最大損失、証拠金、稼働停止などを管理します。 | 決済改修と競合しないか確認します。 |
| 決済 | TP、SL、建値、トレーリング、一括決済などを行います。 | 条件、対象、優先順位を整理します。 |
| 通知・ログ | 決済理由やエラーを記録します。 | close_reasonやmodifyログを確認します。 |
「決済だけ変更したい」場合でも、リスク制御やポジション管理と競合しないかを確認する必要があります。
TP/SLを改修したい場合に整理すること
TPとSLは、EAの決済ロジックで最も相談が多い項目です。
ただし、TP/SLには、口座側へ実際に設定するTP/SLと、EA内部だけで判定して成行決済する内部決済があります。依頼前には、どちらを使いたいのかを確認します。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 固定TP | エントリー価格から一定距離で利益確定します。 | pips、point、価格差の単位を確認します。 |
| 固定SL | エントリー価格から一定距離で損切りします。 | 口座側SLか内部SLかを確認します。 |
| 平均建値TP | 複数ポジションの平均建値を基準にTPを置きます。 | ナンピンEAでは特に確認が必要です。 |
| 内部決済 | EAが条件成立時に成行決済します。 | MT5上のTP/SL表示とは異なる場合があります。 |
| 銘柄別設定 | GOLD / XAUUSDなどで幅を変える設定です。 | digits、point、tick_valueを確認します。 |
| 時間帯別設定 | 時間帯によってTP/SLを変える設計です。 | サーバー時間基準か確認します。 |
TP/SL幅の推奨値は、この記事では扱いません。依頼時には、現在の設定、変更したい内容、単位、対象銘柄、対象ロジックを整理してください。
建値・ブレイクイーブンを追加したい場合
建値やブレイクイーブンは、一定の含み益が出た後に、SLを建値付近へ移動する処理として使われることがあります。
ただし、建値といっても、エントリー価格ぴったりなのか、スプレッドや手数料を考慮して少し上に置くのか、平均建値を基準にするのかで仕様が変わります。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| BE開始条件 | どの程度有利に動いたら建値移動するかです。 | point、価格差、金額、pipsなどの単位を確認します。 |
| BE移動先 | SLをどこへ移動するかです。 | 建値ぴったりか、少し利益側かを確認します。 |
| 対象方向 | BUY、SELL、両方のどれに適用するかです。 | 方向別に条件が異なる場合があります。 |
| 対象ポジション | 単独ポジションか、複数ポジションかです。 | 平均建値を使うかを確認します。 |
| 1回だけ実行 | 一度だけ建値移動するかです。 | 何度もmodifyを出さない設計が必要です。 |
| ログ出力 | BE実行理由を記録します。 | BE_CHECK、BE_MODIFYなどのログがあると確認しやすくなります。 |
建値機能を依頼する場合は、単に「建値を付けたい」ではなく、開始条件、移動先、対象ポジション、手数料やスプレッドの扱いを整理してください。
トレーリングストップを改修したい場合
トレーリングストップは、価格が有利な方向へ動いた時に、SLを一定間隔で追従させる処理です。
トレーリングには、開始条件、追従幅、更新間隔、更新単位、BUY / SELL別の計算、既存SLとの関係など、整理すべき項目があります。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 開始条件 | どの程度利益方向へ動いたら開始するかです。 | 価格差、point、pips、金額を確認します。 |
| 追従幅 | 現在価格からどれくらい離してSLを置くかです。 | 銘柄ごとのpoint単位に注意します。 |
| 更新間隔 | 何point動いたら次に更新するかです。 | 過剰なOrderModifyを避ける設計が必要です。 |
| 対象ポジション | どのポジションに適用するかです。 | Magic Number、方向、銘柄を確認します。 |
| 既存SLとの関係 | 現在のSLより不利にしないかです。 | SLを逆方向へ戻さない条件を確認します。 |
| ログ出力 | 更新理由や変更結果を記録します。 | TRAIL_CHECK、TRAIL_MODIFYなどを確認します。 |
トレーリングを改修する場合は、バックテストだけでなく、実運用でのmodify頻度、スプレッド、約定環境も確認が必要です。
一括決済を追加したい場合
一括決済とは、複数のポジションをまとめて閉じる処理です。
一括決済は便利な一方で、対象を誤ると、閉じる予定ではないポジションまで決済してしまう可能性があります。そのため、対象範囲を明確にすることが重要です。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 対象銘柄 | チャート銘柄だけか、全銘柄かです。 | GOLDだけ、USDJPYだけなどを明確にします。 |
| 対象Magic Number | どのEAのポジションを閉じるかです。 | 手動ポジションや他EAを巻き込まないよう確認します。 |
| 対象方向 | BUYだけ、SELLだけ、両方かです。 | 方向別に一括決済する場合があります。 |
| 対象ロジック | 複数ロジックEAでどのロジックを対象にするかです。 | Logic1だけ、全ロジックなどを確認します。 |
| 決済条件 | 利益合計、損失合計、時間、手動ボタンなどです。 | 条件成立時の優先順位を確認します。 |
| 失敗時の処理 | 一部決済失敗時にどうするかです。 | 再試行、ログ、通知を確認します。 |
一括決済を依頼する場合は、「全部閉じる」ではなく、どの銘柄、どのMagic Number、どの方向、どのロジック、どの条件で閉じるかを整理してください。
部分決済を追加したい場合
部分決済とは、保有ポジションの一部ロットだけを決済する処理です。
部分決済では、最小ロット、ロットステップ、残ロット、口座タイプ、ブローカー仕様を確認する必要があります。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 決済ロット | 何ロットを閉じるかです。 | 固定ロットか割合指定かを確認します。 |
| 残ロット | 決済後に残すロットです。 | 最小ロット未満にならないか確認します。 |
| ロットステップ | 注文できるロット刻みです。 | 0.01刻み、0.1刻みなどを確認します。 |
| 実行回数 | 1回だけか、複数段階かです。 | 何度も部分決済しない制御が必要です。 |
| 対象ポジション | どのポジションを部分決済するかです。 | 古いポジション、新しいポジション、利益順などを確認します。 |
| ログ出力 | 部分決済の結果を記録します。 | PARTIAL_CLOSE、close_volumeなどを確認します。 |
決済優先順位を整理する
決済ロジック改修で重要なのが、複数の決済条件が同時に成立した時の優先順位です。
たとえば、トレーリング、建値、TP、SL、一括決済、リスク停止が同時に関係する場合、どれを先に処理するかで結果が変わる場合があります。
| 決済条件 | 確認すること | 注意点 |
|---|---|---|
| 強制停止系 | 口座リスク、最大損失、緊急停止などです。 | 通常決済より優先するか確認します。 |
| SL | 損切り条件です。 | 内部SLと口座側SLを分けて確認します。 |
| TP | 利益確定条件です。 | 固定TPと内部TPを分けて確認します。 |
| 建値 | SLを建値付近へ移動する処理です。 | 決済ではなくSL変更の場合があります。 |
| トレーリング | SLを利益方向へ追従させる処理です。 | 建値後に開始するか確認します。 |
| 一括決済 | 複数ポジションをまとめて閉じる処理です。 | 他の決済条件と競合する場合があります。 |
| 手動決済 | ボタンや手動操作による決済です。 | EAの自動決済と競合しないか確認します。 |
依頼前には、「どの条件を最優先にしたいか」ではなく、「仕様上どの順番で処理すべきか」を整理します。これは売買判断ではなく、EA内部の処理順序の確認です。
対象ポジションを明確にする
決済ロジックを改修する場合、どのポジションを対象にするかを明確にする必要があります。
特に、複数EA、複数Magic Number、手動ポジション、コピーEA、ナンピンEAが同じ口座で動いている場合、対象の確認が重要です。
| 対象条件 | 確認内容 | 注意点 |
|---|---|---|
| 銘柄 | チャート銘柄だけか、複数銘柄かです。 | Symbol指定を確認します。 |
| Magic Number | どのEAのポジションかを識別します。 | 0番の手動ポジションを含めるか確認します。 |
| 方向 | BUY、SELL、両方のどれかです。 | 方向別に条件が違う場合があります。 |
| ロジック番号 | 複数ロジックEAの内部分類です。 | Magicやコメントで識別する場合があります。 |
| コメント | 注文コメントで識別する場合があります。 | ブローカーやコピーEAで変わる場合があります。 |
| 手動ポジション | 裁量で入れたポジションです。 | EA決済対象に含めるかを明確にします。 |
ログで確認したい項目
決済ロジック改修では、ログ設計も重要です。
決済条件が成立したのか、見送ったのか、注文変更に成功したのか、決済に失敗したのかを確認できるようにしておくと、検証や不具合確認が進めやすくなります。
| ログ項目 | 確認内容 | 例 |
|---|---|---|
| close_check | 決済判定を行ったか確認します。 | close_check=Y |
| close_reason | 決済理由を確認します。 | TP、SL、TRAIL、BE、MANUAL |
| be_check | 建値移動条件を確認します。 | be_start、be_lock |
| trail_check | トレーリング条件を確認します。 | trail_start、trail_width |
| modify_result | SL/TP変更の結果を確認します。 | modify_success、modify_fail |
| close_result | 決済注文の結果を確認します。 | close_success、close_fail |
| retcode | MT5の取引結果コードを確認します。 | trade retcode |
| skip_reason | 条件未成立や見送り理由を確認します。 | spread_block、time_block、target_none |
「決済されない」という相談では、決済条件が未成立なのか、条件は成立したが注文に失敗しているのかをログで分けて確認します。
バックテストで確認すること
決済ロジックを改修した場合は、改修前後でバックテスト条件をそろえて確認することが重要です。
ただし、バックテスト結果は将来の結果を保証するものではありません。ここで確認するのは、改修した決済処理が仕様どおり動いているかどうかです。
| 確認項目 | 内容 | 注意点 |
|---|---|---|
| EAバージョン | 改修前後のバージョンを記録します。 | 比較できるように分けて保存します。 |
| setファイル | 同じ設定で比較します。 | 変更したパラメータを記録します。 |
| 検証期間 | 同じ期間で比較します。 | 相場期間の違いを混ぜないようにします。 |
| 銘柄・時間足 | 同じ銘柄と時間足で確認します。 | GOLD / XAUUSDではpointやdigitsも確認します。 |
| 決済理由 | TP、SL、BE、TRAILなどを確認します。 | 取引履歴だけでは分からない場合があります。 |
| 最大DD | 資金の落ち込みを確認します。 | 利益だけで判断しないようにします。 |
| 注文失敗 | 決済失敗やmodify失敗を確認します。 | ログとあわせて確認します。 |
ナンピン・追加条件・停止条件を変更する場合
ナンピンEA改修で最初に分けること
ナンピンEAを改修する時は、まず「初回エントリー」と「追加エントリー」を分けて考える必要があります。
初回エントリーは最初の注文です。追加エントリーは、すでにポジションを保有している状態で、条件に応じてさらにポジションを増やす処理です。
この2つを混同すると、「初回は止めたいが追加は続けたい」「新規は止めたいが決済管理は続けたい」といった仕様が曖昧になります。
| 区分 | 役割 | 依頼前に整理すること |
|---|---|---|
| 初回エントリー | 最初のポジションを建てる処理です。 | 変更対象に含めるか、既存のままにするかを確認します。 |
| 追加エントリー | 保有中にポジションを追加する処理です。 | 追加幅、条件、ロット、最大本数を確認します。 |
| 平均建値 | 複数ポジションの平均価格です。 | 決済基準に使うかを確認します。 |
| 決済管理 | バスケット決済、TP/SL、建値、トレーリングなどです。 | 追加条件と競合しないか確認します。 |
| リスク制御 | 証拠金、最大損失、停止条件などです。 | 追加停止と決済継続を分けて整理します。 |
| ログ・通知 | 追加理由、停止理由、決済理由を記録します。 | 検証時に確認したい項目を整理します。 |
追加条件を改修したい場合
追加条件とは、どのタイミングで次のナンピンポジションを追加するかを決める条件です。
追加条件には、価格が一定幅逆行した時、一定時間が経過した時、特定のシグナルが出た時、含み損が一定以上になった時、スプレッドが許容範囲内の時など、複数の要素があります。
| 追加条件 | 内容 | 依頼前の注意点 |
|---|---|---|
| 価格幅 | 前回ポジションや初回価格から一定距離で追加します。 | pips、point、価格差、GOLD / XAUUSDの単位を確認します。 |
| 時間間隔 | 前回追加から一定時間経過後に許可します。 | 秒、分、バー数のどれを使うか確認します。 |
| シグナル条件 | インジケーターや内部判定で追加します。 | 初回エントリー条件と同じか別条件かを確認します。 |
| 含み損条件 | 含み損や損益金額を基準に追加します。 | 通貨建て、pips換算、全体損益を分けます。 |
| スプレッド条件 | スプレッドが広い時は追加しない条件です。 | spread_pointsやspread_blockログを確認します。 |
| 時間帯条件 | 特定時間帯は追加を許可または停止します。 | サーバー時間基準か日本時間基準か確認します。 |
追加条件を改修する場合は、どの条件をAND条件にするのか、OR条件にするのか、どの条件を優先するのかを整理してください。
ナンピン幅を整理する
ナンピン幅とは、追加エントリーを行う価格間隔です。
ナンピン幅には、すべて同じ幅で追加する方式、段階ごとに幅を広げる方式、ATRなどの値幅に応じて変える方式があります。
| 幅の方式 | 内容 | 依頼前の確認ポイント |
|---|---|---|
| 固定幅 | 毎回同じ価格幅で追加します。 | 幅の単位と基準価格を確認します。 |
| 段階式 | 1本目、2本目、3本目で幅を変えます。 | 各段階の幅を表にします。 |
| 可変式 | 相場状況に応じて幅を変えます。 | どの指標や条件で変えるか確認します。 |
| ATR連動 | ATRなどの値幅を基準にします。 | 時間足、期間、倍率、上限下限を確認します。 |
| 前回建値基準 | 最後のポジションからの距離で追加します。 | 初回価格基準か前回価格基準か確認します。 |
| 平均建値基準 | 平均建値からの距離で条件を見ます。 | 複数ポジション時の計算方法を確認します。 |
ナンピン幅を伝える時は、「何pips」だけではなく、point、価格差、対象銘柄、基準価格をセットで整理してください。
ロット倍率を整理する
ロット倍率とは、追加エントリーごとにロットをどのように増減させるかを決めるルールです。
ロット倍率を改修する場合は、初期ロット、追加ロット、倍率、最大ロット、ロット丸め、口座タイプ、最小ロット、ロットステップを確認します。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 初期ロット | 最初のポジションのロットです。 | 追加ロットの基準にするか確認します。 |
| 倍率 | 追加ごとに何倍にするかです。 | 倍率の推奨ではなく、仕様として整理します。 |
| 固定加算 | 毎回一定ロットを加算する方式です。 | 倍率方式と混同しないよう確認します。 |
| 最大ロット | 1ポジションあたりの上限です。 | 安全装置として必要かを確認します。 |
| 総ロット上限 | 保有ポジション合計ロットの上限です。 | 最大本数とあわせて確認します。 |
| ロット丸め | ブローカーのロット刻みに合わせる処理です。 | vol_min、vol_step、vol_maxを確認します。 |
| 口座タイプ | スタンダード、ゼロ、セントなどです。 | 同じ数値でも意味が変わる場合があります。 |
この記事では、特定の倍率やロットを推奨しません。依頼時には、現在の計算式、変更したい計算式、上限、口座条件を分けて伝えることが重要です。
最大本数を整理する
最大本数とは、ナンピンで保有できる追加ポジション数の上限です。
最大本数は、方向別、ロジック別、銘柄別、Magic Number別、口座全体で分けて考える必要があります。
| 上限の種類 | 内容 | 依頼前の確認ポイント |
|---|---|---|
| 方向別上限 | BUY側、SELL側で別々に上限を持ちます。 | 両建て可否とあわせて確認します。 |
| ロジック別上限 | Logic1、Logic2などで上限を分けます。 | Magic Numberやコメントで識別するか確認します。 |
| 銘柄別上限 | GOLD、USDJPYなど銘柄ごとに上限を持ちます。 | チャート銘柄のみか複数銘柄か確認します。 |
| Magic Number別上限 | EAごとの識別番号で上限を分けます。 | 他EAや手動ポジションを含めないよう確認します。 |
| 口座全体上限 | 口座全体の保有数や総ロットを制限します。 | 複数EA運用時に確認が必要です。 |
| 追加回数上限 | 初回を除いた追加回数の上限です。 | 最大ポジション数と表記がずれる場合があります。 |
「最大本数」を依頼する場合は、初回ポジションを含むのか、追加ポジションだけを数えるのかを明確にしてください。
停止条件を整理する
ナンピンEAでは、停止条件の整理が特に重要です。
停止条件には、新規エントリーを止める条件、追加エントリーだけを止める条件、既存ポジションの決済管理は続ける条件があります。
| 停止区分 | 内容 | 依頼前の確認ポイント |
|---|---|---|
| 新規停止 | 初回エントリーを止めます。 | 既存ポジション管理は続けるか確認します。 |
| 追加停止 | ナンピン追加だけを止めます。 | 決済、建値、トレーリングは続けるか確認します。 |
| 時間停止 | 特定時間帯や週末前に止めます。 | サーバー時間基準か確認します。 |
| スプレッド停止 | スプレッドが広い時に止めます。 | 新規のみか追加も止めるか確認します。 |
| 証拠金停止 | 証拠金維持率や余剰証拠金で止めます。 | 何を止めるかを分けて確認します。 |
| 最大損失停止 | 含み損や口座損益で停止します。 | 決済するのか、追加停止だけかを確認します。 |
| 経済指標停止 | 指標前後に止めます。 | 対象通貨、前後時間、既存管理の扱いを確認します。 |
停止条件を依頼する場合は、「EAを止める」のではなく、「初回を止める」「追加を止める」「決済管理は続ける」など、機能単位で整理してください。
平均建値と決済条件を整理する
ナンピンEAでは、複数ポジションの平均建値を基準に決済することがあります。
平均建値を使う場合は、BUYとSELLを分けるのか、ロジック別に分けるのか、手数料やスワップを含めるのか、どの価格を基準にTPを置くのかを整理します。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 平均建値の対象 | どのポジションを平均に含めるかです。 | Magic Number、方向、ロジックを確認します。 |
| BUY / SELL分離 | 方向別に平均建値を計算します。 | 両建て時の扱いを確認します。 |
| バスケットTP | 複数ポジション全体で利益確定します。 | 金額、価格差、pointなどの単位を確認します。 |
| バスケットSL | 複数ポジション全体で損切りします。 | 内部決済か口座側SLかを確認します。 |
| 建値決済 | 平均建値付近で決済します。 | 手数料、スプレッド、微益幅を確認します。 |
| 一括決済 | 対象ポジションをまとめて決済します。 | 一部失敗時の処理を確認します。 |
ナンピンEAの決済条件を改修する場合は、追加条件だけでなく、平均建値、バスケット決済、建値、トレーリング、ロスカット条件との関係も確認してください。
ナンピン停止と決済継続を分ける
ナンピンEAでは、追加エントリーを止めることと、保有中ポジションを管理することは別です。
たとえば、スプレッドが広い時に追加エントリーを止めても、既存ポジションの決済、建値移動、トレーリング、ロスカット監視は続けたい場合があります。
| 機能 | 止めるかどうか | 確認すること |
|---|---|---|
| 初回エントリー | 停止対象になりやすい | 新規だけ止めるか確認します。 |
| 追加エントリー | 個別に停止条件を持たせる場合があります。 | スプレッド、時間、証拠金で止めるか確認します。 |
| 平均建値計算 | 通常は継続確認が必要です。 | 保有中の状態管理に使います。 |
| 決済処理 | 止めるとリスクが変わる場合があります。 | 停止中も決済は続けるか確認します。 |
| 建値・トレーリング | 継続するか確認が必要です。 | 追加停止中でも保護処理を続けるか確認します。 |
| 通知・ログ | 継続するのが望ましい場合があります。 | 停止理由や決済理由を確認します。 |
依頼時には、「停止条件に該当した時に何を止めるのか」「何は続けるのか」を明確にしてください。
対象ポジションを明確にする
ナンピンEA改修では、どのポジションを対象にするかを明確にする必要があります。
同じ口座で複数EAを動かしている場合や、手動ポジション、コピーEA、複数ロジックEAがある場合は、対象の確認が重要です。
| 対象条件 | 確認内容 | 注意点 |
|---|---|---|
| 銘柄 | チャート銘柄だけか、複数銘柄かです。 | Symbol指定を確認します。 |
| Magic Number | どのEAのポジションかを識別します。 | 他EAや手動ポジションを含めないよう確認します。 |
| 方向 | BUY、SELL、両方のどれかです。 | 方向別にナンピン条件が異なる場合があります。 |
| ロジック番号 | 複数ロジックEAの内部分類です。 | Logic1、Logic2などを分けるか確認します。 |
| コメント | 注文コメントで識別する場合があります。 | ブローカーやコピーEAで変わる可能性があります。 |
| 手動ポジション | 裁量で入れたポジションです。 | ナンピン対象に含めるかを明確にします。 |
ログで確認したい項目
ナンピンEA改修では、追加条件が成立したのか、条件未成立で見送ったのか、停止条件でブロックされたのかをログで確認できることが重要です。
| ログ項目 | 確認内容 | 例 |
|---|---|---|
| nanpin_check | 追加条件の判定を行ったか確認します。 | nanpin_check=Y |
| add_condition | 追加条件が成立した理由を確認します。 | distance_ok、time_ok、signal_ok |
| skip_reason | 追加を見送った理由を確認します。 | spread_block、max_count、margin_block |
| lot_calc | 追加ロット計算を確認します。 | first_lot、multiplier、next_lot |
| position_count | 現在の保有数を確認します。 | buy_count、sell_count、total_count |
| avg_price | 平均建値を確認します。 | basket_avg、buy_avg、sell_avg |
| stop_reason | 停止条件を確認します。 | time_stop、margin_stop、news_stop |
| order_result | 追加注文の結果を確認します。 | order_success、order_fail、retcode |
「ナンピンしない」という相談では、追加条件が未成立なのか、最大本数で止まっているのか、スプレッドや証拠金でブロックされているのか、注文に失敗しているのかを分けて確認します。
バックテストで確認すること
ナンピンEAを改修した場合は、改修前後でバックテスト条件をそろえて確認することが重要です。
ただし、バックテスト結果は将来の結果を保証するものではありません。ここで確認するのは、追加条件、ロット計算、最大本数、停止条件、決済条件が仕様どおり動いているかどうかです。
| 確認項目 | 内容 | 注意点 |
|---|---|---|
| EAバージョン | 改修前後のバージョンを記録します。 | 比較できるように分けて保存します。 |
| setファイル | 同じ設定で比較します。 | 変更したパラメータを記録します。 |
| 銘柄・時間足 | 同じ銘柄と時間足で確認します。 | GOLD / XAUUSDではpointやdigitsも確認します。 |
| 検証期間 | 同じ期間で比較します。 | 相場期間の違いを混ぜないようにします。 |
| 最大本数 | 設定した上限で止まるか確認します。 | 初回を含むか除くかを確認します。 |
| 総ロット | 倍率や追加ロットの合計を確認します。 | ロット丸めも確認します。 |
| 最大DD | 資金の落ち込みを確認します。 | 利益だけで判断しないようにします。 |
| 停止条件 | 時間、スプレッド、証拠金などで止まるか確認します。 | 追加停止と決済継続を分けます。 |
| ログ | 追加理由、停止理由、決済理由を確認します。 | nanpin_check、skip_reasonを確認します。 |
パネル・ボタン・チャート表示を変更する場合
EAのパネル表示改修とは
EAのパネル表示改修とは、チャート上に表示されるボタン、ラベル、ステータス、数値、説明文、背景、枠線などを変更する作業です。
パネルには、見るだけの表示と、クリックして操作するボタンがあります。表示系と操作系を分けて整理しないと、見た目の変更がEAの動作に影響する場合があります。
| 改修対象 | 内容 | 注意点 |
|---|---|---|
| 表示ラベル | 状態や数値を表示します。 | 表示だけで売買判定を変えないか確認します。 |
| 操作ボタン | クリックで処理を実行します。 | 押下条件、実行結果、ログが必要です。 |
| 背景パネル | ボタンや文字の背景です。 | チャートや他オブジェクトと重ならないようにします。 |
| ステータス表示 | 稼働中、停止中、エラーなどを示します。 | runtime状態とinput初期値を混同しないようにします。 |
| 警告表示 | 認証失敗、スプレッドブロック、時間停止などを示します。 | ログと一致する表示にします。 |
| ヘルプ表示 | 操作方法や注意点を表示します。 | 長すぎる表示でパネルを圧迫しないようにします。 |
依頼前には、パネルを「見やすくしたい」のか、「操作しやすくしたい」のか、「誤操作を防ぎたい」のか、「状態確認を強化したい」のかを分けて整理してください。
表示系と判定系を分けて考える
パネル改修で重要なのは、表示系と判定系を混同しないことです。
表示系は、現在の状態や設定値をチャート上に見せる役割です。判定系は、エントリー、決済、リスク制御、停止条件などのEA内部処理です。
| 区分 | 役割 | 依頼前に整理すること |
|---|---|---|
| 表示系 | 状態、数値、説明を表示します。 | 何を表示するか、どの頻度で更新するかを確認します。 |
| 操作系 | ボタン押下で処理を実行します。 | 何を実行するか、押せる条件を確認します。 |
| 判定系 | EA内部の売買・決済・停止判断です。 | パネル変更で判定を変えるかどうかを明確にします。 |
| ログ系 | 操作や状態を記録します。 | 表示内容とログ内容を一致させます。 |
| 通知系 | 外部へ通知します。 | パネル操作を通知するかを確認します。 |
| 管理系 | オブジェクト作成、更新、削除を管理します。 | EA削除時や時間足変更時の挙動を確認します。 |
たとえば、パネル上で「停止中」と表示しているのに、実際にはEAが注文できる状態だと危険です。表示状態と内部状態が一致するように仕様を整理します。
表示項目を整理する
パネルに表示する情報は、必要なものに絞ることが重要です。
情報を増やしすぎると見づらくなり、重要な状態が埋もれてしまいます。逆に、必要な情報が不足すると、現在のEA状態を判断しにくくなります。
| 表示項目 | 内容 | 依頼前の確認ポイント |
|---|---|---|
| EA名・バージョン | どのEAかを識別します。 | 複数EA運用時に見分けられるようにします。 |
| 稼働状態 | 稼働中、停止中、認証NGなどです。 | 内部状態と一致させます。 |
| 自動売買状態 | 注文可能かどうかです。 | MT4/MT5側の許可状態も確認します。 |
| 保有ポジション | BUY / SELL数、ロット、損益などです。 | 対象Magic Numberや銘柄を確認します。 |
| スプレッド | 現在のスプレッドです。 | ブロック条件と表示単位を一致させます。 |
| 時間帯状態 | 稼働時間内か停止時間かです。 | サーバー時間基準か確認します。 |
| エラー状態 | 注文失敗、認証失敗、通信失敗などです。 | ログと照合できる表示にします。 |
| 操作ガイド | ボタンの意味や注意点です。 | 長くなりすぎないようにします。 |
表示項目は、「常に表示する項目」「詳細表示で見る項目」「ログで確認すればよい項目」に分けると整理しやすくなります。
ボタン操作を整理する
EAパネルのボタンは、押すだけで注文、決済、停止、設定反映などが実行される場合があります。
そのため、ボタンごとに、押した時に何をするのか、どの状態なら押せるのか、実行後に表示をどう変えるのかを明確にします。
| ボタン例 | 主な役割 | 依頼前の確認ポイント |
|---|---|---|
| BUYボタン | 手動でBUY注文を出します。 | ロット、Magic Number、注文許可、二重クリック防止を確認します。 |
| SELLボタン | 手動でSELL注文を出します。 | BUYと同じ仕様か、方向別に違うか確認します。 |
| CLOSEボタン | 対象ポジションを決済します。 | 対象銘柄、Magic Number、方向、手動ポジションの扱いを確認します。 |
| STOPボタン | 新規エントリーや追加エントリーを止めます。 | 何を止め、何を継続するかを確認します。 |
| RESETボタン | 表示や一部状態を初期化します。 | EA内部状態まで初期化するかを確認します。 |
| APPLYボタン | パネル上の設定を反映します。 | input初期値ではなくruntime値として扱うか確認します。 |
| DETAILボタン | 詳細表示を開閉します。 | 表示だけの変更か、内部状態に影響するか確認します。 |
ボタン操作は、manual処理として扱い、自動エントリーや自動決済の判定と混同しないようにします。
表示位置とサイズを整理する
パネル表示では、位置とサイズの整理も重要です。
チャート左上、右上、左下、右下のどこに表示するか、他のインジケーターやEAの表示と重ならないか、画面サイズが変わった時にどうするかを確認します。
| 確認項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 表示位置 | 左上、右上、左下、右下などです。 | 他の表示物と重ならないか確認します。 |
| 横幅 | パネルの幅です。 | 文字が折り返されるか確認します。 |
| 高さ | パネルの縦幅です。 | ボタン数や表示項目に合わせます。 |
| 余白 | 文字やボタンの間隔です。 | クリックしやすさと見やすさを確認します。 |
| ボタンサイズ | クリック範囲です。 | 小さすぎると誤操作や押しにくさにつながります。 |
| フォントサイズ | 文字の大きさです。 | 高DPI環境や小さいチャートで確認します。 |
| 複数チャート | 同じEAを複数チャートで使う場合です。 | オブジェクト名の衝突を避ける必要があります。 |
表示位置を依頼する場合は、スクリーンショットに希望位置を示すと確認しやすくなります。
誤操作防止を整理する
パネルEAでは、誤ってボタンを押すことで注文や決済が実行される可能性があります。
そのため、重要なボタンには誤操作防止の仕組みを検討します。
| 誤操作防止 | 内容 | 確認すること |
|---|---|---|
| 確認ボタン | 1回目で確認、2回目で実行する方式です。 | 確認状態の有効時間を決めます。 |
| ロック機能 | 操作ボタンを一時的に無効化します。 | 解除方法と表示状態を確認します。 |
| 二重クリック防止 | 短時間の連続クリックを無視します。 | 何秒以内を無効にするか確認します。 |
| 色分け | 危険操作と通常操作を色で分けます。 | 見た目だけでなくログと一致させます。 |
| 状態別無効化 | 条件が整わない時は押せないようにします。 | 注文不可、保有なし、認証NGなどを確認します。 |
| 実行前ログ | 押下時点の状態をログに残します。 | 誤操作や不具合確認に使います。 |
| 実行後表示 | 成功・失敗をパネル上に表示します。 | 押したのに反応しない状態を避けます。 |
誤操作防止は、見た目の工夫だけでなく、実行条件、ロック、ログ、状態表示をセットで整理します。
手動操作と自動処理を分ける
パネルEAでは、手動ボタン操作とEA内部の自動処理が同じポジションを対象にする場合があります。
たとえば、手動CLOSEボタンで決済しようとしている時に、EA側の自動決済も同時に動くと、処理が競合する可能性があります。
| 区分 | 内容 | 依頼前の確認ポイント |
|---|---|---|
| 手動エントリー | ボタン操作で注文を出します。 | 自動エントリーと同じMagic Numberを使うか確認します。 |
| 手動決済 | ボタン操作で決済します。 | 自動決済と競合しないようにします。 |
| 自動エントリー | EA内部の条件で注文します。 | 手動操作中に停止するか確認します。 |
| 自動決済 | TP/SL、建値、トレーリングなどで決済します。 | 手動決済後の状態更新を確認します。 |
| 外部停止 | ボタンや外部制御で停止します。 | 新規停止、追加停止、決済継続を分けます。 |
| 状態更新 | 保有数や損益をパネルへ反映します。 | 決済後に表示が残らないようにします。 |
手動操作を追加する場合は、manual処理としてログに残し、自動処理との優先順位や競合回避を整理してください。
ログで確認したい項目
パネル改修では、ボタンを押したかどうか、押した結果どうなったか、なぜ実行されなかったかをログで確認できることが重要です。
| ログ項目 | 確認内容 | 例 |
|---|---|---|
| button_click | どのボタンが押されたか確認します。 | button=BUY、button=CLOSE |
| ui_state | パネルの状態を確認します。 | locked、ready、disabled |
| action_request | ボタンから要求された処理です。 | manual_buy、manual_close、reset |
| action_result | 実行結果です。 | success、fail、skip |
| skip_reason | 実行しなかった理由です。 | auth_ng、trade_disabled、no_position |
| object_audit | チャートオブジェクトの状態確認です。 | created、updated、deleted、residual |
| layout_state | 表示位置やサイズの状態です。 | x、y、width、height |
| error_detail | エラー内容です。 | GetLastError、retcodeなど |
パネル操作の不具合では、「ボタンが反応しない」のか、「押されたが条件で見送った」のか、「処理に失敗した」のかをログで分けて確認します。
オブジェクト管理を整理する
EAのパネルは、チャート上のオブジェクトとして作成されることがあります。
ボタン、ラベル、背景、枠線などのオブジェクトは、EA起動時に作成し、稼働中に更新し、EA削除時に消す必要があります。
| 管理項目 | 内容 | 依頼前の注意点 |
|---|---|---|
| 作成 | EA起動時にパネル部品を作成します。 | 同じ名前のオブジェクトが重複しないようにします。 |
| 更新 | 状態や数値を更新します。 | 更新頻度が高すぎると重くなる場合があります。 |
| 削除 | EA削除時にパネルを消します。 | 不要なボタンやラベルを残さないようにします。 |
| 再描画 | 時間足変更やチャート変更時に表示を整えます。 | 表示ずれや重複作成を防ぎます。 |
| 名前空間 | オブジェクト名の接頭辞です。 | 複数EAや複数チャートで衝突しないようにします。 |
| 残骸確認 | 古いオブジェクトが残っていないか確認します。 | OBJECT_AUDITログがあると確認しやすくなります。 |
| 削除対象外 | 残したいラインや履歴表示です。 | 消すものと残すものを分けます。 |
EA削除後にボタンだけ残る、時間足変更で表示が重なる、複数チャートでオブジェクトが混ざる、といった問題を避けるために、オブジェクト管理は事前に整理してください。
表示更新の頻度を整理する
パネル表示は、毎Tick更新すればよいとは限りません。
更新頻度が高すぎると、チャートが重くなったり、表示がちらついたり、操作が遅くなったりする場合があります。
| 更新方式 | 内容 | 確認すること |
|---|---|---|
| OnTick更新 | 価格更新ごとに表示を更新します。 | 必要な項目だけに絞るか確認します。 |
| 一定間隔更新 | 数秒ごとに表示を更新します。 | 状態表示や損益表示に向いています。 |
| イベント更新 | 注文、決済、ボタン押下時に更新します。 | 無駄な再描画を減らせます。 |
| チャート変更時更新 | 時間足や銘柄変更時に再配置します。 | 表示ずれを確認します。 |
| 手動更新 | 更新ボタンで再描画します。 | パネルが崩れた時の復旧に使う場合があります。 |
| 詳細表示更新 | 詳細パネルを開いた時だけ更新します。 | 常時表示しない情報に向いています。 |
表示更新は、EA本体の売買判定や注文処理に影響しないように設計することが重要です。
検証時に確認すること
パネル改修後は、見た目だけでなく、操作、ログ、削除時の挙動まで確認します。
| 検証項目 | 内容 | 注意点 |
|---|---|---|
| 初期表示 | EA起動時にパネルが正しく表示されるか確認します。 | INITログと表示を照合します。 |
| ボタン押下 | 各ボタンが仕様どおり反応するか確認します。 | 成功時と失敗時の両方を確認します。 |
| 誤操作防止 | 二重クリックやロックが効くか確認します。 | 短時間連打や無効状態で試します。 |
| 表示更新 | 保有数、損益、状態が更新されるか確認します。 | 決済後に古い表示が残らないようにします。 |
| 時間足変更 | 時間足変更後も表示が崩れないか確認します。 | 再描画や重複作成を確認します。 |
| チャートサイズ変更 | 表示位置がずれないか確認します。 | 小さいチャートや拡大表示で確認します。 |
| EA削除 | 不要なボタンやラベルが残らないか確認します。 | 削除対象外オブジェクトも分けて確認します。 |
| ログ照合 | ボタン操作とログが一致するか確認します。 | button_click、action_resultを確認します。 |
パネル改修は、スクリーンショットだけでなく、操作ログやEA削除後のチャート状態も確認すると不具合を見つけやすくなります。
ログ出力・CSV・記録を追加する場合
EAのログ出力を増やす目的
EAのログ出力を増やす目的は、EAの挙動を後から確認できるようにすることです。
たとえば、EAが注文しない場合、エントリー条件が未成立なのか、スプレッドで止まったのか、時間帯で止まったのか、自動売買が許可されていないのか、証拠金不足なのかをログで分けて確認します。
| 確認したいこと | ログで見る内容 | 出力例 |
|---|---|---|
| EAが起動したか | 初期化、認証、設定読込の状態です。 | INIT_OK、AUTH_OK、PARAM_CHECK |
| 注文しなかった理由 | エントリー条件、スプレッド、時間帯、証拠金などです。 | entry_skip、spread_block、time_block |
| 注文結果 | 注文送信、約定、失敗、retcodeです。 | order_send、order_success、order_fail |
| 決済理由 | TP、SL、建値、トレーリング、手動決済などです。 | close_reason、trail_close、be_close |
| 通知結果 | 通知を送ったか、失敗したかです。 | notify_success、notify_fail |
| 外部連携結果 | WebRequest、CSV、Google Sheetsなどの状態です。 | external_status、http_status、csv_write |
依頼前には、「何を確認するためにログを増やしたいのか」を明確にしてください。
ExpertsログとJournalログの違い
EAのログ確認では、ExpertsログとJournalログを分けて見ることが重要です。
Expertsログは、EA側が出力する動作記録です。Journalログは、MT4/MT5側の操作、注文、接続、プラットフォーム状態を含む記録です。
| ログ種類 | 主な内容 | 確認に向いていること |
|---|---|---|
| Expertsログ | EAが出力するログです。 | EA内部の判定、見送り理由、注文処理、決済理由を確認します。 |
| Journalログ | MT4/MT5全体のログです。 | 取引許可、注文結果、接続状態、プラットフォーム側エラーを確認します。 |
| Strategy Testerログ | バックテスト時のログです。 | 検証条件、バックテスト時の判定、速度、エラーを確認します。 |
| CSVログ | EAがファイルに保存する構造化ログです。 | 履歴集計、Excel確認、長期検証に使います。 |
| 通知ログ | 通知送信の結果です。 | Discord、メール、外部送信の成功・失敗を確認します。 |
「EAが動かない」という相談では、Expertsログだけでなく、Journalログも必要になる場合があります。
どの処理にログを追加するか整理する
ログ出力を増やす場合は、EA全体に無差別にログを追加するのではなく、処理の責務ごとに分けて整理します。
signal、execution、risk、exit、notification、external control、manual、UI などを分けておくと、後から原因を追いやすくなります。
| ログ分類 | 確認内容 | 出力例 |
|---|---|---|
| signal | エントリー条件やシグナル判定です。 | signal_check、score、gate_result |
| execution | 注文送信や約定結果です。 | order_send、retcode、deal_ticket |
| risk | 証拠金、ロット、最大損失、停止条件です。 | margin_check、risk_block、lot_calc |
| exit | 決済、建値、トレーリング、一括決済です。 | close_reason、be_check、trail_modify |
| notification | 通知送信や送信失敗です。 | notify_event、send_result、http_status |
| external control | 外部シートやWebRequest制御です。 | external_status、sheet_read、apply_result |
| manual | ボタン操作や手動操作です。 | button_click、manual_close、action_result |
| UI | パネル表示やオブジェクト管理です。 | ui_state、object_audit、layout_state |
依頼時には、「注文しない理由を知りたい」「決済しない理由を知りたい」「通知失敗を知りたい」など、確認したい目的ごとにログ分類を整理してください。
ログレベルを整理する
ログ出力には、通常運用で見るログと、検証時だけ見る詳細ログがあります。
すべての詳細ログを常時出すと、ログが多くなりすぎて確認しづらくなります。そのため、ログレベルや出力モードを分けることが重要です。
| ログレベル | 内容 | 使いどころ |
|---|---|---|
| OFF | ログを最小限にします。 | 本番運用でログを抑えたい時に使います。 |
| ERROR | エラーや失敗だけ出します。 | 注文失敗、通信失敗、認証失敗の確認に使います。 |
| INFO | 主要な状態変化を出します。 | 起動、注文、決済、停止状態を確認します。 |
| DEBUG | 判定過程を詳しく出します。 | 開発中や不具合調査で使います。 |
| TRACE | 非常に細かい処理を出します。 | 短時間の再現検証に限定して使います。 |
| COMPACT | 重要項目だけ簡潔に出します。 | バックテストや長時間稼働で使いやすい形式です。 |
開発中は詳細ログ、本番運用ではコンパクトログというように、用途ごとに切り替えられる設計にすると扱いやすくなります。
CSV出力で整理すること
CSV出力は、ログや履歴を表形式で保存したい場合に使います。
Expertsログは確認しやすい一方で、長期集計やExcelでの分析には向かない場合があります。CSV出力を追加すると、取引履歴、判定結果、日次集計、エラー履歴などを後から整理しやすくなります。
| CSV項目 | 内容 | 依頼前の確認ポイント |
|---|---|---|
| 保存場所 | Filesフォルダや共通フォルダです。 | MT5のファイルアクセス範囲を確認します。 |
| ファイル名 | CSVの名前です。 | EA名、口座、日付、銘柄を含めるか確認します。 |
| 列構成 | 保存する項目です。 | time、symbol、event、ticket、profitなどを整理します。 |
| 追記方式 | 既存ファイルへ追記する方式です。 | ヘッダー重複やファイル肥大化に注意します。 |
| 日別分割 | 日付ごとにファイルを分けます。 | 長期運用時に確認しやすくなります。 |
| 文字コード | UTF-8などの保存形式です。 | 日本語やExcel表示の文字化けに注意します。 |
| 削除ルール | 古いCSVをどう扱うかです。 | 保存期間、上限容量、手動削除を確認します。 |
CSV出力を依頼する場合は、何を保存するかだけでなく、どの形式で、どの頻度で、どのくらい保存するかを整理してください。
通知ログで整理すること
Discord通知やメール通知を使うEAでは、通知が成功したか、失敗したかをログに残すことが重要です。
通知が届かない場合、EAが通知を送っていないのか、WebRequestが失敗したのか、外部サービス側で拒否されたのかを分けて確認する必要があります。
| 通知ログ項目 | 内容 | 出力例 |
|---|---|---|
| notify_event | 通知対象イベントです。 | ENTRY、CLOSE、ERROR、INIT |
| notify_target | 通知先です。 | DISCORD、MAIL、LOG_ONLY |
| send_result | 送信結果です。 | success、fail、skip |
| http_status | WebRequest結果です。 | 200、204、400、401、403、429 |
| error_detail | 失敗理由です。 | timeout、not_allowed、rate_limit |
| throttle_state | 連投防止で見送ったかです。 | duplicate_skip、interval_skip |
| masked_target | 通知先の識別情報です。 | Webhook URLはマスクします。 |
通知ログには、Webhook URLやトークンをそのまま出さないようにしてください。
ログを出しすぎるリスク
ログは不具合調査に役立ちますが、出しすぎると逆に問題になる場合があります。
特に、OnTickごとに詳細ログを出すEAでは、バックテストが遅くなったり、Expertsログがすぐに大量になったり、重要なエラーが見つけにくくなることがあります。
| リスク | 内容 | 対策 |
|---|---|---|
| ログ量が多すぎる | 重要な情報が埋もれます。 | ログレベルやカテゴリ別ON/OFFを用意します。 |
| バックテストが遅くなる | 出力処理が負荷になります。 | BT用のCOMPACTログを用意します。 |
| ファイルが肥大化する | CSVやテキストが増え続けます。 | 日別分割や保存上限を検討します。 |
| 機密情報が出る | 口座番号やトークンが漏れる可能性があります。 | マスク処理を入れます。 |
| 本番運用で見づらい | 通常運用に不要な詳細が多くなります。 | 開発・検証用設定と利用者向け設定で出力を分けます。 |
| 処理が重くなる | 描画や注文処理に影響する場合があります。 | 必要なイベントだけ出力します。 |
ログ出力を増やす場合は、検証に必要なログと、本番運用に残すログを分けて設計することが重要です。
機密情報をログに出さない
ログには、後から確認するための情報を残しますが、すべてをそのまま出してよいわけではありません。
口座番号、認証キー、APIキー、Webhook URL、Google Sheetsのトークン、外部URL、個人情報に近い内容は、ログへ出す場合にマスクが必要です。
| 情報 | 扱い | 例 |
|---|---|---|
| 口座番号 | 必要に応じて一部マスクします。 | 123****789 |
| Webhook URL | 原則そのまま出しません。 | https://…/**** |
| APIキー | 原則そのまま出しません。 | key=**** |
| トークン | 原則そのまま出しません。 | token=**** |
| メールアドレス | 必要に応じてマスクします。 | a***@example.com |
| 外部URL | 公開してよい範囲か確認します。 | ドメインのみ表示する場合があります。 |
| 注文情報 | 検証に必要な範囲で出します。 | ticket、symbol、lot、price |
問い合わせ時にログを共有する場合も、機密情報が含まれていないか確認してください。
ログ出力のON/OFFを整理する
ログ出力は、必要に応じてON/OFFできるようにしておくと便利です。
すべてのログを1つのON/OFFで管理するのではなく、カテゴリごとに切り替えられると、不具合調査や本番運用で使いやすくなります。
| 切替項目 | 内容 | 使いどころ |
|---|---|---|
| 基本ログ | 起動、停止、注文、決済などです。 | 通常運用でも確認したいログです。 |
| 判定ログ | エントリー条件やスコアです。 | 注文しない理由の確認に使います。 |
| リスクログ | 証拠金、ロット、停止条件です。 | ブロック理由の確認に使います。 |
| 決済ログ | TP、SL、BE、TRAIL、一括決済です。 | 決済しない理由の確認に使います。 |
| 通知ログ | Discordやメール送信の結果です。 | 通知不達の確認に使います。 |
| 外部連携ログ | WebRequestや外部シート連携です。 | 通信失敗や反映失敗の確認に使います。 |
| CSVログ | CSV保存の有無です。 | 履歴集計や検証記録に使います。 |
| 詳細ログ | 開発・調査用の細かいログです。 | 短時間の検証に限定します。 |
依頼前には、どのログを常時ONにしたいか、どのログは検証時だけONにしたいかを整理してください。
バックテスト用ログと実運用ログを分ける
バックテストでは、短時間に大量の判定が行われるため、ログを出しすぎると非常に重くなる場合があります。
そのため、バックテストでは要点だけを出すCOMPACTログ、本番運用ではエラーや主要イベントだけを出すログ、開発検証では詳細ログというように分けると扱いやすくなります。
| 環境 | 推奨されるログ方針 | 確認すること |
|---|---|---|
| 開発中 | 詳細ログを使います。 | 判定、注文、決済、エラーを追跡します。 |
| バックテスト | COMPACTログを使います。 | 速度低下とログ量を抑えます。 |
| デモ口座 | INFOとERROR中心にします。 | 実運用前の挙動を確認します。 |
| リアル口座 | 重要ログとエラーログ中心にします。 | ログ過多を避けます。 |
| 不具合調査時 | 一時的にDEBUGを有効化します。 | 再現条件を絞って確認します。 |
| 配布版 | 必要最小限にします。 | 利用者が読みやすいログにします。 |
ログ方針は、開発・検証用設定と利用者向け設定で分けておくと、開発・検証・配布時の混乱を防ぎやすくなります。
改修内容ごとに資料と確認結果を対応させる
改修内容が複数ある場合は、変更項目ごとに現在の動作、希望する動作、変更しない機能、確認に使う条件を並べてください。パラメータやsetの変更、決済条件、ナンピン、パネル、ログの追加を一つの依頼に含める場合でも、どの結果を何の資料で確認するかを分けておきます。
| 改修内容 | 用意する資料・確認結果 |
|---|---|
| 設定・パラメータ | 変更前後のset、項目名、変更理由、反映タイミング、保有ポジションの有無を整理します。 |
| 動作不具合 | EAの版、銘柄・時間足、発生時刻、再現手順、Experts・Journalログを対応させます。 |
| 決済処理 | 対象の銘柄・Magic・方向、決済理由、TP/SL変更結果、注文応答、取引履歴を確認します。 |
| ナンピン | 初回と追加の条件、幅、ロット、最大本数、停止後に継続する管理、平均建値を確認します。 |
| パネル・ボタン | 現在と希望の画面、チャートサイズ、操作手順、クリック後の状態、残ったオブジェクトを記録します。 |
| ログ・CSV | 現在のログと欲しい項目、サンプル出力、保存先・列順、出力頻度、秘密情報のマスクを整理します。 |
依頼前にまとめておくとよいチェックリスト
相談前には、次の項目を整理しておくと、確認がスムーズになります。
- 改修したいEAまたはインジケータの名称
- MT4用かMT5用か
- ソースファイルの有無
- includeファイルの有無
- 現在使用しているsetファイル
- 現在の動作内容
- 困っている症状
- 変更したい内容
- 発生しているエラー内容
- Expertsログ・Journalログ
- 使用している銘柄・時間足
- デモ口座・リアル口座・VPSなどの環境
- 改修後に確認したい動作
すべてを完璧に整理する必要はありませんが、分かる範囲でまとめておくことで、調査の初期段階を進めやすくなります。
改修相談時の文章例
問い合わせ時は、次のように整理して書くと伝わりやすくなります。
【対象】
MT5用EAの改修相談です。
【現在の状態】
GOLD M15で使用しています。
ソースファイル mq5 と set ファイルがあります。
【困っていること】
時間足変更後にパネル表示が崩れることがあります。
Expertsログには〇〇というエラーが出ています。
【希望する改修】
パネル表示を安定させたいです。
可能であれば、起動時に現在の設定状態をログへ出すようにしたいです。
【添付できるもの】
mq5ファイル、setファイル、Expertsログ、表示崩れ時のスクリーンショットがあります。
このように、対象・現在の状態・困っていること・希望する改修・添付できるものを分けると、確認しやすくなります。
追加・移行する機能についてよくある質問
ex5ファイルだけでもパラメータ変更できますか?
Inputsの値を変更するだけであればsetファイル上で対応できる場合があります。ただし、内部ロジックや項目追加・削除などの改修は、原則としてmq5ソースコードが必要です。
注文エラーの場合はExpertsログだけでよいですか?
注文エラーでは、Expertsログに加えてJournalログも重要です。ロット、証拠金、取引時間、銘柄の取引可否、サーバー応答を確認します。
EAのエントリーはそのままで決済だけ改修できますか?
ソースコードがあり、EA内部の構造上分離できる場合は相談できます。ただし、決済処理がエントリー、リスク制御、ポジション管理と強く結びついている場合は、周辺処理の確認も必要です。
建値機能を追加する時は何を決めればよいですか?
BE開始条件、SLの移動先、対象ポジション、BUY / SELL方向、手数料やスプレッドを考慮するか、1回だけ実行するかを整理します。
ナンピンEAの追加条件だけを改修できますか?
ソースコードがあり、EA内部の構造上分離できる場合は相談できます。ただし、追加条件はロット計算、最大本数、平均建値、決済条件、停止条件と関係するため、周辺処理の確認も必要です。
最大本数は初回ポジションを含みますか?
EA仕様によって異なります。依頼前には、初回を含む最大ポジション数なのか、追加エントリー回数の上限なのかを明確にしてください。
EAのパネル表示だけを改修できますか?
ソースコードがあり、表示系がEA内部で分離されていれば相談できます。ただし、ボタン操作や状態表示が売買処理と結びついている場合は、周辺処理の確認も必要です。
ボタンを押したのに反応しない場合は何を確認しますか?
ボタン押下イベントが拾えているか、押せる状態だったか、処理が見送られたか、実行に失敗したかをログで確認します。
EAのログ出力だけを増やせますか?
ソースコードがあり、出力したい処理箇所が確認できる場合は相談できます。ただし、ログを増やしすぎると重くなったり確認しづらくなったりするため、出力目的とログ量を整理する必要があります。
ログが多すぎる場合はどうすればよいですか?
ログレベル、カテゴリ別ON/OFF、COMPACTログ、出力間隔、イベント時のみ出力などを使って、必要なログだけを出す設計にします。
関連ページ
相談内容に関係する設定や検証方法は、次のページで確認できます。
| 確認する内容 | 関連ページ |
|---|---|
| MT5 Discord通知が届かない時の完全ガイド | MT5 Discord通知が届かない時の完全ガイド|Webhook・WebRequest・ログ確認 |
| MT5 EAのsetファイルを送る前に確認すること | MT5 EAのsetファイルを送る前に確認すること|設定・機密情報・ログ整理 |
| MT5でバックテスト結果を相談する前に整理すること | MT5でバックテスト結果を相談する前に整理すること |
| MT5 EAが動かない時のトラブル完全ガイド | MT5 EAが動かない時のトラブル完全ガイド|エントリー・決済・注文エラーの確認順 |
| EA・インジケーター開発を依頼する前に | EA・インジケーター開発を依頼する前に|MT5新規開発・既存改修・外部連携の選び方 |
| MQL5のコンパイルエラー修正を依頼する前に確認すること | MQL5のコンパイルエラー修正を依頼する前に確認すること|エラー行・include・BOM |
| EAに外部シート連携を追加したい時に整理すること | EAに外部シート連携を追加したい時に整理すること|Google Sheets・CSV・WebRequest |
相談先・利用条件を確認する
| 確認したい内容 | 案内ページ |
|---|---|
| 見積依頼前の確認事項 | 見積依頼前の確認事項 |
| 購入前確認事項 | 購入前確認事項 |
| サポート方針 | サポート方針 |
| EAファンクラブ 総合お問い合わせ | EAファンクラブ 総合お問い合わせ |
補足して確認したいページ
主題に関連する確認ページです。必要な項目だけ参照してください。
| 確認目的 | 関連ページ |
|---|---|
| 「EA インジケーター 改修依頼」の読後に「MT5でEAの動作確認を依頼する前に整理すること」を補足確認 / 本文の主題から該当する専門確認 | MT5でEAの動作確認を依頼する前に整理すること |
| 「EA インジケーター 改修依頼」の読後に「MT4 EAをMT5へ移行・作り直す前に確認すること」を補足確認 | MT4 EAをMT5へ移行・作り直す前に確認すること |
| 「EA インジケーター 改修依頼」の読後に「ex5ファイルしかないEAは改修できる」を補足確認 | ex5ファイルしかないEAは改修できる |
まとめ
既存EAやインジケータの改修では、希望内容だけでなく、現在のファイル構成、ログ、症状、確認環境を整理しておくことが重要です。
特に、売買動作に関わるEAの改修では、エントリー、決済、ロット、ナンピン、マジックナンバー、外部連携などの影響範囲を確認する必要があります。
改修相談を行う前に、ソースファイル、setファイル、ログ、スクリーンショット、希望仕様を整理しておくと、調査や見積もりが進めやすくなります。
関連ページ
お問い合わせはEAFC公式LINEへ
EAFCサイト内の記事、商品、導入前確認、設定確認、ログ確認、開発依頼前のご相談など、各種お問い合わせはEAFC公式LINEより受け付けています。
※投資助言、売買指示、利益保証、推奨ロット、推奨銘柄の案内は行っておりません。
口座番号、認証情報、Webhook URL、GAS URL、APIキーなどの機密情報は送信しないでください。
