Lサイン検証ツールと Lサイン・過去検証キットの干渉の整理

2026-11-07(同日 23:40 更新)/ 試験端末(XM MT4・デモ)と XM 実機で確認 / 根拠はソースコードとターミナルのログ
結論
  1. Lサイン本体と過去検証キットは、作りの上でほかのツールと干渉しやすい挙動を 2 つ持っている(2 章)。過去検証キットの銘柄が LS_EURUSD なのは、長い過去データを持たせ、時間足ごとの 3 枚のオフラインチャートに 1 つで描くためと読める。本番の EURUSD に届かないのはその副作用(3 章)。
  2. 今回の検証ツールは、自分を貼ったチャートの、自分の名前のものにしか触らない作り。過去検証キットのような「別のチャートへの干渉」は起きない(4 章)。
  3. ただし Lサインの起動の待ち時間がギリギリなため、同じチャートに一緒に貼ると、MT4 の起動時に Lサインが止まることがある。お客さまには「使うあいだは Lサインを外し、検証ツールは 1 枚のチャートだけに貼る」と案内する(5・6 章)。

1登場するツール

ツール中身描く・動くチャート作り手
Lサイン本体(L-series)Core(EA・口座認証)と LS1〜LS8(サイン・パネル・ダウ・RR・ロット・ペイントなど)EURUSD M15(本番の相場)Lサインの作り手
過去検証キット(Retrospect)2004〜2025 年の過去サインを埋め込み、矢印で描く。3 枚のチャートのスクロールを連動カスタム銘柄 LS_EURUSD の M15・H1・H4(オフラインチャート)同じ作り手
検証ツール(L-series_Judge・今回)過去のサインを 1 本ずつ見て「入る/入らない」を答え、結果を CSV 1 枚に書く。口座認証は Lサインと同じ貼った 1 枚のチャートだけ今回追加

2Lサイン・過去検証キットにある 2 つの挙動の問題

2-1 過去検証キットは「別のチャート」に手を出す

Retrospect は、自分を貼ったチャートだけでなく、端末で開いているチャートを全部見て回り、銘柄名で選んだチャートに描いたり消したりする。

挙動ソース上の処理普通の EURUSD で同じことをすると
描くチャートを銘柄名で探すChartFirst/ChartNext で全チャートを回し、銘柄名が LS_EURUSD の M15・H1・H4 を選ぶ本番の Lサインのチャートにも 13,000 件の矢印を描いてしまう
外すと「LS」で始まるものを全部消すObjectsDeleteAll(チャート, "LS")本番の Lサインのパネル(LS1〜LS8 の部品はどれも「LS」で始まる)まで消える
本体と同じ名前のボタンを作る式の ON/OFF のボタン名が本体のパネルと同じ LS1_btn_0〜4ボタンが取り違えられる

2-2 Lサイン本体の起動は「待ち時間がギリギリ」

LS1〜LS8 は、Core が口座認証のあとに置く隠しの印を探し、1 秒ごとに 5 回見て無ければ「エラー:口座認証できませんでした。強制終了します。」で自分を外す。一方、MT4 の起動時に Core が読み込まれてから起動し終えるまでには 4 秒前後かかる。

Lサインだけを載せた回Core が読み込まれてから起動まで締め切り(約 5 秒)までの余裕止まったインジ
13.8 秒約 1.2 秒0
23.7 秒約 1.3 秒0
34.5 秒約 0.5 秒0
44.1 秒約 0.9 秒0
試験端末の Core は開発用(認証の問い合わせを省略する版)。本番の Core はサーバーへ問い合わせる分だけ起動が遅くなるので、余裕はさらに少ないはず。10 月にも「1 時間足に切り替えると『口座認証できませんでした』が出る」という記録があり、同じ原因の可能性がある。

3LS_EURUSD(過去チャート)を用意した経緯

