取引日誌 — 表計算、統計、運用成績の振り返り

約20分で日誌を作るための完全ガイドです。表計算の基礎に慣れた人の目安であり、最初の読み込みやデータ確認にはさらに時間がかかる場合があります。26列の技術的な列名は、 記事15.9と共通です。各行の式と九つの指標のダッシュボードを、ポーランド語版・英語版Excelの二通りで示し、クラウド表計算の設定も後で説明します。ブラウザー内で生成する開始用CSVも付いています。完成済みXLSXをダウンロードすることも、以下の手順で自分で作ることもできます。式を理解すれば、計算内容を把握して自分で修正できます。列名が共通なので、区切り文字、文字コード、日付形式を正しく選んだCSV出力は、 補助ツールI の完成済みS1〜S3スクリプトと、 プロンプトP5のスクリプトに使えます。P6〜P7の監査には、後述する追加の二列が必要です。

自動集計付き取引日誌 — 計画値と実際の約定の列、勝率・プロフィットファクター・期待値の式、画面上の指標ダッシュボード
60秒で分かる要点
  • 五つのグループに分けた26列:識別情報、文脈、計画と約定の比較、コストと結果、プロセスです。ほかの項目から導く値(slippage、r_net、execution_drag)だけに式を使います。
  • 九つの式からなるダッシュボード:取引数、勝率、プロフィットファクター、期待値、合計R、R単位の最大ドローダウン、平均MAE/MFE、ミスのない執行率です。運用成績の指標はr_netから、プロセス指標は別の列から計算します。MAE/MFEの集計範囲は後述します。
  • 二種類の計算式:Excel PL(ŚREDNIA、LICZ.JEŻELI、セミコロン)とExcel EN(AVERAGE、COUNTIF、カンマ)です。各ブロックには切り替えとコピーボタンがあります。
  • 指標は最初の記録から標本を説明する:約50取引は、この講座で使う振り返り時点の例です。すべてに共通する最低数でも、優位性の証明でもありません。結論は、ばらつき、結果間の依存、検証計画によって変わります。上限違反やデータ誤りには直ちに対応し、戦略規則の変更には、別の仮説と検証が必要です。

完成済みXLSX日誌

取引日誌をダウンロード — 日本語XLSX

ファイルにはStatistics、Journal、Instructionsの三シート、999行の入力枠、コスト控除後損益、R、スリッページ、ドローダウンの式があります。A〜Z列は以下の形式を保ち、AA〜AC(15.9の自己評価)、AD(メモ)、AE〜AF(有効証拠金曲線とドローダウン)、AG(ミスのない執行)も含みます。スクリプト用CSVはA:Zを出力してください。黄色のセルにデータを入力し、ブローカーの出力で計算列を上書きしないでください。スワップや手数料が実際にゼロなら0を入力します。未入力は欠損のままです。

このガイドの計算例は、ファイルの統計には入りません。ドローダウンは開始時の0 Rも含み、最初に−1 Rを失うと、ドローダウンは1 Rになります。取引は決済時刻の順に並べ、同時刻なら一貫した順序を保ってください。C列だけを並べ替えてはいけません。同じ取引の全項目を一緒に移動します。並べ替え後は、AE/AFの累積が引き続き2行目から始まることを確認してください。追加の補助列、 coded_clean は、エラーコードが空欄の取引を、ミスのない執行とはみなしません。

ファイルでは、ゼロを含むすべての入力済み測定値から、平均MAEとMFEを計算します。勝ち取引・負け取引を分けて分析する式も、以下に残しています。ファイルのプロフィットファクターは口座通貨ではなくR単位です。T列の計画損益は、同じ種類の決済だけで比較してください。計画SLと実行SL、計画TPと実行TPを対応させ、対応する計画のない決済では空欄にします。

PL版では、PLN建てを示す接尾辞が、 *_pln の各項目に使われます。 日本語版 も列の順序は同じで、金額項目には中立的な名前を使い、 _pln の接尾辞を付けません。口座通貨はInstructionsで指定します。異なる言語間でCSVを移すときは、見出しを対応させ、通貨を確認してください。通貨の表示名を変えるだけでは、値は換算されません。

