GOLD13をM5正本へ統一:時間足隔離の配備とアイコン表示退行を公開する
金融AI/AIエージェント研究開発・インジケーター基盤
GOLD13をM5正本へ統一:時間足隔離の配備とアイコン表示退行を公開する
時間足を切り替えたときに履歴や判定が混ざらないよう、M5だけを実行正本にしました。一方でVPS上のアイコン描画に退行が出たため、配備成功と表示成功を分けて報告します。
本稿は、私が開発したインジケーターGOLD13と自動売買ソフト(EA)を、AIエージェントと実口座で研究・検証する開発ログです。検証の様子は平日24時間のトレードライブ配信でも公開しています。
今回の変更目的
MT4では同じインジケーターでも、M5、M15、H1など時間足ごとに再計算や復元が走ります。実行時間足を曖昧にすると、別時間足の履歴を復元したり、同じ出来事を重複判定したり、過去アイコンの位置が後続tickで動いたりする可能性があります。
そこでGOLD13はM5だけをcanonical execution timeframe、つまり唯一の実行正本としました。非M5インスタンスは受動表示とし、event生成、ledger変更、signal判定へ進ませません。
配備した範囲
- M5以外はledger復元より前にpassive化
- 非M5のsignal計算を入口で停止
- restoreとduplicate checkを時間足単位へ分離
- realtime iconのanchorを永続化
- band計算を確定済みM5足へ統一
- 入力名、型、順序、既定値は変更なし
EA、入口方針、AutoTrading、receiver、口座設定、profile、template、実チャートの時間足は変更していません。時間足隔離だけを対象にした配備です。
VPS配備の検証
AWS LightsailのシンガポールVPSへ配備し、VPS MetaEditorでは0 errors、0 warningsでした。BigBoss MT4を通常再起動し、GOLD13のBAND_UPDATEとBANDTIP_CREATED、EAのpositions=0を確認しました。最終確認時はopen position 0、pending order 0です。
候補MQ4、配備前バックアップ、VPS読戻しMQ4、生成EX4のSHA256を記録しました。VPS読戻しMQ4はBOM、CRLF、先頭空行の差でraw SHAが変わりましたが、正規化後の本文は候補と一致しました。ビルド成果物のEX4は決定論的生成と仮定せず、結果として記録しています。
自然イベントで確認できたこと
再起動後、自然なM5 warning SELLイベントが発生しました。EA側ではstaleとして拒否され、注文は開かれませんでした。この事例で、signal engineと受け渡し経路が稼働していることは確認できました。
ただし本番チャートにはFUNDAFX_EA5も接続されています。検証のためだけに人工的な時間足変更を行うと、実運用へ不要な影響を加えるため、M5から他時間足へ切り替えて戻すLIVE round-tripは未実施です。
配備後に見つかった表示退行
その後のVPS REALTIMEログではSELL 16:15、BUY 16:48、16:50、16:55、17:00のevent生成が継続していました。一方で各eventにBMPFILE設定エラーが出ており、チャート上のsignal iconだけが表示されないことを確認しました。
原因は、時間足隔離候補の差分に六つのresource宣言が含まれず、OBJPROP_BMPFILEが埋込パスではなく外部画像パスを参照したことです。ローカル環境とVPSで画像解決条件が異なり、VPSだけで描画に失敗しました。
何が動き、何が壊れているか
signal engine、event生成、band更新、EA接続が止まったわけではありません。壊れているのはVPS上のBMPアイコン描画です。この二つを混同して「インジケーター全停止」とも「問題なし」とも表現しません。
表示は利用者が判断根拠を確認する重要な機能です。注文ロジックが動いていても、画面上の証拠が欠ければ運用品質は合格にできません。機能、表示、記録を別々の合格項目にします。
hotfixの現在地
最小hotfixは、消えた埋込resource宣言と参照パスだけを復元し、隔離環境で0 errors、0 warningsまで確認済みです。しかし本番上書きは未実施です。表示修正のために他ロジックを触らず、現在のMQ4/EX4、chart inputsを保存してから進める必要があります。
配備後はMT4の再初期化、BMP error消失、既存signal icon再表示、event生成継続、ledger、band、inputs維持を別々に確認します。異常があれば旧版へ戻し、entry状態を勝手に変更しません。
時間足往復で見る項目
- M5のsignal、marker、ledger、bandを記録する
- 利用者の自然な操作で別時間足へ移る
- 非M5でeventやledger mutationが出ないことを確認する
- M5へ戻り、過去anchorと履歴が一致することを確認する
- 重複eventとアイコン移動がないことを確認する
このround-tripが終わるまでは、時間足隔離のLIVE_VALIDATIONを完了扱いにしません。オフライン回帰PASSと実画面の検証は別物です。
AI研究開発としての意味
金融AIの判断精度だけを高めても、入力となるインジケーターの履歴が時間足切替で変われば学習と検証の土台が崩れます。AI、EA、GOLD13、録画、heartbeatが同じ時刻と状態を共有して初めて一つの検証線になります。
今回は不具合も含めて公開します。配備した事実、確認できた稼働、見つかった退行、未配備hotfix、未実施のLIVE検証を区別することで、単なる完成報告ではなく変更履歴として残します。
次回報告の合格条件
- 本番hotfixのSHAとcompile結果
- BMPFILEエラー消失
- 既存および新規アイコン表示
- event生成継続
- M5以外での非作用
- M5復帰後の履歴一致
- open/pendingとEA稼働状態
一部が成功しても全体を完了とはしません。特に表示の復旧と注文ロジックの継続を分けて確認します。
表示退行を見逃さない監視
ログにevent successが並んでいても、利用者が見るチャートへ何も描画されていなければ検証体験は壊れています。そこでevent生成数、OBJPROP設定結果、実際のobject数、画面上の見え方を別々に確認します。ログ成功だけを完成条件にせず、スクリーンショットとライブ画面でも整合を取ります。
画像resourceはローカルPCで解決してもVPSで失敗することがあります。コンパイル時に埋め込まれたか、実行時パスが外部フォルダを指していないか、ファイル名の大文字小文字や区切りが一致するかを確認し、配備先固有の条件をテストへ追加します。
履歴を守る移行設計
hotfix後にアイコンが再表示されても、過去signalの時刻や価格が変われば別の問題です。既存ledgerを消して再生成するのではなく、配備前後でobject名、anchor time、price、directionを比較します。新規eventだけ直り、履歴が動かないことを確認します。
バンドについても現在値が描画されるだけでなく、last closed M5 barを使い続けているかを見ます。形成中足へ戻れば後から境界が動き、ライブ配信と保存画像の説明が一致しなくなります。表示の安定性はAIへ渡す観測値の再現性にも直結します。
ロールバック条件
compile error、初期化失敗、event停止、EA接続異常、ledger欠損、inputs変更のどれかが出た場合は、配備前に保存したMQ4/EX4へ戻します。表示だけを急いで直すために、売買経路を不明な状態で動かし続けません。ロールバック後も原因ログと失敗版のSHAを残します。
本稿は研究開発・実口座検証ログであり、利益や将来の性能を保証するものではありません。