2003 年からの長い過去データを持たせたい→ブローカーの EURUSD の名前だとサーバーの履歴で上書きされる → 別の名前 LS_EURUSD のオフラインチャート→オフラインチャートは時間足を切り替えられない → M15・H1・H4 の 3 枚→1 つの Retrospect で 3 枚に描き、スクロールも連動させる → 端末のチャートを銘柄名と時間足で探す作り

この理由を書いた資料は見つかっていない。上はソースの処理(3 つの時間足のチャートを探して描く・スクロールの連動)から読んだもの。全チャートを見て回るのは 3 枚に一度に描くためで、干渉を避けるためではない。銘柄名が違うので本番の EURUSD には届かずに済んでいる、という順番。普通の EURUSD で同じ作りにすると、2-1 の問題が本番のチャートで起きる。

項目LS_EURUSD(オフラインチャート)XM の EURUSD
足のある期間(M15)2003-05-05 〜 2026-02-18(約 57 万本)2022-07-25 〜 今(約 10 万本・最大バー数による)
時刻の基準同じ(重なる 88,502 本で、ずらさずに 93.5% が 1 pips 以内・LS_EURUSD が中央値 0.8 pips 高い)
検証ツールのサインの建玉の足が無い数0 件(期間内 13,392 件)8 件(年末年始の足が無い)
銘柄が違うことの効果MT4 は同じ銘柄のインジケーターを 1 本の流れで処理する。銘柄が違えば処理の流れも別になる

4検証ツールの作り(干渉しないための作り)

