Google Sheets連携ツールを使う前に確認すること
本記事は、MT4/MT5・MQL4/MQL5・EA・インジケータに関する技術情報・一般的な運用知識を解説するものです。特定の金融商品の売買、投資判断、利益獲得を推奨・保証するものではありません。
Google Sheets連携ツールを使う前に確認すること
- MT5側のWebRequest許可URLと実際の通信担当を確認する
- GASのデプロイURL・アクセス権・実行主体を確認する
- シート名・列名・対象行・値の型をそろえる
- 取得失敗と取得後に反映されない状態を分けてログで確認する
MT5のEAやインジケータでは、取引履歴、稼働状態、通知履歴、エラー情報、検証記録などをGoogle Sheetsへ記録したり、Google Sheets側の設定値をMT5へ読み込んだりする構成があります。
Google Sheets連携は便利ですが、MT5側だけで完結する機能ではありません。MT5のWebRequest設定、Google Apps ScriptのURL、シートの共有権限、シート構造、EAやインジケータ側の入力項目、Expertsログなど、複数の確認点があります。
この記事では、Google Sheets連携ツールを使う前に確認したい項目を、導入前チェックと不具合確認の観点から整理します。
Google Sheets連携でできること
MT5とGoogle Sheetsを連携すると、EAやインジケータの情報を外部シートへ記録したり、シート側の設定値を読み取ったりできる場合があります。
代表的な用途は以下です。
- EAの稼働状態を記録する
- 注文・決済・通知履歴を記録する
- 損益やポジション情報を集計する
- エラーや停止理由を残す
- 外部シート上のON/OFF設定を読み込む
- 運用記録や検証メモを整理する
ただし、Google Sheets連携は、利益や損失回避を保証するものではありません。あくまで記録、確認、通知、設定管理を補助するための仕組みです。
連携方式を確認する
Google Sheets連携には、いくつかの方式があります。
使用するツールによって、Google Apps Scriptを使う場合、CSV公開URLを読む場合、WebアプリURLへ送信する場合などがあります。
| 方式 | 主な用途 | 確認すること |
|---|---|---|
| GAS Webアプリへ送信 | MT5からSheetsへ記録を書き込む | GAS URL、デプロイ状態、アクセス権限 |
| CSV公開URLを取得 | Sheets側の設定値をMT5で読み込む | 公開URL、列構造、文字コード、空データ |
| Webhook風のURL連携 | 外部通知や状態記録 | URL、パラメータ、レスポンス、ログ |
| 手動CSV出力 | 検証記録や履歴保存 | 保存先、列名、取り込み形式 |
最初に、使用するGoogle Sheets連携ツールが「書き込み型」なのか「読み込み型」なのか、またはその両方なのかを確認してください。
公開URL・CSV・JSON等の読込方法
外部シート設定をEAに反映する方式には、いくつかの種類があります。
代表的な方式は以下です。
| 方式 | 内容 | 確認すること |
|---|---|---|
| GAS経由 | Google Apps Scriptを経由して設定を取得する | デプロイURL、権限、レスポンス形式 |
| CSV公開URL | Google SheetsをCSV形式で取得する | 公開設定、列構造、文字コード |
| 固定URL取得 | 指定URLから設定ファイルを取得する | URL、通信結果、更新タイミング |
| ローカルファイル | MT5のFilesフォルダ等から読み込む | 保存先、ファイル名、更新手順 |
読み込み方式によって、確認するログやエラー原因が変わります。導入前に、EAがどの方式で外部設定を取得するのか確認してください。
MT5側のWebRequest設定を確認する
MT5からGoogle SheetsやGoogle Apps Scriptへ通信する場合、WebRequest設定が必要になることがあります。
確認する項目は以下です。
- MT5でWebRequestが許可されているか
- GAS URLまたはCSV公開URLが許可リストに登録されているか
- URLの前後に空白や改行が入っていないか
- テスト用URLと本番用URLを間違えていないか
- EAやインジケータ側の外部連携機能がONになっているか
- ExpertsログにWebRequestエラーが出ていないか
WebRequest設定が正しくない場合、Google Sheets側が正常でも、MT5から通信できません。
取得失敗時のWebRequest設定
Google Sheets、GAS、CSV公開URLなどから設定値を取得する場合、MT5側のWebRequest設定が必要になることがあります。
確認する項目は以下です。
- MT5でWebRequestが許可されているか
- 読み込み先URLを許可リストに登録しているか
- URLの先頭が正しいか
- http と https を間違えていないか
- URLの前後に空白や改行が入っていないか
- VPS側のMT5にも同じWebRequest設定が入っているか
WebRequestが許可されていない場合、EA側の外部シート機能をONにしていても、MT5側で通信が止まることがあります。
MQL5のWebRequest制約も確認する
MQL5のWebRequest()は、直接呼び出す場合はEAまたはスクリプトで使用する関数です。インジケーターから直接呼び出すことはできず、Strategy Testerでも実行されません。インジケーター表示とGoogle Sheets連携を組み合わせている場合は、どのEA・スクリプト・外部処理が通信を担当しているかを分けて確認してください。
Apps ScriptをWebアプリとして使う構成では、デプロイURLだけでなく、誰として実行するか、誰がアクセスできるかという設定も通信可否に影響します。URLだけを比較して問題なしと判断しないようにします。
GAS URLとデプロイ状態を確認する
Google Apps Scriptを使う連携では、GASをWebアプリとしてデプロイし、そのURLをMT5側へ設定することがあります。
この場合、確認したい項目は以下です。
- GASがWebアプリとしてデプロイされているか
- 現在使っているURLが最新のデプロイURLか
- GASを編集した後に再デプロイしているか
- アクセス権限が外部からの通信を許可する状態か
- テスト用GASと本番用GASを間違えていないか
- 古いURLをMT5側に残したままになっていないか
GASを修正しても、デプロイ内容が更新されていない場合、MT5から見ると古い処理が動いているように見えることがあります。
外部連携全体の確認順
Google Sheets連携が反映されない場合、GAS URL、シート権限、列構成だけでなく、MT5側のWebRequest設定やVPS側の設定も確認対象になります。外部連携全体の確認順もあわせて確認してください。
GAS・CSVの取得先URL
外部シートの取得先URLが変わっている場合、EAは古いURLを読み続けている可能性があります。
Google Apps Scriptを使っている場合は、GASの再デプロイ漏れや、古いデプロイURLを使っているケースがあります。
確認する項目は以下です。
- EAに設定しているURLが最新か
- GASをWebアプリとしてデプロイしているか
- GAS修正後に再デプロイしているか
- CSV公開URLが有効か
- シートの公開設定や共有権限が変わっていないか
- テスト用URLと本番用URLを混同していないか
外部シート側を更新しても、EAが参照しているURLが古いままだと、変更内容は反映されません。
シートの共有権限を確認する
Google Sheets連携では、シート側の権限も確認対象になります。
特に、MT5から設定値を読み取る場合や、GAS経由で書き込む場合は、外部からアクセスできる状態になっているかを確認する必要があります。
| 確認項目 | 内容 |
|---|---|
| 共有設定 | 外部から読み取り・書き込みできる構成か |
| GASの実行権限 | 想定したアカウント権限で実行されるか |
| シート保護 | 書き込み対象セルや列が保護されていないか |
| シート名 | EA側・GAS側が参照するシート名と一致しているか |
| 列構造 | EA側が想定している列名・順番と一致しているか |
シート名や列名を変更した場合、EAやGAS側の参照先と合わなくなることがあります。
外部設定に含めない情報
外部シートには、EAの設定値や外部連携URL、通知設定などが含まれる場合があります。
共有設定やURL管理には注意が必要です。
- シートの共有範囲を確認する
- 編集できる人を限定する
- Webhook URLやAPIキーをそのまま記載しない
- 口座番号や個人情報を不要に記載しない
- 変更履歴を確認できるようにする
- 誤編集を防ぐために保護範囲を設定する
外部シートは便利ですが、共有範囲や編集権限を誤ると、意図しない設定変更や情報漏えいにつながる場合があります。
シート構造を確認する
Google Sheets連携では、シートの見た目だけでなく、EAやGASが読み書きする列構造が重要です。
確認すべき項目は以下です。
- 必要なシートタブが存在しているか
- シート名が仕様と一致しているか
- ヘッダー行が削除されていないか
- 列の順番を変更していないか
- 必須列が空欄になっていないか
- 数値列に文字列が入っていないか
- 日時形式が想定どおりか
- 空行や結合セルが処理を妨げていないか
人が見やすいようにシートを編集した結果、EAやGAS側の処理が読み取れなくなることがあります。運用用シートでは、表示用の整形と、EAが読むデータ構造を分けて考えることが重要です。
シートで管理する設定項目
外部シート連携を使う前に、まず「どの設定を外部シートで管理するか」を決めます。
すべてのEA設定を外部化すると管理が複雑になり、逆に一部だけ外部化すると、MT5のInputs設定と外部シート設定のどちらが優先されるのか分かりにくくなる場合があります。
| 設定項目 | 確認すること |
|---|---|
| ON/OFF設定 | 機能停止、通知停止、記録停止などを外部管理するか |
| 時間設定 | 開始時刻、終了時刻、停止時間帯などを管理するか |
| 数値設定 | 上限値、間隔、許容値、表示更新周期などを管理するか |
| 対象シンボル | どの銘柄を対象にするかを外部指定するか |
| マジックナンバー | 対象EAやロジックを外部指定するか |
| 通知先 | Discord通知や記録先のON/OFFを管理するか |
外部シートは、EAの設定を整理するための補助です。外部シート上の値が利益や将来成績を保証するものではありません。
Inputsと読み込み後の値を区別する
外部シート設定を使う場合、MT5のInputs欄にある初期設定と、外部シートから読み込むruntime設定を分けて考える必要があります。
Inputs設定はEAをチャートに設置した時点の初期値として使われることが多く、外部シート設定は稼働中に読み込まれる更新値として使われます。
| 設定種別 | 役割 | 確認すること |
|---|---|---|
| Inputs初期値 | EA起動時の初期設定 | 外部シート未取得時の基準になるか |
| 外部シート値 | 稼働中に読み込む設定値 | どの項目を上書きするか |
| runtime状態 | 現在EA内部で使っている設定値 | ログや画面で確認できるか |
| 手動変更 | MT5上で変更した値 | 外部シート値とどちらを優先するか |
外部シート連携では、「初期値」「読み込み値」「現在反映中の値」を混同しないことが重要です。
設定シートの列構成
EAが外部シートを読み込む場合、シート構造や列名がEA側の仕様と一致している必要があります。
列名が変わったり、列順が変わったり、必要な列が空欄になったりすると、EA側で読み込みや解析に失敗する場合があります。
確認する項目は以下です。
- シート名が正しいか
- ヘッダー行があるか
- 列名が仕様と一致しているか
- 必須列が空欄ではないか
- 対象EAや対象口座を識別する列があるか
- 設定値の型が統一されているか
- 不要な空白や改行が入っていないか
外部シートを人が編集する場合、表記揺れや空欄が発生しやすくなります。EA側で読み込む列と、運用上編集してよい列を分けておくと確認しやすくなります。
数値・時間・ON/OFFの形式
外部シートの設定値は、EA側で解析しやすい形式に統一する必要があります。
ON/OFF、数値、時刻、文字列、リストなどが混在する場合は、表記ルールを決めておくことが重要です。
| 値の種類 | 表記例 | 確認すること |
|---|---|---|
| ON/OFF | ON / OFF、TRUE / FALSE、1 / 0 | 許可する表記を統一する |
| 数値 | 10、50、0.5 | 小数点、範囲、空欄時の扱い |
| 時刻 | 09:00、23:30 | 24時間表記、タイムゾーン |
| 方向 | BUY、SELL、BOTH、STOP | EA側で許可する値を明確にする |
| リスト | 1001,1002,1003 | 区切り文字、空白、無効値 |
外部シート値は、人が見やすいだけでなく、EA側で誤解なく読み取れる形式にする必要があります。
シート名・ヘッダーの一致
EAが外部シートを解析する場合、シート名、ヘッダー行、列名が仕様と一致している必要があります。
列名を変更した、列を削除した、ヘッダー行の位置を変えた、不要な空白が入った場合、EA側で対象列を見つけられないことがあります。
| 確認項目 | よくある原因 |
|---|---|
| シート名 | EAが参照するシート名と実際のシート名が違う |
| ヘッダー行 | ヘッダー行の位置が変わっている |
| 列名 | 列名の変更、全角半角違い、不要な空白 |
| 必須列 | 対象口座、シンボル、設定キーなどの列がない |
| 列順 | EAが列順固定で読んでいる場合にズレる |
外部シート設定が反映されない場合、シート構造を変更していないかを確認してください。
EAが参照する対象行の一致
外部シートに複数のEA、口座、シンボル、マジックナンバーの設定が並んでいる場合、EAがどの行を対象として読み込むかが重要です。
設定値自体は存在していても、EAが対象行を見つけられていなければ反映されません。
確認する項目は以下です。
- 対象口座番号が一致しているか
- 対象シンボルが一致しているか
- 対象マジックナンバーが一致しているか
- EA名や識別IDが一致しているか
- 有効フラグがONになっているか
- 同じ条件の行が複数存在していないか
対象行が複数ある場合、どの行が優先されるのかも確認してください。
受け取る設定値の表記形式
外部シートでは、人が入力した値をEAが読み取るため、表記形式の揺れが原因で反映されないことがあります。
確認したい値の例は以下です。
| 値の種類 | 正しく扱いたい例 | 注意する例 |
|---|---|---|
| ON/OFF | ON / OFF、TRUE / FALSE、1 / 0 | オン、停止、空欄、全角文字 |
| 数値 | 10、50、0.5 | 50pips、abc、空欄 |
| 時刻 | 09:00、23:30 | 9時、25:99、全角コロン |
| 方向 | BUY、SELL、BOTH、STOP | Buy、買い、空欄、スペル違い |
| リスト | 1001,1002,1003 | 1001,,abc、全角カンマ、余分な空白 |
EA側で許可していない表記が入っている場合、その項目だけ反映されない、または外部シート全体を無効扱いにする仕様もあります。
空欄・範囲外値を受け取った場合
外部シート設定が反映されない原因として、空欄や無効値が含まれているケースがあります。
EA側で無効値をどう扱うかは仕様によって異なります。
- 空欄を前回値として扱うか
- 空欄をInputs初期値として扱うか
- 空欄をエラーとして扱うか
- 数値範囲外を補正するか
- 数値範囲外を拒否するか
- 無効値がある行全体をスキップするか
- 無効値のある項目だけスキップするか
一部の設定だけ反映されない場合は、その列の値がEA側の許可形式に合っているかを確認してください。
書き込み型連携で確認すること
MT5からGoogle Sheetsへ記録を書き込むタイプでは、MT5側の送信処理とGAS側の受信処理を分けて確認します。
確認したい項目は以下です。
- MT5側で送信処理が実行されているか
- 送信先URLが正しいか
- 送信する項目名がGAS側の想定と一致しているか
- GAS側でリクエストを受け取れているか
- シートへ追記できているか
- 書き込み先のシート名や列が正しいか
- エラー時にMT5側へ結果が返る仕様か
書き込みができない場合、MT5側の送信失敗なのか、GAS側の受信失敗なのか、シートへの書き込み失敗なのかを分けて確認する必要があります。
読み込み型連携で確認すること
Google Sheets側の設定値をMT5へ読み込むタイプでは、データ形式の確認が重要です。
確認する項目は以下です。
| 確認項目 | 内容 |
|---|---|
| 公開URL | MT5から取得できるURLか |
| 取得結果 | 空データではないか |
| 列名 | EA側が期待する名前と一致しているか |
| 値の形式 | ON/OFF、数値、時刻、文字列の形式が正しいか |
| 更新反映 | シート変更後にMT5側へ反映されるタイミング |
| 不正値 | 空欄や想定外文字がある場合の扱い |
読み込み型連携では、シート上で1文字だけ違っていても、EA側では不正値として扱われる場合があります。
取得できない状態と適用されない状態
外部シート設定が反映されない場合、最初に確認するべきことは、EAが外部シートを読み込めているかどうかです。
原因は大きく分けると、以下の2つです。
| 状態 | 意味 | 主な確認先 |
|---|---|---|
| 読み込めていない | 外部シートの取得自体に失敗している | WebRequest、URL、GAS、CSV公開、通信ログ |
| 読み込めているが反映されない | 取得後の解析・対象行判定・runtime反映に問題がある | 列名、対象行、値形式、適用範囲、反映ログ |
「反映されない」とまとめて見るのではなく、まず外部シート取得まで成功しているかをログで確認してください。
設定を読み込む周期と適用時点
外部シート設定は、変更した瞬間にEAへ反映されるとは限りません。
EA側が一定間隔で読み込む方式の場合、次回読み込みタイミングまで反映されないことがあります。
確認する項目は以下です。
- 何秒または何分ごとに読み込むか
- EA起動時だけ読み込むのか
- 一定間隔で再読み込みするのか
- 手動更新ボタンがあるか
- 設定変更を検出してから反映する方式か
- 反映対象が新規エントリーだけか、既存ポジションにも影響するか
外部シートを変更したのにEA側の挙動がすぐ変わらない場合、読み込み周期や反映タイミングを確認してください。
設定変更が影響する注文・ポジション
外部シート設定がEAのどの処理に影響するかを明確にしておく必要があります。
たとえば、外部シートで新規エントリーを停止しても、既存ポジションの決済やトレーリング、通知、ログ出力は継続する仕様もあります。
| 反映対象 | 確認すること |
|---|---|
| 新規エントリー | 外部停止時に新規注文だけ止めるか |
| 追加注文 | ナンピンや追加ポジションも停止対象か |
| 決済処理 | 外部停止中でも決済は動くか |
| 通知処理 | 通知ON/OFFを外部シートで制御するか |
| ログ出力 | 外部設定の取得結果をログに出すか |
外部シート設定は、EA全体を止めるのか、新規注文だけを止めるのか、通知だけを止めるのかを明確にしてください。
通信失敗時の動作
外部シート連携では、通信失敗や取得失敗が発生する場合があります。
この時、EAがどう動くかを事前に決めておくことが重要です。
確認する項目は以下です。
- 通信失敗時に前回成功値を使うか
- 通信失敗時にInputs初期値へ戻すか
- 通信失敗時に新規エントリーを停止するか
- 通信失敗時も既存ポジション管理は継続するか
- 何回連続失敗したら警告を出すか
- Discord通知やログで失敗を知らせるか
通信失敗時の動作を決めていないと、外部シートが取得できない時にEAがどの設定で動いているのか分かりにくくなります。
空欄・無効値・表記ゆれ
外部シートは人が編集するため、空欄、誤字、無効値、表記ゆれが入る可能性があります。
EA側では、無効値を読み込んだ時にどう扱うかを決めておく必要があります。
| 状態 | 例 | 確認すること |
|---|---|---|
| 空欄 | 設定値が未入力 | 前回値を使うか、初期値を使うか |
| 無効値 | ON/OFF欄に別文字が入る | エラー扱いにするか |
| 数値範囲外 | 上限を超える値 | 補正するか、拒否するか |
| 時刻形式不正 | 25:99、9時など | 読み込み失敗として扱うか |
| リスト不正 | 1001,,abc | 有効値だけ使うか、全体を拒否するか |
無効値の扱いは、安全性と運用性に関わります。EA側でログに理由を出せると、設定ミスを見つけやすくなります。
反映を確認するまでの待機条件
外部シート設定は、シートを変更した瞬間にEAへ反映されるとは限りません。
EAが定期的に外部シートを読み込む仕様の場合、次回読み込みタイミングまで変更は反映されません。
確認する項目は以下です。
- EA起動時だけ読み込む仕様か
- 一定間隔で再読み込みする仕様か
- 読み込み間隔は何秒または何分か
- 手動更新ボタンがあるか
- 前回読み込み時刻と次回読み込み予定時刻を確認できるか
- 変更検出後に反映する仕様か
外部シートを変更してすぐ確認している場合は、まだEA側が再読み込みしていない可能性があります。
実際に使われる値と画面表示
外部シートを読み込めていても、EA内部のruntime状態へ反映されていない場合があります。
この場合、ログには読み込み成功が出ていても、実際の判定では古い値が使われている可能性があります。
確認する項目は以下です。
- 外部シート値を取得しているか
- 取得値を検証しているか
- 無効値でスキップされていないか
- runtime設定へ適用されたログがあるか
- 現在反映中のruntime値を確認できるか
- Inputs初期値とruntime値が混同されていないか
外部シート連携では、「取得成功」と「runtime反映成功」を分けて確認することが重要です。
変更の適用範囲を確かめる
外部シート設定が反映されないように見える場合でも、実際には反映範囲が限定されていることがあります。
たとえば、外部シートで新規エントリーをOFFにしても、既存ポジションの決済、トレーリング、通知、ログ出力は継続する仕様があります。
| 外部設定 | 確認する反映範囲 |
|---|---|
| 新規エントリー停止 | 新規注文だけ停止するのか、追加注文も停止するのか |
| BUY / SELL制御 | 新規方向だけ制御するのか、決済には影響しないのか |
| 通知ON/OFF | すべての通知か、一部通知だけか |
| マジックナンバー指定 | 新規判定か、決済・集計にも使うのか |
| 時間制限 | 新規停止だけか、全機能停止か |
外部シートで変更した項目が、EAのどの処理に影響する仕様なのかを確認してください。
前回の値が保持される場合
外部シート取得に失敗した場合、EAが前回成功した設定値を使い続ける仕様があります。
この場合、シートを変更しても通信に失敗していれば、EA内部では古い設定が残ります。
確認する項目は以下です。
- 通信失敗時に前回成功値を保持する仕様か
- 通信失敗時にInputs初期値へ戻る仕様か
- 通信失敗時に新規エントリーを停止する仕様か
- 前回成功値の時刻を確認できるか
- 現在EAが使っている値をログで確認できるか
「シートを変更したのに反映されない」と見える場合、実際には通信失敗により前回値を使い続けている可能性があります。
VPSと自宅PCの設定差
自宅PCでは反映されるのに、VPS上のMT5では反映されない場合があります。
この場合、EA本体ではなく、VPS側MT5の設定や通信環境が原因の可能性があります。
- VPS上のMT5でWebRequestが許可されているか
- VPS側にも最新URLを登録しているか
- VPSから外部URLへ通信できるか
- VPS上のEAが最新バージョンか
- VPS上のsetファイルが古くないか
- VPS再起動後にEAが正常に初期化されているか
外部シート連携は、MT5ごとに設定が必要になる場合があります。PC側とVPS側の設定差を確認してください。
Expertsログで確認したい項目
Google Sheets連携で不具合がある場合は、Expertsログを確認します。
確認できるとよい項目は以下です。
- Google Sheets連携機能がONになっているか
- WebRequest URLが空ではないか
- 送信または取得を試みたか
- HTTPステータスや通信失敗が出ていないか
- レスポンスが空ではないか
- GAS側からエラー応答が返っていないか
- 取得したCSVやJSONを解析できたか
- シート構造不一致のログがないか
ログ例として、以下のような項目が確認できると、どこで止まっているかを追いやすくなります。
SHEETS_SYNC_INIT: enabled=Y mode=WRITE url_status=SET
SHEETS_WRITE_REQUEST: target=TRADE_LOG rows=1
SHEETS_WRITE_RESULT: status=OK http=200
SHEETS_FETCH_REQUEST: source=CONTROL_CSV
SHEETS_FETCH_RESULT: status=OK bytes=1240
SHEETS_PARSE_FAIL: reason=MISSING_COLUMN column=allow_new_entry
SHEETS_SYNC_FAIL: reason=WEBREQUEST_NOT_ALLOWED
SHEETS_SYNC_SKIP: reason=DISABLED_BY_INPUT
上記は確認項目の例です。実際のログ名や表示形式は、使用しているEA、インジケータ、連携ツールの仕様によって異なります。
設定取得から反映までのログ例
外部シート設定をEAへ反映する場合、ログで読み込み結果と反映内容を確認できることが重要です。
確認できるとよいログ項目は以下です。
- 外部シート読み込み機能がONか
- 読み込み先URLが設定されているか
- WebRequestが成功したか
- 取得した行数や列数
- 対象EAまたは対象口座の行を見つけたか
- 読み込んだ設定値
- 無効値や空欄の有無
- 前回値から変更があったか
- runtimeへ反映したか
- 通信失敗時にどの値を使ったか
ログ例として、以下のような項目が確認できると、外部シート設定がどこまで反映されたかを追いやすくなります。
SHEET_CFG_INIT: enabled=Y source=GOOGLE_SHEETS interval_sec=300
SHEET_CFG_REQUEST: url_status=SET method=GET
SHEET_CFG_RESULT: status=OK rows=12 cols=8
SHEET_CFG_MATCH: account=****1234 symbol=GOLD magic=1001 row=5
SHEET_CFG_VALUE: key=entry_enabled value=OFF result=OK
SHEET_CFG_VALUE: key=trade_direction value=BOTH result=OK
SHEET_CFG_APPLY: scope=FIRST_ENTRY runtime_entry_enabled=OFF
SHEET_CFG_SKIP: key=max_spread reason=INVALID_NUMBER value=abc
SHEET_CFG_FAIL: reason=WEBREQUEST_NOT_ALLOWED action=KEEP_LAST_VALID
SHEET_CFG_SUMMARY: applied=5 skipped=1 failed=0
上記は確認項目の例です。実際のログ名や表示形式は、使用しているEAや外部シート連携ツールの仕様によって異なります。
反映されない場合のログ例
外部シート設定が反映されない時は、Expertsログで通信、解析、対象行判定、runtime反映の流れを確認します。
- 外部シート機能がONか
- 読み込み先URLが設定されているか
- WebRequestが成功したか
- 取得した行数・列数
- 対象行を見つけたか
- 列名が一致しているか
- 値形式が正しいか
- 無効値でスキップされていないか
- runtimeへ適用されたか
- 通信失敗時にどの値を使っているか
ログ例として、以下のような項目が確認できると、どこで反映が止まっているかを追いやすくなります。
SHEET_CFG_INIT: enabled=Y interval_sec=300 source=GOOGLE_SHEETS
SHEET_CFG_REQUEST: url_status=SET method=GET
SHEET_CFG_RESULT: status=OK rows=12 cols=8
SHEET_CFG_HEADER: status=OK required=account,symbol,entry_enabled,max_spread
SHEET_CFG_MATCH: status=OK row=5 account=****1234 symbol=GOLD
SHEET_CFG_VALUE: key=entry_enabled raw=OFF parsed=OFF result=OK
SHEET_CFG_APPLY: key=entry_enabled old=ON new=OFF scope=FIRST_ENTRY
SHEET_CFG_SKIP: key=max_spread raw=abc reason=INVALID_NUMBER keep=LAST_VALID
SHEET_CFG_NO_MATCH: account=****1234 symbol=XAUUSD reason=ROW_NOT_FOUND
SHEET_CFG_FAIL: reason=WEBREQUEST_NOT_ALLOWED action=KEEP_LAST_VALID
SHEET_CFG_RUNTIME: entry_enabled=OFF max_spread=50 basis=SHEET_LAST_VALID
外部シート以外の連携も確認する場合
外部シート設定が反映されない場合、シート構成や取得タイミングだけでなく、WebRequest、GAS URL、通信ログ、VPS側のMT5設定も確認対象になります。
よくある原因と確認先
| 症状 | 主な確認先 | 確認内容 |
|---|---|---|
| Sheetsへ書き込めない | MT5 / GAS / Sheets | WebRequest、GAS URL、デプロイ、書き込み権限 |
| 設定値を読み込めない | 公開URL / シート構造 | CSV公開、列名、空データ、不正値 |
| 以前は動いていたが止まった | GAS / URL / 権限 | 再デプロイ、URL変更、共有設定変更 |
| 一部の列だけ反映されない | シート構造 | 列名変更、列順変更、空欄、形式不一致 |
| MT5側でエラーが出る | Expertsログ | WebRequestエラー、レスポンス空、解析失敗 |
| VPSでは動かない | VPS環境 | 通信状態、MT5設定差、URL登録漏れ |
外部設定を導入する際の症状一覧
| 症状 | よくある原因 | 確認すること |
|---|---|---|
| 外部シートを読み込まない | WebRequest未許可、URL違い | WebRequest設定、URL、Expertsログ |
| 設定変更が反映されない | 読み込み周期前、対象行不一致 | 反映タイミング、対象口座・シンボル |
| 一部の値だけ反映されない | 列名不一致、無効値、空欄 | 列名、値形式、SHEET_CFG_SKIPログ |
| 想定外の設定で動く | 前回成功値を保持している | 通信失敗時の扱い、現在runtime値 |
| VPSでは反映されない | VPS側MT5のWebRequest設定不足 | VPS側URL登録、通信状態 |
| シート編集後にエラーが出る | 列構造変更、必須列削除 | シート構造、ヘッダー、必須列 |
外部シート連携の不具合では、MT5側、WebRequest、シート構造、EA側の解析処理を分けて確認してください。
取得・反映段階ごとの症状一覧
| 症状 | よくある原因 | 確認すること |
|---|---|---|
| まったく読み込まない | WebRequest未許可、URL不正 | WebRequest設定、URL、通信ログ |
| 読み込み成功だが反映されない | runtime適用されていない | SHEET_CFG_APPLY、現在runtime値 |
| 一部の項目だけ反映されない | 値形式不正、列名不一致 | SHEET_CFG_SKIP、ヘッダー確認 |
| 対象行が見つからない | 口座番号・シンボル・マジック不一致 | SHEET_CFG_NO_MATCH、対象条件 |
| 古い値のまま動く | 前回成功値を保持している | LAST_VALID、最終成功時刻 |
| VPSだけ反映されない | VPS側WebRequest設定不足 | VPS側MT5のURL登録、通信状態 |
外部シート設定が反映されない時は、通信、解析、対象行、値形式、runtime反映を順番に確認してください。
問い合わせ前に整理しておく情報
Google Sheets連携の不具合を相談する場合は、MT5側、GAS側、シート側の情報を分けて整理すると確認が進めやすくなります。
| 項目 | 整理する内容 |
|---|---|
| 使用ツール | EA名、インジケータ名、Google Sheets連携ツール名 |
| 連携方式 | 書き込み型、読み込み型、両方、手動CSV |
| MT5設定 | WebRequest許可、URL登録、外部連携ON/OFF |
| GAS設定 | デプロイ状態、URL更新、実行権限 |
| シート設定 | シート名、列名、共有権限、保護設定 |
| 発生症状 | 書き込めない、読み込めない、一部だけ反映されないなど |
| ログ | Expertsログ、Journalログ、GAS側の実行ログ |
| 直前の変更 | URL変更、GAS再デプロイ、列変更、EA更新、VPS変更 |
GAS URL、Webhook URL、APIキー、口座番号、個人情報などが含まれる場合は、必要に応じて一部をマスクしてください。
注意したいこと
Google Sheets連携は、記録、確認、外部設定管理を補助するための仕組みです。
ただし、外部サービス、通信環境、シート権限、GASの状態に依存するため、常に通信や記録が成功することを保証するものではありません。
特に以下には注意してください。
- GAS URLや公開URLを外部に公開しない
- APIキーや認証情報を本文や問い合わせ文にそのまま貼らない
- シートの列名やタブ名を不用意に変更しない
- 運用中のシートと検証用シートを混同しない
- 外部設定をEAへ反映する場合は、反映範囲を理解してから使う
- 通信失敗時の挙動を事前に確認する
外部シートでEAの設定値を管理する場合でも、最終的な設定確認は利用者側で行う必要があります。
Google Sheets連携であわせて確認したい記事:Google Sheets連携では、WebRequest設定、GAS URL、CSV公開URL、シート構造、外部シート設定の反映状況、Expertsログを分けて確認する必要があります。
外部設定を変更する前の注意
MT5で外部シート設定をEAに反映する場合は、以下に注意してください。
- 外部シート変更が即時反映されるとは限らない
- Inputs初期値とruntime反映値を混同しない
- 通信失敗時にどの設定で動くかを確認する
- 無効値や空欄が入った時の扱いを決めておく
- シート構造や列名変更で読み込みに失敗する場合がある
- URLやAPIキーなどの秘密情報をそのまま共有しない
- 外部シート設定は利益や損失回避を保証するものではない
外部シート設定は、EAの設定管理や外部連携を補助するための仕組みです。売買判断、相場予測、利益保証を目的とするものではありません。
外部シート設定をEAへ反映する前の関連確認:外部シートの設定値をEAへ反映する場合は、Google Sheets連携、WebRequest設定、シート構造、EA側のruntime反映、ログ確認を分けて確認する必要があります。
反映状態を判断する際の注意
外部シート設定が反映されない時は、以下に注意してください。
- シートを変更しても、読み込み周期までは反映されない場合がある
- 読み込み成功とruntime反映成功は別の確認項目になる
- 無効値や空欄があると、一部項目だけ反映されない場合がある
- 通信失敗時に前回成功値を使い続ける仕様がある
- PCでは反映されても、VPSではWebRequest設定差で反映されない場合がある
- 外部シート設定は利益や損失回避を保証するものではない
外部シート設定が反映されない時の関連確認:反映されない原因は、MT5側のWebRequest設定、GASやCSV公開URL、列名、対象行、EA側の読み込み周期、runtime反映ログなどに分かれます。
Google Sheets連携のMQL5実装側を確認する場合
Google Sheets連携が動かない、外部シートの設定がEAへ反映されない、記録がシートへ出力されない場合は、シート側の設定だけでなく、MQL5コード側のWebRequest処理、HTTPステータス、レスポンス、取得間隔、反映ログも分けて確認します。
Google Sheets連携の確認では、GAS URL、WebRequest許可URL、HTTPステータス、GetLastError、取得したCSVやJSONの内容、シート側の更新時刻、EA側の反映ログを分けて確認してください。外部シートの取得失敗と、EA本体の売買判定や注文処理の停止は、ログ上で分けて確認して扱うことが重要です。
定期取得・解析・更新処理の確認
外部シート設定がEAに反映されない場合は、シート側の入力ミスだけでなく、MQL5コード側で設定を取得できているか、取得した値をEAのruntime状態へ反映できているか、OnTimerなどで取得間隔を制御できているかを分けて確認します。
外部シート設定の反映確認では、GAS URL、WebRequest許可URL、HTTPステータス、取得したCSVやJSONの内容、反映前の値、反映後のruntime状態、最終取得時刻をログで分けて確認してください。外部シートの取得失敗と、EA本体の売買判定や注文処理の停止は別の問題として扱うことが重要です。
関連する確認ページ
| ページ | 確認する分野 |
|---|---|
| MT5 WebRequest設定完全ガイド|許可URL・通信・ログの確認ポイント | 外部連携・通知ガイド |
| MT5 EAログ完全ガイド|Experts・Journalの見方・問い合わせ前の整理 | トラブル解決 |
| MT5外部連携完全ガイド|WebRequest・Discord通知・Google Sheets・外部ツール | MT5の外部連携全体を整理したい場合/WebRequest、Discord通知、Google Sheets、外部シート、ログ確認をまとめて確認する |
| MQL5 WebRequest・JSON・外部API実装完全ガイド|Discord通知・Google Sheets連携前に知ること | MQL5コード側のWebRequest実装を確認したい/WebRequest、JSON、Google Sheets連携、HTTPステータス、レスポンス確認/MQL5コード側のWebRequest実装を確認したい/WebRequest、CSV / JSON取得、HTTPステータス、レスポンス解析、Google Sheets連携 |
| MQL5外部連携EA実務ノート|WebRequest・JSON・Webhookを安全に扱う設計 | 外部シート取得や状態送信を一定間隔で行いたい/EventSetTimer、外部制御取得、Google Sheets連携、送信間隔、再送制御、ログ抑制/外部シート取得を一定間隔で行いたい/EventSetTimer、外部制御取得、設定反映、取得間隔、再試行、ログ抑制 |
利用前・相談前に確認するページ
| ページ | 確認できる案内 |
|---|---|
| 導入ガイド | 導入ガイド |
| 不具合報告の方法 | 不具合報告の方法 |
| 投資助言を行わない方針 | 投資助言を行わない方針 |
補足して確認したいページ
主題に関連する確認ページです。必要な項目だけ参照してください。
| 確認目的 | 関連ページ |
|---|---|
| 「MT5 Google Sheets 連携」の読後に「setファイルとは」を補足確認 | setファイルとは |
| 「MT5 Google Sheets 連携」の読後に「EAに外部シート連携を追加したい時に整理すること」を補足確認 | EAに外部シート連携を追加したい時に整理すること |
まとめ
Google Sheets連携ツールを使う前には、MT5のWebRequest設定、GAS URL、デプロイ状態、共有権限、シート構造、EA側の入力項目、Expertsログを確認することが重要です。
書き込み型連携では、MT5からGASへ送信できているか、GASが受信しているか、シートへ書き込めているかを分けて確認します。読み込み型連携では、公開URL、列名、値の形式、不正値、反映タイミングを確認します。
EAファンクラブでは、MT4/MT5向けのGoogle Sheets連携ツール、WebRequestチェックツール、ログ確認補助ツール、CSV出力ツールなどについて、用途や環境に合わせた開発・改修相談を扱っています。
Google Sheets連携やWebRequest設定でお困りの場合は、使用環境、GAS URLの状態、シート構造、Expertsログを整理したうえでご相談ください。
当サイトでは、投資助言、相場予測、売買判断、特定ブローカーへの誘導は行っていません。ご相談は、MT4/MT5・MQL4/MQL5の開発・設定・検証・不具合調査に関する内容に限ります。
お問い合わせはEAFC公式LINEへ
EAFCサイト内の記事、商品、導入前確認、設定確認、ログ確認、開発依頼前のご相談など、各種お問い合わせはEAFC公式LINEより受け付けています。
※投資助言、売買指示、利益保証、推奨ロット、推奨銘柄の案内は行っておりません。
口座番号、認証情報、Webhook URL、GAS URL、APIキーなどの機密情報は送信しないでください。