完成済みファイルを使うか、自分で作るか

  • 同じ日誌に至る二つの方法: 完成済みXLSXには確認可能な式があり、完全なガイドに従えば自分で再作成できます。マクロやブローカーへの接続はありません。開始用CSVは、引き続きブラウザー内で生成されます。ファイルのバージョンはInstructionsに記載しています。現在は1.2、2026年9月21日付で、記事のバージョン番号とは別です。
  • 自分で作れば、表の中身まで理解できる: 数年後に、新しい通貨ペアや出力形式によって式がエラーになっても、何を計算しているか分かるので、原因を特定しやすくなります。仕組みの分からない「魔法のテンプレート」は、気付かないうちに壊れます。誤った数字を示す日誌は、日誌がないより悪いものです。
  • 講座全体で列名を共有する: 見出しは15.9のミニCSV仕様に基づきます。この表が対応するのは、15.9の番号付き29論理項目のうち約20項目で、不足項目は出典欄に示しています。同じ列名を、 補助ツールI の完成済みS1〜S3スクリプトと、プロンプトP5のスクリプトが使います。AIワークショップの監査P6〜P7には、計画遵守の状態とコンディションのメモも必要です。次のように追加してください。statusは、 error_code が0なら「plan」、コード1〜9なら「breach」とします。コード10(インフラ)の行はP6用CSVから除外するか、statusを「infrastructure」としてプロンプト内で説明します。コンディションのメモは自己評価欄(AA〜AC)から作ります。同じ形式を使えば、ツール間でデータを読み替える作業を減らせます。
  • クラウドは便利でも、扱うのは口座データ: ポジションサイズ、結果、プロセス上のミスなどです。クラウドか端末内保存かを意識して選び、AIモデルにデータを貼り付けるときと同じ基準を使ってください。データの扱い方は、 補助ツールH).
日誌の一行の構成:識別情報、文脈、計画と約定、コストと結果、プロセス。R単位の結果は、コスト控除後損益と計画リスクから計算する 1. 識別情報ID・時刻・通貨ペア 売買方向 2. 文脈セットアップ・等級・セッション 3. 計画と約定計画/実際のエントリー・SL・TP スリッページ 4. コストと結果スワップ・手数料 損益・r_net 5. プロセスerror_code コンディション・質 r_net = コスト控除後損益 / 計画リスク この一列がダッシュボード全体の元になる — そのため、コスト控除後の損益を使う

構成:5グループ、26列

列記号(A〜Z)は、以下の式が使う配置に対応します。順序を変えたら参照も更新してください。技術的な列名は英語のままにすると、見出しを読み替えずにCSVをP5スクリプトへ渡せます。15.9の自己評価三項目(mental_state、sleep_hours、decision_quality)を、任意のAA〜AC列として追加できます。ファイルには含まれており、計算式の必須入力ではありません。

列見出しグループ1:識別情報例
Atrade_id連番またはプラットフォームのID2026-041
Bopen_time_utc新規約定の日時をUTCで記録します。MT4/MT5の出力はブローカーのサーバー時刻(例:GMT+2/+3。仕様を確認)なので、サーバーのタイムゾーンから換算してください(15.9)。形式: YYYY-MM-DD HH:MM2026-07-08 07:42
Cclose_time_utc決済日時をUTCで記録します(Bと同様)。表計算上の実際の日付・時刻の値を使い、文字列にはしません。空欄は未決済取引として指標から除外します。無効な日付や、新規約定より前の決済時刻ではRを計算しません。2026-07-08 13:15
Dpair銘柄は6文字で、区切り記号やブローカー接尾辞を付けません(EURUSDとし、EUR/USDやEURUSD.mは使わない)。pip式が対象とするのはFXペアだけです。一pipは0.0001、JPYで終わるペアは0.01とします。ほかの銘柄は、仕様のpipサイズを入力し、乗数を変更してください。EURUSD
Edirectionlong / short(小文字。スリッページの式が文字列を比較します)long
列見出しグループ2:文脈例
Fsetupプレイブックのセットアップ名(補助ツールE)asia-london-breakout
Gsetup_classA+ / A / B / C — エントリー時点のプレイブック等級。ファイルの選択肢は15.9に従います。その後の結果を見て等級を付けないでください。A+
Hsessionエントリーのセッション(Asia / London / NY / overlap)London
列見出しグループ3:計画と約定例
Iplanned_entry計画したエントリー価格(発注前に記録)1.0850
Jactual_entryプラットフォーム上の実際の約定価格1.0852
Kplanned_sl計画した損切り価格1.0820
Lplanned_tp計画した利確価格1.0910
Mactual_exit実際の決済価格1.0907
Nspread_pipsエントリー時のスプレッド0.7
Oslippage_entry_pips計算式 — エントリーのスリッページをpipsで表示。プラスなら不利な約定2.0
列見出しグループ4:コストと結果例
Pswap符号付きのスワップ額を口座通貨で記録(コストはマイナス)−3.20
Qcommission手数料はゼロ以上のコストとして入力。手数料がなければ0。ブローカーの出力でコストがマイナスなら正の値に変え、式が利益へ加算しないようにする7.00
Rbroker_gross_pnlプラットフォームのコスト控除前損益:スプレッドと約定価格の影響は反映済みで、スワップと手数料を引く前の値201.67
Sbroker_net_pnl計算式 (ブローカーがコスト控除後損益を示す場合は手動入力)191.47
Tplanned_gross_pnl計画損益は、 同じ種類の決済 に対応させます(金額)。TP決済には計画TP、損切り決済には計画SLを使います。手動決済や時間による決済では空欄にし、ファイルではWも空欄になります。一方、15.9では、その場合の執行ロスをエントリースリッページ、手数料、スワップのR単位の合計、(O × pip価値 + Q − P) / Uとして計算します。スワップPの符号は保ち、マイナスはコストです。この計算は式の外で手動で行います。220.00
Uplanned_risk口座通貨建ての計画リスク(例ではUSD)。計画エントリーから計画SLまでのpip数 × 計画取引量のpip価値で求めます。この取引のRの分母は固定し、後で損失額に合わせて変えません。損失上限の保証ではなく、価格の飛び、スリッページ、コストで実際の損失が増える場合があります。110.00
Vr_net計算式 — コスト控除後損益をR単位で表示。運用成績の指標の元になる列1.74
Wexecution_drag_R計算式 — 計画したコスト控除前損益と実際の控除後損益との差をR単位で表示。計画より結果が良ければマイナスになる場合がある0.26
列見出しグループ5:プロセス例
Xmae_rポジション保有中の最大逆行幅をR単位で表示(定義:15.9、第7節)0.35
Ymfe_rポジション保有中の最大順行幅をR単位で表示2.10
Zerror_code0 = ミスのない執行、1〜9 = 判断ミスのコード、10 = インフラ障害(一覧:15.9)0

