今の履歴で安値に見える印が、その足の時点で見えたとは限りません。描画された足と、初めて情報が使えた時刻を両方残します。表示の相違一つや、短期間変化がなかった事実だけで、指標の全挙動・不正・利益を認定しません。

計算、描画と利用可能な時刻を分ける

Pineの資料は履歴とリアルタイムの挙動を区別します。未確定足は変化し、後の確認で過去の足へpivotの印が追加される場合もあります。表示中のM5が閉じても、指標が参照するH1まで閉じたとは限りません。

暫定か確定か、必要な入力、後からの移動を許すかという宣言した規則を先に読みます。「non-repaint」だけでは仕様として不足。画像が変わったことは説明を求める出発点ですが、それだけで詐欺、先読みや損失の原因は証明されません。

個別の仕組みと入力の変更を調べる

MetaQuotesはZigZagの最後の区間が新しい価格で変わり得ると注意しています。設定と実装で構成は変わるため、全てに共通の反転率を代入しません。他の道具も暫定・確認の挙動を個別に調べます。

MQL5のOnCalculateは、深い履歴の読込や欠損の補完でprev_calculatedが0へ戻る場合を説明。バッファに保存した値は永久不変の保証ではありません。再起動後の相違を意図的な書換えと説明する前に、入力の書き出しとプログラム版を保存します。

必要な情報が使える前に判断を割当てると先読みになります。後で認識した点を過去へ描く慣例と、その古い時刻に注文できたという仮定は別。認識できた時刻と実行可能な価格を分けて確認します。

後のチャートで上書きできない観測記録を残す

同一の銘柄・設定を選び、古い記録を最新版に合わせて置換せず追記します。画面保存は銘柄と時刻目盛を含め、入力・出力の書出しと組み合わせます。

項目保存するもの照合の目的
環境銘柄、配信元、足、時計同じ系列か
道具版、設定、可能ならコード版更新と旧挙動を分離
観測記録時刻、足時刻、未確定/確定情報の利用可能性
信号値、方向、描画足、初見時刻過去の入口を捏造しない
比較後の足確定・再読込後の同じ項目何が変わったか

形成中、表示足の確定後、必要なら上位足の確定後、再読込後を比べ、一度に変える要素は一つ。観測していない時間も記録し、保存信号がないことを信号がなかった証拠にしません。

10:10のpivotが初めて分かるのは10:25

架空M5規則:対象Highが左右それぞれ二本の確定Highより厳密に高いこと。同値は不適合、時刻は足の開始、欠損なしと指定します。商品名のある指標の監査ではありません。

M5開始High利用可能性
10:001.1000対象点にはデータ不足
10:051.1010対象点はまだ先
10:101.104010:15に対象足が閉じる。右隣はまだ未確定
10:151.103010:20に右の一本目が閉じる
10:201.102010:25に右の二本目が閉じ、確認

1.1040は周囲四本より高いので、10:25時点で10:10へ印を描けます。対象の開始から15分、対象が閉じてから10分の遅れで、基準時刻が違います。

確認後、初めて売れるBidを1.1018と指定。履歴High1.1040を早い売り入口にすると0.0022=22pip(pip0.0001)の差を作り、10,000 EURなら価格損益の差22 USD、別費用前。出口は指定していないため取引利益の計算ではありません。

10:20のHighだけ1.1045へ変更すると対象1.1040は不適合。同値1.1040でも厳密規則では不適合です。高くなった隣の足も、自身の右側データが揃わないうちは新しい確定pivotではありません。

再読込で違っても、未来データ使用とは限らない

横にスクロールすると図全体を確認できます。

SMAの式は同じでも入力値が変わる両系列の最初は100と102。三つ目が104から101へ変更され、平均は102から101。過去入力が同じまま未来を足した例ではない。先に入力価格を比べる100102104101版A:(100+102+104)/3=102版B:(100+102+101)/3=101入力が変更。SMAの式は同じ。
両系列の最初は100と102。三つ目が104から101へ変更され、平均は102から101。過去入力が同じまま未来を足した例ではない。

