集計ページは Cloudflare のページ置き場に公開する。利用者がページを開くと、ページのプログラムが利用者のブラウザに届いて動く。
利用者は、MT4 の Files フォルダにある集計用 CSV をページに落とす。ページはその CSV をブラウザの中で計算して、表とグラフを描く。
段 1 では、読んだ CSV をサーバーへ送らない。だからログインも保管先も要らない。サインは今どおり CSV で配る。
今の記録は、答え・サイン・足などのファイルに分かれている。足のファイルは 3.4MB あり、勝ち負けの判定に使っている。ページで同じ計算をすると、ファイルを何本も読ませることになる。
そこでツールが、答えるたびに集計用の CSV を 1 本書き直す。1 行が 1 サインで、同じサインに答え直したら最新の答えだけを残す。勝ち負けはツールの中の判定をそのまま使う。
CSV にはサインの時刻も注文価格も入れない。どのサインかはサインの固有番号で示し、月ごとの成績のために日付だけを残す。集計には、式・売買・損切と利確の pips・勝敗があれば足りる。
| 列 | 中身 |
|---|---|
| 固有番号 | 配信元でサインに振った番号(時刻は入らない) |
| 日付 | 建てる足の年月日(時刻は入れない) |
| 式・売買 | 零式〜肆式、BUY・SELL |
| 答え | 入る・入らない、入らない理由 |
| 損切・利確 | pips(入るときだけ) |
| 勝敗 | 勝ち・負け・まだ・取引なし |
| 損切の判断 | 高安以外に置いたときの印 |
| 口座番号・サーバー | 誰の記録か(今の記録と同じ) |
一番上に、式(零式〜肆式)ごとに BUY と SELL を分けた集計表と、全体のサマリーを置く。発生回数・取引回数・勝率・pips・損益を並べ、過去検証シートの上半分と同じ形にする。
その下に資金の推移と月ごとの成績を置く。証拠金とリスクは画面で変えられ、損益はその場で計算し直す。取引 1 件ずつの一覧、スクショ、振り返りの機能は今回は作らない。
配信元のサインデータで、1 件ずつに整数の固有番号を 1 回だけ振る。一度振った番号は変えない。消したサインの番号は欠番にして使い回さず、新しいサインには続きの番号を振る。
判断収集ツールのサインも、シートに最初から入れるサインも、同じ配信元から作るので同じ番号を持つ。シートの年のタブには、この番号の列を 1 つ足す。今の No. は年ごとの 1〜566 なので、そのままでは使えない。
シート用 CSV は、番号で行を探して答えの欄だけを書き出す。中身は損切・利確・勝敗(H〜J 列)と、損切の判断・判断理由・備考(M〜O 列)。サインの日時と注文価格は出さない。間の損益・残高は式なので、H 列と M 列に分けて貼る。
製品に入っているサインは、作った日までの分だけ。日が経つと、作ったあとの期間も過去になり、そこも検証したくなる。段 2 では、この増えた分のサインを配信する。
ツールは起動時に、口座番号を付けて Cloudflare の受け口へサインを取りに行く。受け口は、L サインの製品が使っている口座の確認先に同じ番号を問い合わせ、許可された口座にだけ返す。受け取ったサインは MT4 の中だけで持ち、ファイルに残さない。
段 3 では Google のログインを足し、落とした CSV をサーバーにも保管して、作る側が全員の記録を見る。集計用 CSV の列は段 1 から段 3 まで変えない。
段 1 の作る順番の前半: ツールに集計用 CSV を書く部分を足す。2025 年の試験用 563 件で、取引 170・勝ち 61・獲得 60.4 pips になるか確かめる。
段 1 の作る順番の後半: 集計ページを作って Cloudflare に置く。最後にシート用 CSV の書き出しを足す。
口座認証の中身: L サインの製品(L-series_0-Core.mq4 の 27〜98 行)が使っている。Windows 標準の wininet で、確認先に口座番号を付けて問い合わせる。返事が true なら動き、false なら止まる。
口座認証の扱い: 判断収集ツールにも同じ関数を入れれば、L サインと同じ口座の一覧で使える人を絞れる。テスターの中で止める行は、リプレイの使い方に合わせて見直す。
口座認証の強さ: 口座番号を付けて聞くだけなので、登録された誰かの番号を知っていれば通る。今の L サインと同じ強さで、段 2 もこの強さで進める。確認先は外部のサーバーなので、受け口から問い合わせてよいかは運営する人に確かめる。
第 1 版(MT4 から Cloudflare に自動で送る案)から変えたこと: 自動で送るのをやめ、利用者が CSV を落とす形にした。鍵は配らない。答え直しは最新だけを使う。
既存の Leo 判断ダッシュボード(/leo-dashboard)は別のツールの記録を見るページ。ファイルを落として読む部分とグラフの部品は使い回す。
今の記録の signal_id(名前にサインの日時が入っている)は、記録の中の鍵としてそのまま残す。docs/69 §15-2 の「signal_id は変えない」とぶつからないよう、固有番号は別の列として足す。
まだ決めていないこと: シートの年のタブに足す番号の列を、隠し列にするか No. と置き換えるか。2025 年のシート 566 件とツール 563 件の 3 件の差は、番号を振れば、どちらにだけある番号かで特定できる。ライブのサインをサインツールの矢印から読む形との使い分け。