行ごとの式 — 計算列

計算式の種類:

設定: PL版はポーランド語の関数名とセミコロン、EN版は英語名とカンマを使います。区切り文字は地域設定によって変わり、Google Sheetsでは関数の言語を別に設定します。読み込み時にB/Cを日付・時刻に設定し、次で確認してください: =CZY.LICZBA(C2) (EN版: =ISNUMBER(C2))。正しい結果はPRAWDA/TRUEです。セルの見た目だけを変えても十分ではありません。

式を2行目に入力し、下までコピーします。範囲にまとめて貼り付けても構いません。対象は1000行目までです。日誌を長くする場合は、行の式、入力規則、ダッシュボードの全範囲、入力の整合性を確認する式も延長してください。

O2 · slippage_entry_pips プラスなら計画より不利な約定。JPYペアの乗数は100
=JEŻELI(ORAZ(CZY.LICZBA(I2);CZY.LICZBA(J2);DŁ(D2)=6;LUB(E2="long";E2="short"));JEŻELI(E2="long";J2-I2;I2-J2)*JEŻELI(PRAWY(D2;3)="JPY";100;10000);"")
=IF(AND(ISNUMBER(I2),ISNUMBER(J2),LEN(D2)=6,OR(E2="long",E2="short")),IF(E2="long",J2-I2,I2-J2)*IF(RIGHT(D2,3)="JPY",100,10000),"")
S2 · broker_net_pnl ブローカーがコスト控除後損益を示す場合は手動入力し、この式を使わない
=JEŻELI(ORAZ(ILE.LICZB(P2:R2)=3;Q2>=0);R2+P2-Q2;"")
=IF(AND(COUNT(P2:R2)=3,Q2>=0),R2+P2-Q2,"")
V2 · r_net コスト控除後損益をR単位で表示。決済日時(C)、控除後損益(S)、リスク(U)がそろうまで空欄。未決済取引は指標に含めない
=JEŻELI(ORAZ(CZY.LICZBA(C2);CZY.LICZBA(S2);CZY.LICZBA(U2));JEŻELI(ORAZ(C2>=1;C2<2958466;U2>0;LUB(B2="";ORAZ(CZY.LICZBA(B2);B2>=1;B2<=C2)));S2/U2;"");"")
=IF(AND(ISNUMBER(C2),ISNUMBER(S2),ISNUMBER(U2)),IF(AND(C2>=1,C2<2958466,U2>0,OR(B2="",AND(ISNUMBER(B2),B2>=1,B2<=C2))),S2/U2,""),"")
W2 · execution_drag_R 同じ種類の決済に対応する計画結果(T)との比較。手動決済や時間による決済はTとWを空欄にする。15.9では、その場合の執行ロス = (O × pip価値 + Q − P) / Uを手動計算する
=JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(T2));(T2-S2)/U2;"")
=IF(AND(ISNUMBER(V2),ISNUMBER(T2)),(T2-S2)/U2,"")

ダッシュボード:9指標と解釈

指標は別シートに貼り付けます。ファイルと同様、各範囲の前にシート名を付けてください。例: 'Journal'!V2:V1000。表の上に置く場合は見出しが1行目から移動するため、参照を調整します。ブロックをコピーすると複数の式が別々の行に入るので、それぞれ対応するセルに置いてください。AE2、AF2、AG2はStatisticsではなくJournalシートの列です。