同じ三つの確定区間の架空書出しAは100、102、104でSMA(3)=102。Bは100、102、101で101。三番目の入力価格そのものが違い、未来を使わない式でも出力は変わります。線は別アルゴリズムではなく二つの書出しの入力値を結びます。

同じ日時・価格の種類か、書出しの整合性、指標版と設定を照合。過去入力を固定したまま未来を足す試験とは分けて診断し、この説明だけでプログラム全体が正しいと認定もしません。改訂理由や実配信業者は指定していません。

追記試験、保存アラートとリプレイは別の範囲

過去の入力を変えず後の観測を追加し、確定出力として示した値を比較します。人工的な「各価格÷読込データ全体の最大値」という規則は、100、110のとき最初が100/110≒0.9091。120を追加すると100/120≒0.8333へ変わり、差は約0.0758。古い価格100が同じでも未来に依存しています。負の添字がないから安全とは言えません。

その時点までのrunning maximumで割る別規則なら、最初は両方1。一つのprefix試験に通っても全コード経路の証明ではありません。一方、前の図は古い入力を104から101へ改訂しているので、固定過去入力の追記試験ではありません。

TradingViewの稼働アラートは作成時のコードと設定を保持し、後の編集を自動反映しません。頻度、構成とメッセージ時刻を保存します。Bar Replay中も既存サーバーアラートは現在のデータで動くので、再生中の過去からの通知として解釈しません。

M5の10:15でも、10:00〜11:00のH1は未確定。M5が一つ閉じたからH1の最終Highを使えるわけではありません。Pineのlookahead設定と系列offsetは合わせて調べます。データ・費用を含むテストへ進む前に、情報の利用可能性を定義します。

日本向けの追加例:確定時刻と、自分が受信できた時刻も別

別の架空USD/JPYのM5高値を150.000、150.100、150.400、150.300、150.200と指定。同じ左右二本の厳密規則で、足の開始UTC10月6日15:00、15:05、15:10、15:15、15:20、欠損なしとします。JSTでは全て翌7日00:00〜00:20です。

対象点の描画先はJST7日00:10。右二本の確定は00:25:00ですが、自分の受信記録では初見00:25:02と指定します。00:25:01に意思決定する受信側の模型はまだ情報を持たないため、その信号を使えません。確定した時刻を、そのまま自分が使えた時刻へ代入しないための反例です。

異なる時刻この模型
描画先の足開始JST7日00:10
必要な右隣が閉じる00:25:00
受信側が判断00:25:01:初見より前
保存された初見00:25:02

仮に受信後に使える売りBidを150.160、数量1000ドルと指定。履歴High150.400を入口へ置き換えれば差は0.240円/ドル=24pip、価格損益の差240円です。出口なしなので利益ではなく入口による差です。実際の配信遅延が常に2秒、約定がこのBid、という主張でもありません。

UTC元日付とJST翌日、足の時刻、最終入力の到着、信号初見と判断・依頼・約定を別に残します。時計の同期や観測漏れも確認。受信記録が欠けていれば不明として扱い、描画位置から初見を作りません。

JSTの確認時刻より、受信が後のケース

JSTの確認時刻より、受信が後のケース独立した架空pivot。UTC10月6日の足はJST翌7日に属する。仮定に基づく計算印が置かれる足7日00:10確認と判断確認00:25:00、判断00:25:01初見の記録00:25:02
JSTの確認時刻より、受信が後のケース. 独立した架空pivot。UTC10月6日の足はJST翌7日に属する。

足、確認、受信と判断を別に残し、履歴価格への早い入口を作りません。

小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。

印が置かれる足
7日00:10 – ここで見えたという意味ではない
確認と判断
確認00:25:00、判断00:25:01 – まだ受信前と指定
初見の記録
00:25:02 – 判断時点に遡って信号を使わない

結論は、版と入力を限定して報告

版、入力、設定、時刻と観測した変化を記載し、二つの書出しを保存。入力改訂を先に照合します。5分、50本、2週間変わらなかった事実から、永久不変や利益を証明しません。

過去へ印を置くなら判断は実際の認識時刻から。認識できた時刻が分からなければ履歴の印へ取引を割り当てません。バックテストの価格、費用と純結果の検証は、SMAなどの情報利用可能性を調べる試験とは別です。