取引日誌 — 表計算、統計、運用成績の振り返り
約20分で日誌を作るための完全ガイドです。表計算の基礎に慣れた人の目安であり、最初の読み込みやデータ確認にはさらに時間がかかる場合があります。26列の技術的な列名は、 記事15.9と共通です。各行の式と九つの指標のダッシュボードを、ポーランド語版・英語版Excelの二通りで示し、クラウド表計算の設定も後で説明します。ブラウザー内で生成する開始用CSVも付いています。完成済みXLSXをダウンロードすることも、以下の手順で自分で作ることもできます。式を理解すれば、計算内容を把握して自分で修正できます。列名が共通なので、区切り文字、文字コード、日付形式を正しく選んだCSV出力は、 補助ツールI の完成済みS1〜S3スクリプトと、 プロンプトP5のスクリプトに使えます。P6〜P7の監査には、後述する追加の二列が必要です。
- 五つのグループに分けた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日誌
ファイルには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).
構成:5グループ、26列
列記号(A〜Z)は、以下の式が使う配置に対応します。順序を変えたら参照も更新してください。技術的な列名は英語のままにすると、見出しを読み替えずにCSVをP5スクリプトへ渡せます。15.9の自己評価三項目(mental_state、sleep_hours、decision_quality)を、任意のAA〜AC列として追加できます。ファイルには含まれており、計算式の必須入力ではありません。
| 列 | 見出し | グループ1:識別情報 | 例 |
|---|---|---|---|
| A | trade_id | 連番またはプラットフォームのID | 2026-041 |
| B | open_time_utc | 新規約定の日時をUTCで記録します。MT4/MT5の出力はブローカーのサーバー時刻(例:GMT+2/+3。仕様を確認)なので、サーバーのタイムゾーンから換算してください(15.9)。形式: YYYY-MM-DD HH:MM | 2026-07-08 07:42 |
| C | close_time_utc | 決済日時をUTCで記録します(Bと同様)。表計算上の実際の日付・時刻の値を使い、文字列にはしません。空欄は未決済取引として指標から除外します。無効な日付や、新規約定より前の決済時刻ではRを計算しません。 | 2026-07-08 13:15 |
| D | pair | 銘柄は6文字で、区切り記号やブローカー接尾辞を付けません(EURUSDとし、EUR/USDやEURUSD.mは使わない)。pip式が対象とするのはFXペアだけです。一pipは0.0001、JPYで終わるペアは0.01とします。ほかの銘柄は、仕様のpipサイズを入力し、乗数を変更してください。 | EURUSD |
| E | direction | long / short(小文字。スリッページの式が文字列を比較します) | long |
| 列 | 見出し | グループ2:文脈 | 例 |
|---|---|---|---|
| F | setup | プレイブックのセットアップ名(補助ツールE) | asia-london-breakout |
| G | setup_class | A+ / A / B / C — エントリー時点のプレイブック等級。ファイルの選択肢は15.9に従います。その後の結果を見て等級を付けないでください。 | A+ |
| H | session | エントリーのセッション(Asia / London / NY / overlap) | London |
| 列 | 見出し | グループ3:計画と約定 | 例 |
|---|---|---|---|
| I | planned_entry | 計画したエントリー価格(発注前に記録) | 1.0850 |
| J | actual_entry | プラットフォーム上の実際の約定価格 | 1.0852 |
| K | planned_sl | 計画した損切り価格 | 1.0820 |
| L | planned_tp | 計画した利確価格 | 1.0910 |
| M | actual_exit | 実際の決済価格 | 1.0907 |
| N | spread_pips | エントリー時のスプレッド | 0.7 |
| O | slippage_entry_pips | 計算式 — エントリーのスリッページをpipsで表示。プラスなら不利な約定 | 2.0 |
| 列 | 見出し | グループ4:コストと結果 | 例 |
|---|---|---|---|
| P | swap | 符号付きのスワップ額を口座通貨で記録(コストはマイナス) | −3.20 |
| Q | commission | 手数料はゼロ以上のコストとして入力。手数料がなければ0。ブローカーの出力でコストがマイナスなら正の値に変え、式が利益へ加算しないようにする | 7.00 |
| R | broker_gross_pnl | プラットフォームのコスト控除前損益:スプレッドと約定価格の影響は反映済みで、スワップと手数料を引く前の値 | 201.67 |
| S | broker_net_pnl | 計算式 (ブローカーがコスト控除後損益を示す場合は手動入力) | 191.47 |
| T | planned_gross_pnl | 計画損益は、 同じ種類の決済 に対応させます(金額)。TP決済には計画TP、損切り決済には計画SLを使います。手動決済や時間による決済では空欄にし、ファイルではWも空欄になります。一方、15.9では、その場合の執行ロスをエントリースリッページ、手数料、スワップのR単位の合計、(O × pip価値 + Q − P) / Uとして計算します。スワップPの符号は保ち、マイナスはコストです。この計算は式の外で手動で行います。 | 220.00 |
| U | planned_risk | 口座通貨建ての計画リスク(例ではUSD)。計画エントリーから計画SLまでのpip数 × 計画取引量のpip価値で求めます。この取引のRの分母は固定し、後で損失額に合わせて変えません。損失上限の保証ではなく、価格の飛び、スリッページ、コストで実際の損失が増える場合があります。 | 110.00 |
| V | r_net | 計算式 — コスト控除後損益をR単位で表示。運用成績の指標の元になる列 | 1.74 |
| W | execution_drag_R | 計算式 — 計画したコスト控除前損益と実際の控除後損益との差をR単位で表示。計画より結果が良ければマイナスになる場合がある | 0.26 |
| 列 | 見出し | グループ5:プロセス | 例 |
|---|---|---|---|
| X | mae_r | ポジション保有中の最大逆行幅をR単位で表示(定義:15.9、第7節) | 0.35 |
| Y | mfe_r | ポジション保有中の最大順行幅をR単位で表示 | 2.10 |
| Z | error_code | 0 = ミスのない執行、1〜9 = 判断ミスのコード、10 = インフラ障害(一覧:15.9) | 0 |
行ごとの式 — 計算列
計算式の種類:
設定: PL版はポーランド語の関数名とセミコロン、EN版は英語名とカンマを使います。区切り文字は地域設定によって変わり、Google Sheetsでは関数の言語を別に設定します。読み込み時にB/Cを日付・時刻に設定し、次で確認してください: =CZY.LICZBA(C2) (EN版: =ISNUMBER(C2))。正しい結果はPRAWDA/TRUEです。セルの見た目だけを変えても十分ではありません。
式を2行目に入力し、下までコピーします。範囲にまとめて貼り付けても構いません。対象は1000行目までです。日誌を長くする場合は、行の式、入力規則、ダッシュボードの全範囲、入力の整合性を確認する式も延長してください。
=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),"")
=JEŻELI(ORAZ(ILE.LICZB(P2:R2)=3;Q2>=0);R2+P2-Q2;"")
=IF(AND(COUNT(P2:R2)=3,Q2>=0),R2+P2-Q2,"")
=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,""),"")
=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に基づいて一部を選びます。
取引数: =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)
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)
平均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)) (任意。ファイルには未収録)
決済済みで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")
| 指標 | 結果の読み方と限界 |
|---|---|
| 勝率 | 単独では優位性を示しません。下の図を参照してください。決済済み取引がない場合は空欄で、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%は、日誌全体を表しません。重大な違反には、割合に関係なく対応が必要です。規則違反の取引から得た指標は、その規則を正しく守った場合の検証にはなりません。 |
開始用CSVと読み込み
ボタンは、データ送信や別のネットワーク通信を行わず、ブラウザー内だけでCSVを作ります。26見出しと、勝ち・負け一件ずつの例を含み、式の動作を確認できます。PL版はセミコロンと小数カンマを使います。読み込み時には区切り文字を明示的に選び、ダブルクリック時の挙動はシステム設定によることに注意してください。EN版はカンマ区切りと小数点です。読み込み後は、例の計算列(O、S、V、W)を上記の式に置き換え、初回記録の前に例を削除するか、別ファイルに保存します。CSVでは、プログラムで表示している精度のまま出力される場合があります。XLSX 1.2のVとWは小数点以下六桁を使います。開始用CSVも、各行の金額から求めた六桁の値です。この丸めで個々のRの誤差は0.0000005 Rを超えませんが、損失合計が非常に小さいとPFはより敏感になります。絶対値が0.0000005 R未満の結果はゼロに丸められ、勝敗分類と勝率が変わる場合があります。その場合は出力前に精度を上げてください。高精度の分析が必要なら、後のスクリプトだけではなく、出力前に桁数を増やします。
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はスクリプトを生成する指示であり、結果を保証する完成済みファイルではありません。
順を追って作る
- 空の表計算ファイルを作る ExcelかLibreOffice Calcを使います。クラウド表計算でも作れますが、口座データであることを踏まえて意識的に選んでください。
- 開始用CSVを読み込む または構成表から見出しをコピーします。数値が数値として読み込まれたか確認してください。「1.0850」が文字列になるなら、区切り方式とシステム設定が一致していません。
- 各行の計算式を貼り付ける O2、S2、V2、W2に貼り付け、余裕を持たせた行数まで下にコピーします。
- ダッシュボードを貼り付ける 指標1〜9を、表の上か別のシートに置きます。補助列AE、AF、AGも、各行の式と同様に、用意した最終行までコピーしてください。
- 記録の習慣を決める: 取引を決済するたびに記録します。この手順は、 補助ツールJ のEODチェックリストにも含まれます。指標は週次に確認し、プレイブックの判断は四半期ごとに行います(補助ツールE).
よくある質問
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では、コードと同じように式もレビューできます。
関連する講座資料
- 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の習慣
出典
- Van K. Tharp, Trade Your Way to Financial Freedom、第2版、McGraw-Hill、2007年。システムの中心的指標であるR倍数と期待値の概念が、r_net列とダッシュボードの基礎になっています。
- 講座内資料: 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を想定するスクリプトには、引き続きその範囲だけを出力してください。
- 公式資料: Microsoft — 引数の区切り文字とCSV, Microsoft — CSVの読み込みと書き出し, Google Sheets — 地域設定と関数の言語。確認日:2026年9月21日。設定上の規則を示すもので、すべてのアプリケーションを試したという意味ではありません。
- NIST — 平均の不確実性:標本数とばらつきへの依存。すべてに共通する50取引という基準を正当化するものではありません。確認日:2026年9月21日。