空の日誌ではN = 0、合計R = 0、最大ドローダウン = 0です。WR、PF、期待値、測定値のない平均は空欄になります。損失がない場合も、比率が有限にならないためPFは空欄です。Rを計算するには、Sの控除後損益、正のU、Excelの日付範囲内にあるCの数値の日付・時刻が必要です。Bを入力する場合は、Cより後でない有効な日付とします。Excelは日付を数値で保存します。表示形式を変えても、文字列が日付に変換されるわけではなく、実際にUTCで入力したかも確認されません。

ファイルのバージョン1.2では、日付、売買方向、等級、手数料コスト、リスク、MAE/MFE、コードに、エラー時に停止する入力規則を使います。ただし、貼り付けは入力規則を回避する場合があります。そのためVは文字列の日付とゼロ以下のリスクを拒み、Sはマイナスの手数料コストを拒み、AGは0〜10の整数コードだけを受け付けます。Statisticsの16〜19行では、決済入力があるのにRがない取引、Rはあるが有効なコードがない取引、無効なMAE/MFEを数えます。日付の式が空文字を返す場合は、不正な決済済み取引ではなく、決済未入力として扱います。全標本を評価する前に、ゼロを超える件数は理由を確認してください。

運用成績の指標はVを使います。全入力値から求める平均MAE/MFEは別の標本で、Vが空欄でも、ゼロを含む非負の数値を対象とします。測定列に負の数、文字列(文字列として保存された「0.5」も含む)、空白文字、真偽値があると、黙って結果を歪める代わりに、その列の平均を問題解消まで空欄にします。無効セル数は、MAEがStatistics B18、MFEがB19です。一方の列に誤りがあっても、もう一方の有効な平均は計算できます。標本数を決済済み取引数と機械的に比較しないでください。ポジションの生存期間について、同じ定義の測定窓で非負の値を入力し、欠損測定は空欄にします。以下の勝ち・負け別の式は、Vに基づいて一部を選びます。