観点過去検証キット(Retrospect)検証ツール
描くチャート端末の全チャートから銘柄名で探して描く自分を貼ったチャートだけ(ほかのチャートを探す処理がない)
消すもの「LS」で始まるもの全部自分の名前(#CSJL_)で始まるものだけ
ボタンの名前Lサインと同じ LS1_btn_* を作るLS1_btn_* は読むだけ(自分のチャートにあれば式の ON/OFF を見る)。作らない・変えない。1 秒ごとに 5 個を見るだけで重くならないので、機能は残す(Lサインを外したチャートでは何もせず、零式〜肆式を全部出す)
オブジェクトの名前—サインの矢印・決着の線の名前は結果の CSV と同じ番号(例 #CSJL_arw_n12288)。日時を入れないので、オブジェクトリスト(Ctrl+B)を開いてもサインの日時は並ばない
Lサインの認証の印—触らない(隠すのは自分のチャートの未来の矢印・文字の印だけ)
未来の矢印を隠す—自分のチャートで、幕より右の矢印・文字の印を一時的に見えなくする(消さない・外すと戻す)
口座認証なしLサインの Core と同じ確認先・同じ手順・同じ文言。通るまで起動しない
端末全体で共有するもの—進み具合(どこまで見たか)を端末全体で 1 つ保存。2 枚に貼ると取り合う → 「1 枚だけ」と案内
同じ銘柄の処理の流れLS_EURUSD なので本番と別普通の EURUSD に貼ると、起動時の重い処理(13,000 件の読み込み・矢印)の間、別のチャートの Lサインが待たされる → 「使うあいだは Lサインを外す」と案内

5干渉の確認観点と結果

5-1 載せ方ごとの結果(MT4 の起動時・試験端末)

載せ方回数Lサインが止まった回検証ツール
Lサインだけ60—
Lサインと検証ツールを同じチャートに31(LS1〜LS8 のうち 7 本が外れた)認証が通って動く
Lサインのチャートと検証ツールのチャートを分けた(どちらも EURUSD M15)20(LS1〜LS8 の 8 本とも残った)認証が通って動く。オブジェクトも混ざらない(Lサイン 78 個・検証ツール 778 個)

5-2 なぜ同じチャートで止まるのか(考えられる要因・未確定)

候補中身見立て
① 検証ツールの読み込みが重いex4 が約 500 KB で 13,770 件のサインを配列で持つ。同じ銘柄の処理の流れが押し出され、Core の起動が締め切りを越える高い
② 起動時の口座認証の通信起動時に口座につながっていればその場でサーバーへ問い合わせ、その間ほかの処理を待たせる中(止まった回は、ツールの認証が Core より後だった)
③ もともとのばらつきCore の起動が毎回 0.5 秒ほど揺れ、たまたま遅い回に重なった低くない(Lサインだけの 6 回では起きていない)

切り分け案: 認証なしのテスト用ビルドで同じチャートを 10 回/検証ツールの起動にかかった時間を回ごとに測る/載せ方ごとに 10 回ずつ流して割合を比べる。

5-3 オブジェクト・名前の確認(静的)

確認方法結果
ほかのチャートに触る処理がないかソースで ChartFirst/ChartNext/他チャート ID への ObjectCreate/ObjectsDeleteAll を探す無い(すべて自分のチャート)
消す範囲ソースの ObjectsDeleteAll を全部見る自分の名前で始まるものだけ
マウスを合わせたときに内部の名前が出ないかチャートのオブジェクトとツールチップを全部書き出すサインの印は「零式のサイン」など式の名前だけ。ほかは出さない
オブジェクトの名前に日時が入らないか同じ書き出しで、名前に PERIOD_ や日付(8 桁)が無いか数える778 個中 0(前は矢印・線の名前に「…_EURUSD_PERIOD_M15_20220817_2100」と日時が入っていた)
画面・ログに日時や値段が出ないか(配布版)パネルとエキスパートタブを見るサイン・決着の行は「日時 式 売買」だけで値段なし。答えのたびのログ・現在地・エラーの日付は出さない

5-4 LS_EURUSD に貼ったとき

確認結果
起動・口座認証XM 実機で動く
サインの建玉の足が無い([E02])足の抜けは 0 件。データが終わる 2026-02-18 より後の 378 件を [E02] に数えていたのは直した
古い年まで振り返るにはチャートの最大バー数を 600,000 程度に上げて再起動(足りないと [E01])
Retrospect との同居同じチャートに貼らない(矢印が重なる)

6お客さまへの案内(マニュアルに入れたこと)

案内理由
Lサインが貼られているチャートには貼らないMT4 の起動時に Lサインが「口座認証できませんでした」で止まることがある(5-1)
検証ツールを使うあいだは Lサインをチャートから外す(終わったら定型チャート「L-series」で戻す)別のチャートでも、同じ EURUSD だと検証ツールの重い処理で MT4 が重くなる(4 章の「同じ銘柄の処理の流れ」)
検証ツールは 1 枚のチャートだけに貼る進み具合を端末全体で 1 つ保存しているので、2 枚以上だと混ざる
LS_EURUSD(過去検証キット)は案内しない想定外の使い方。全部の年を振り返らせる必要はなく、H1・H4 を横に開くと未来が見える(段 2 で対応)

7まだ確かめていないこと・判断が要ること

項目状態
本番の Core(サーバーに問い合わせる版)の横で、別のチャートに貼って動くか未(XM で確認)
同じチャートで止まる原因の切り分け(5-2 の ①②③)未
Lサイン本体の LS1〜LS8 の待ち時間(5 秒)を延ばすかLサインの作り手の判断(納品物の変更になる)
過去検証キットが LS_EURUSD に分けた理由の裏付け(長いデータ・3 枚のオフラインチャート)作り手に確認(ここはソースからの推定)
LS_EURUSD で時間足を変えながら振り返る(H1・H4 にも未来の幕)段 2(ChartSync を L サイン用に写す)。v1.0 では LS_EURUSD 自体をマニュアルで案内しない

出所: Lサイン・過去検証キットの納品ソース(L-series_0-Core/L-series_1〜8/L-series_Retrospect)、検証ツールのソース(judge-kit/mq4/CSJ4_JudgeBody.mqh・CSJ4_EngineCsv.mqh・CSJ4_Auth.mqh)、試験端末と XM 実機のエキスパートのログ(2026-11-07)、l_series_judge/RELEASE_CHECKLIST.md の 7・7.5 節。