指標1〜5 取引数・勝率・プロフィットファクター・期待値・合計R
取引数:  =ILE.LICZB(V2:V1000)
勝率:           =JEŻELI(ILE.LICZB(V2:V1000)=0;"";LICZ.JEŻELI(V2:V1000;">0")/ILE.LICZB(V2:V1000))
プロフィットファクター:      =JEŻELI(LICZ.JEŻELI(V2:V1000;"<0")=0;"";SUMA.JEŻELI(V2:V1000;">0")/-SUMA.JEŻELI(V2:V1000;"<0"))
期待値(R):     =JEŻELI(ILE.LICZB(V2:V1000)=0;"";ŚREDNIA(V2:V1000))
合計R:             =SUMA(V2:V1000)
取引数:  =COUNT(V2:V1000)
勝率:           =IF(COUNT(V2:V1000)=0,"",COUNTIF(V2:V1000,">0")/COUNT(V2:V1000))
プロフィットファクター:      =IF(COUNTIF(V2:V1000,"<0")=0,"",SUMIF(V2:V1000,">0")/-SUMIF(V2:V1000,"<0"))
期待値(R):     =IF(COUNT(V2:V1000)=0,"",AVERAGE(V2:V1000))
合計R:             =SUM(V2:V1000)
指標6:R単位の最大ドローダウン 補助列AE(資金曲線)とAF(現在のドローダウン)。両方を下の行までコピーする
AE2(資金曲線):       =JEŻELI(CZY.LICZBA(V2);SUMA($V$2:V2);"")
AF2(ドローダウン):   =JEŻELI(CZY.LICZBA(AE2);MAX(0;$AE$2:AE2)-AE2;"")
最大ドローダウン(R): =MAX(AF2:AF1000)
AE2(資金曲線):       =IF(ISNUMBER(V2),SUM($V$2:V2),"")
AF2(ドローダウン):   =IF(ISNUMBER(AE2),MAX(0,$AE$2:AE2)-AE2,"")
最大ドローダウン(R): =MAX(AF2:AF1000)
指標7〜9:MAE/MFEとミスのない執行率(および平均執行ロス) 損切り、決済、プロセスを監査する
平均MAE(全測定):  =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI(ILE.LICZB(X2:X1000)=0;"";ŚREDNIA(X2:X1000)))   (ファイル内と同じ、 B11)
平均MFE(全測定):  =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI(ILE.LICZB(Y2:Y1000)=0;"";ŚREDNIA(Y2:Y1000)))   (ファイル内と同じ、 B12)
勝ち取引の平均MAE:    =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;">0";X2:X1000);""))
負け取引の平均MFE:  =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;"<0";Y2:Y1000);""))
AG2(coded_clean):    =JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(Z2));JEŻELI(ORAZ(Z2>=0;Z2<=10;Z2=LICZBA.CAŁK(Z2));JEŻELI(Z2=0;1;0);"");"")
ミスのない執行率:     =JEŻELI(ILE.LICZB(AG2:AG1000)=0;"";ŚREDNIA(AG2:AG1000))
平均執行ロス:   =JEŻELI(ILE.LICZB(W2:W1000)=0;"";ŚREDNIA(W2:W1000))   (任意。ファイルには未収録)
平均MAE(全測定):  =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IF(COUNT(X2:X1000)=0,"",AVERAGE(X2:X1000)))   (ファイル内と同じ、 B11)
平均MFE(全測定):  =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IF(COUNT(Y2:Y1000)=0,"",AVERAGE(Y2:Y1000)))   (ファイル内と同じ、 B12)
勝ち取引の平均MAE:    =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,">0",X2:X1000),""))
負け取引の平均MFE:  =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,"<0",Y2:Y1000),""))
AG2(coded_clean):    =IF(AND(ISNUMBER(V2),ISNUMBER(Z2)),IF(AND(Z2>=0,Z2<=10,Z2=INT(Z2)),IF(Z2=0,1,0),""),"")
ミスのない執行率:     =IF(COUNT(AG2:AG1000)=0,"",AVERAGE(AG2:AG1000))
平均執行ロス:   =IF(COUNT(W2:W1000)=0,"",AVERAGE(W2:W1000))   (任意。ファイルには未収録)
入力の整合性確認 — Statistics B16:B19と同じ ゼロを超える件数は、入力確認が必要なことを示す
決済済みでRなし: =WIERSZE(C2:C1000)-LICZ.PUSTE(C2:C1000)-ILE.LICZB(V2:V1000)
Rがありコードなし:       =ILE.LICZB(V2:V1000)-ILE.LICZB(AG2:AG1000)
無効なMAE:       =WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")
無効なMFE:       =WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")
決済済みでRなし: =ROWS(C2:C1000)-COUNTBLANK(C2:C1000)-COUNT(V2:V1000)
Rがありコードなし:       =COUNT(V2:V1000)-COUNT(AG2:AG1000)
無効なMAE:       =ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")
無効なMFE:       =ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")
二種類のRの単位 — 確認例。 リスクU = USD 50、控除後損益−USD 50の取引結果は−1Rです。別の取引がU = USD 200、控除後損益+USD 200なら+1Rです。合計r_netは0Rですが、口座はUSD 150増えています。その期間に計画の基準1RがUSD 100なら、上限管理に使う単位での結果は+1.5基準Rです。PFも異なり、取引Rでは1、USDでは4になります。矛盾ではなく、異なる指標です。対象期間は、計画で定めたタイムゾーンと週の区切りで選び、日誌の元の時刻はUTCのままにします。決済済み損益の合計は、現在の有効証拠金や未決済ポジションの損失監視の代わりにはなりません。基準Rが変わる場合は、期間末の任意の金額で期間全体を割らず、計画に記録した規則に従ってください。
指標結果の読み方と限界
勝率単独では優位性を示しません。下の図を参照してください。決済済み取引がない場合は空欄で、0%は勝ち取引のない標本を意味します。「自分は上手いか」を判断するためではなく、プレイブックの前提と実績を比較するために使います。
プロフィットファクター1.0未満なら、対象標本のR単位の結果はマイナスです。取引数とドローダウンと合わせて初めて意味を持ちます。損失がない標本はゼロによる除算になり、「無限の優位性」を意味しません。
期待値(R)日誌で最も重要な数値で、一取引当たりの平均的なコスト控除後損益です。プラスでも、それはこの標本の説明であり、それだけで優位性は証明されません。ばらつき、結果間の依存、条件の安定性、検証結果を、次の手順に沿って評価してください: 戦略検証プロトコル(N)。50取引は振り返り時点の例です。取引量を増やす判断には、リスク計画の遵守も必要です。
最大ドローダウン(R)全履歴を対象とする指標です。AFは曲線の過去最高値からの下落を計算するため、その週の損失ではありません。計画の週次上限(補助ツールE)は、計画の基準Rか資金に対する割合で表します。取引ごとにUが異なる場合、合計r_netと直接比較しないでください。口座通貨建ての基準Rが一定なら、その期間のSの控除後損益合計を基準Rの金額で割ると、計画の単位での期間損益になります。割合による上限では、計画で定めた資金の基準を使います。AFは取引Rの累積経路であり、口座残高や有効証拠金のドローダウンではありません。異常なドローダウンが出たら、データ、条件、検証の前提を確認してください。
平均 MAE (勝ち取引)低い値(例:0.4R未満)は、損切りが必要以上に広いという仮説です。直ちに狭めず、新しい標本で検証してください(15.9)。1Rに近いなら、勝ち取引でもリスク額全体に近い逆行があったことを示します。執行の問題だと結論付ける前に、エントリーと損切り位置を確認します。
負け取引の平均MFE高い値は、いったん有利に動いてから逆行したことを示します。決済や部分利確の規則を監査してください。
執行ロス(平均)上記の任意の式で、Tが入力された取引だけから計算します。高い値が続く場合、比較可能な決済について、計画した控除前損益と実際の控除後損益に差があることを示します。コストと約定価格の違いを含みます。対応する計画のない手動・早期決済は、この平均には入りません。それらの決済の簡易コスト推定と混ぜないでください。
ミスのない執行率決済済み取引のうちerror_code = 0の割合です。AG列は有効なRと0〜10の整数コードがある取引だけを数え、コード未入力をミスなしとは扱いません。約90%は特定の計画の運用基準にはなり得ますが、品質の標準ではありません。評価済み件数とコード欠損を確認してください。一件のコード0と多数の空欄から得た100%は、日誌全体を表しません。重大な違反には、割合に関係なく対応が必要です。規則違反の取引から得た指標は、その規則を正しく守った場合の検証にはなりません。
二つのシステムの比較:勝率60%でも利益と損失の比率が悪ければ期待値はマイナスになり、勝率40%でも勝ち取引が2Rなら期待値はプラスになる 勝率 A: 60% B: 40% 平均利益0.5R・平均損失1R 平均利益2R・平均損失1R 一取引当たりの期待値 A: −0.10R B: +0.20R そのため、ダッシュボードでは期待値を最初に確認し、勝率はRの分布と合わせて読む

開始用CSVと読み込み

ボタンは、データ送信や別のネットワーク通信を行わず、ブラウザー内だけでCSVを作ります。26見出しと、勝ち・負け一件ずつの例を含み、式の動作を確認できます。PL版はセミコロンと小数カンマを使います。読み込み時には区切り文字を明示的に選び、ダブルクリック時の挙動はシステム設定によることに注意してください。EN版はカンマ区切りと小数点です。読み込み後は、例の計算列(O、S、V、W)を上記の式に置き換え、初回記録の前に例を削除するか、別ファイルに保存します。CSVでは、プログラムで表示している精度のまま出力される場合があります。XLSX 1.2のVとWは小数点以下六桁を使います。開始用CSVも、各行の金額から求めた六桁の値です。この丸めで個々のRの誤差は0.0000005 Rを超えませんが、損失合計が非常に小さいとPFはより敏感になります。絶対値が0.0000005 R未満の結果はゼロに丸められ、勝敗分類と勝率が変わる場合があります。その場合は出力前に精度を上げてください。高精度の分析が必要なら、後のスクリプトだけではなく、出力前に桁数を増やします。

開始用の日誌ファイル 式の切り替えで選んだ種類を使い、端末内で生成
補助ツールHとIに出力する手順: JournalシートのA:Zの見出しと入力済み行を、新しいファイルへ「値として貼り付け」でコピーします。B/Cは、 yyyy-mm-dd hh:mm に設定します(ポーランド語の画面では、 rrrr-mm-dd gg:mmと表示される場合があります)。V/Wは小数点以下を少なくとも六桁とし、桁区切りを使いません。CSV UTF-8で保存してください。ファイルを結合する前にtrade_idの一意性を確認します。S1は重複を除去しません。一つのポジションの部分約定は、選んだ取引単位に従ってコストも含めて集約し、元のUを保ちます。同じ取引を、複数の約定と全体の集計の両方で数えないでください。コピーをテキストエディターで開き、一行26項目、区切り文字、UTC日時、数値を確認します。CSVに入るのは値だけで、式やほかのシートは含まれないため、元のXLSXを残してください。S1のPL設定: CSV_SEP=";", DECIMAL=","、EN設定: CSV_SEP=",", DECIMAL="."。BOM付きUTF-8は、次の指定で読み込めます: utf-8-sig.

二つの例を確認する: 控除後損益USD 191.47、リスクUSD 110なら1.740636 Rです。控除後損益−USD 113.10、リスクUSD 105なら−1.077143 Rになります。この六桁の値から、スクリプトはN = 2、WR = 50%、合計0.663493 R、期待値0.3317465 R、PF約1.615974852、最大DD 1.077143 Rを出すはずです。S2の表示は丸められ、WR 0.5、PF 1.62、期待値0.332 R、合計0.66 R、最大DD 1.08 Rになります。XLSXの式は丸め前の比率で計算するため、末尾の桁は異なる場合があります。S1は不正な決済済み取引で分析を停止しますが、P5はその記録を除外して報告するようスクリプトに指示します。標本をそろえてから指標を比較してください。P5はスクリプトを生成する指示であり、結果を保証する完成済みファイルではありません。

順を追って作る

  1. 空の表計算ファイルを作る ExcelかLibreOffice Calcを使います。クラウド表計算でも作れますが、口座データであることを踏まえて意識的に選んでください。
  2. 開始用CSVを読み込む または構成表から見出しをコピーします。数値が数値として読み込まれたか確認してください。「1.0850」が文字列になるなら、区切り方式とシステム設定が一致していません。
  3. 各行の計算式を貼り付ける O2、S2、V2、W2に貼り付け、余裕を持たせた行数まで下にコピーします。
  4. ダッシュボードを貼り付ける 指標1〜9を、表の上か別のシートに置きます。補助列AE、AF、AGも、各行の式と同様に、用意した最終行までコピーしてください。
  5. 記録の習慣を決める: 取引を決済するたびに記録します。この手順は、 補助ツールJ のEODチェックリストにも含まれます。指標は週次に確認し、プレイブックの判断は四半期ごとに行います(補助ツールE).
表計算の日誌ダッシュボード — 記録表の上に勝率、プロフィットファクター、期待値、R単位の最大ドローダウンを表示し、横に補助列の資金曲線を配置
表計算の日誌ダッシュボード — 記録表の上に勝率、プロフィットファクター、期待値、R単位の最大ドローダウンを表示し、横に補助列の資金曲線を配置

よくある質問

Excel、LibreOffice、クラウド表計算のどれを使えばよいですか?

式はExcel、LibreOffice Calc、Google Sheetsで使える基本関数で構成しています。ただし、関数名と区切り文字はプログラムとファイル設定によって変わります。PL版はポーランド語名とセミコロン、EN版は英語名とカンマです。クラウド表計算では、英語名とセミコロンの組み合わせが必要な場合もあります。各プログラムの全バージョンを試したという意味ではありません。より重要なのはデータの置き場所です。日誌には取引量、結果、自分のミスの一覧が含まれます。クラウドでは提供元の方針が適用され、自分のドライブの外に保存されます。この節では、口座データは原則として端末内に保管し、クラウドは意識して選び、バックアップを出力する方針です。日誌をチャットに貼り付ける前に行う、補助ツールHのデータ管理と同じ判断です。

指標に意味が出るまで、何取引必要ですか?

指標は最初の取引から、その標本を説明します。約五十取引は、最初にシステムを振り返る運用上の例であり、有意性の境界ではありません。それより前は、連勝・連敗のたびに期待値と勝率が大きく変わり、システム全体よりも直近の一連の結果を強く反映します。ばらつきと結果間の依存も重要です。このため、補助ツールEのプレイブックにも、A+等級の基準として同じ件数が登場します。ただし、それまでは日誌が無意味ということではありません。ミスのない執行率や記録の完全性といったプロセス指標は、最初の入力から使え、システムの数値が将来信頼できるかを左右します。順序は、まずプロセス、次に標本、最後にシステムの評価です。 現行の付録Eについての補足:ここで挙げた約五十取引は見直し時点の例であり、現行プレイブックのA+基準ではありません。等級は、事前に定めた必要条件と質の基準に従います。標本数だけで等級が決まるわけではありません。

結果が見えるのに、error_code列が必要なのはなぜですか?

損益と判断の質は別の軸だからです。計画に違反して利益が出る取引もあり、報われた違反が強化されるため、これは特に危険です。一方、模範的に執行しても損失になることがあります。error_code 0〜10を使うと、ミスなく執行した取引の期待値を別に計算できます。違反を除くと利益が出るなら、規則より執行に問題がある可能性を示します。ただし、部分集団の差だけで原因が証明されるわけではなく、調べる場所が分かるだけです。コード10のインフラ障害は判断ミスと分けてください。その場合の手順は、 補助ツールK、コード1〜9の一覧は15.9にあります。

Excelが式を受け付けないときは、何を確認しますか?

ほとんどは三つのいずれかです。まず式の種類を確認します。関数の言語と引数区切りは別の設定です。切り替えでは、PLのポーランド語名とセミコロン、ENの英語名とカンマという代表的な組み合わせを示しますが、地域設定も確認してください。Google Sheetsでは英語関数名を使う設定も確認します。次に小数の区切りです。小数カンマの環境では「1.0850」が文字列になるため、CSVを二種類用意しています。最後に引用符です。メッセージアプリ経由のコピーで、直線の引用符が装飾付きに変わる場合があります。このページのボタンから直接コピーしてください。それでも計算できない場合、補助ツールHのプロンプトP3では、コードと同じように式もレビューできます。

説明用の場面:コストを記録するまで「利益が出ていた」システム。 日誌は丁寧に付けていましたが、損益列にはプラットフォームの控除前の値をコピーし、手数料とスワップを含めていませんでした。四半期後の期待値は+0.12Rで、取引が増えれば利益も増えるとして頻度を上げました。コスト列を加え、控除後損益からr_netを計算し直すと、結果は−0.04Rでした。システムは利益を上げておらず、資金を回していただけで、取引を増やすほど追加取引のコスト分だけ損失が広がりました。そのため、グループ4では、コスト、控除後損益、そして控除後損益だけから計算するr_netを分けます。
モデル上の場面:MAEが、相場に対して狭過ぎる損切りを示す。 バックテストより勝率が明らかに低いトレーダーは、ブローカーのストップ狩りを疑っていました。ところがmae_rとmfe_rを記録すると、別の実態が見えました。負け取引のMAEはしばしば1.0Rを少し超えて終わり、同じエントリーのMFEはそれ以前に1.5R+に達していました。有利に動いた後に反転し、それから損切りになっていたのです。MAE/MFEが測るのはポジション保有中だけなので、損切り後の値動きは、期間を定義して別に測る必要がありました。その測定では、当初の方向に戻ったことが分かりました。これにより、SLが通常の価格変動の内側にあり、決済規則が値動きの一部を捉え損ねているという仮説が生まれました。ATRは変動の大きさを示しますが、それだけで最適な損切り位置は決まりません。このモデル例では、損切りを相場構造の外に移し、リスク額を維持するため取引量を減らす変更を、別の標本で検証しました。さらなる評価を正当化したのは、その新しい標本の結果です。MAE/MFEの列がなければ、この仮説は生まれず、ブローカーへの陰謀論だけが残ります。
  • 15.9 日誌と指標 — エラーコード0〜10を含む全項目、MAE/MFEの定義、高度な指標(SQN、Sortino)
  • 15.10 戦略監査 — 指標と標本から、何を推論できるか
  • 補助ツールI — コード集 — 動作確認済みのS1〜S3スクリプト。この表のCSV出力(A〜Z)を読み、指標を計算し、資金曲線を描く
  • 補助ツールH、プロンプトP5〜P7 — この表のCSVから指標を計算するスクリプトと、パターン監査。P6〜P7には計画遵守の状態とコンディションのメモを追加する。P7は週次指標を使うため、その週に決済した行を別シートへコピーして同じ式を計算する。オートフィルターだけではCOUNT/SUM/AVERAGEの結果は変わらない
  • 補助ツールE — 計画テンプレート — この日誌の数値で四半期ごとに調整するプレイブック
  • 補助ツールJ — チェックリスト — 日誌を使い続けるためのEOD/EOWの習慣
注意事項: このページは教育用であり、投資助言ではありません。式と構成は、自分の結果を測定するためのもので、予測するものではありません。例の行や数値は、データ形式の説明であり、期待される成果ではありません。小さな標本や控除前損益からの指標は、不適切な判断につながります。そのためr_netは控除後損益から計算し、システムの評価には検証計画と、不確実性・結果間の依存への配慮が必要です。単に50取引を超えても、何も確認できません。

出典

  1. Van K. Tharp, Trade Your Way to Financial Freedom、第2版、McGraw-Hill、2007年。システムの中心的指標であるR倍数と期待値の概念が、r_net列とダッシュボードの基礎になっています。
  2. 講座内資料: 15.9 日誌と指標 (項目構成、エラーコード、MAE/MFE)、および 15.10 戦略監査 (標本から規律ある推論を行う方法)。A〜Zの26列に自己評価3項目を加えるとファイルは29列ですが、表が対応するのは15.9の番号付き29論理項目のうち約20項目です。不足する項目は、 regime, actual_tp, slippage_exit_pips と、15.9自体が「表はこの節より前に作られた」として追加を求める四項目です: lots, pip_value_at_open, strategy_version, evidence_link 。15.9のスクリプトを使う場合は、既存のAA〜AGを上書きしないよう、AH以降に任意の列として加えます。A:Zを想定するスクリプトには、引き続きその範囲だけを出力してください。
  3. 公式資料: Microsoft — 引数の区切り文字とCSV, Microsoft — CSVの読み込みと書き出し, Google Sheets — 地域設定と関数の言語。確認日:2026年9月21日。設定上の規則を示すもので、すべてのアプリケーションを試したという意味ではありません。
  4. NIST — 平均の不確実性:標本数とばらつきへの依存。すべてに共通する50取引という基準を正当化するものではありません。確認日:2026年9月21日。

Jarosław Wasiński (ヤロスワフ・ヴァシンスキ)

編集長、ForexMechanics.com • マクロ・FXアナリスト

金融市場で20年以上の経験を持つ独立系プロアナリスト。2007年からFX市場で活動し、ファンダメンタル分析・OTC市場構造・規律ある資本リスク管理を専門としています。

  • 2004年より信頼性の高い金融教育を提供するMyBank.plの創設者兼編集長。
  • 投資家・トレーダー向けに数百本の詳細な市場解説、構造分析、教育コンテンツを執筆。
  • 市場の透明性を支持し、具体的なデータと機関投資家レポート(BIS・ESMA・CFTC)に基づく教育を推進。

すべてのコンテンツは教育・情報提供のみを目的としており、投資アドバイスや推奨を構成するものではありません。レバレッジ取引(Forex/CFD)は急速な資本損失リスクを伴います。