曜日別に日足の値幅を平均すると、ほぼ必ず差が出ます。ただしその差の大半は、サンプル数の少なさと値幅分布の歪みから生まれる見かけの差で、前提(期間・通貨ペア・日付の区切り方)を変えると順位が入れ替わることが珍しくありません。だから確かめるべきは「どの曜日が大きいか」ではなく「この差は偶然の範囲に収まるか」です。この記事では、集計前に固めておく前提、並べ替えによる偶然の範囲の見積もり、そして差が出ても信用できない相場条件までを、手順として並べます。
そもそも「値幅」をどう定義する?
値幅という言葉は曖昧です。少なくとも次の3つは別物で、どれを使うかで曜日の順位は変わります。
- 高値−安値(レンジ):その日の振れの大きさ。方向を含まない。
- 終値−始値の絶対値(実体):日中にどれだけ片方向に動いたか。往復の動きは消える。
- True Range:前日終値を含めたレンジ。窓(ギャップ)を取りこぼさない。
True Range は前日終値と当日高値・当日安値の関係から求める値で、週明けの窓を含めたいときに使います。月曜だけ窓の影響を受けやすいため、レンジで測るか True Range で測るかによって月曜の見え方が変わる、という点は先に認識しておきます。値幅の記録そのものの型は荒れた日を数値で切り分けるATR記録法で扱った考え方がそのまま使えます。
さらに、単位を価格差(pips)にするか、始値で割った比率にするかも決めます。長期間を対象にすると価格水準そのものが変わるため、比率のほうが期間をまたいだ比較に向きます。
集計前に固める前提は何か
曜日の検証が壊れる原因のほとんどは、統計ではなく前提の曖昧さです。次の項目を、集計コードを書く前に文章で決めておきます。
| 項目 | 決めること | 注意点 |
|---|---|---|
| 日足の区切り | どの時刻を日付の変わり目にするか | 業者のサーバー時刻基準か、日本時間基準かで曜日の中身が数時間ずれる |
| 夏時間 | 切替週の扱い | 切替週だけ1時間ずれた足が混ざる |
| 日曜足 | 週明け数時間だけの足を含めるか | 含めると「日曜」が極端に小さい値幅の群になる |
| 祝日 | 除外するか、フラグを付けて残すか | 主要市場の休場日は曜日に偏って出る |
| 対象期間と通貨ペア | 開始日・終了日・銘柄を1つに固定 | 後から期間を伸縮させると探索になる |
| 欠損・重複 | 除外基準 | 同一時刻の重複行、値がゼロの行 |
特に日足の区切りは影響が大きい項目です。多くのFX業者はニューヨーククローズを日付の境にしますが、これが日本時間の何時にあたるかは夏時間で変わります。検証結果が1時間ずれているときの切り分けは検証の1時間ずれ、夏時間を疑う確認手順にまとめた手順が使えます。データ側の下ごしらえは検証のブレを潰すデータ仕様7項目と合わせて確認しておくと、後から「どの定義で出した数字か分からない」という事態を避けられます。
どれだけのサンプルが集まるのか
1年は約52週なので、1曜日あたり年に約52本。5年分を集めても1曜日およそ260本で、祝日や欠損を除くとさらに減ります。これは「5年分のデータ」と聞いたときの印象よりずっと少ない数です。
加えて、値幅の分布は右に長い裾を引きます。数日の急変動が平均を押し上げるため、平均値だけを曜日別に並べると、たった数本のイベント日がその曜日の順位を決めてしまいます。対策は次の3つです。
- 平均と併せて中央値を出す。中央値で順位が変わるなら、平均の差は外れ値由来の疑いが濃い。
- 75%点・90%点といった分位点も出す。「平均は同じだが荒れる日の比率が違う」という形の差を見つけられる。
- 値幅の対数を取って比較する。裾の影響を圧縮できる。
差が偶然の範囲かはどう確かめる?
一番素直で、仮定が少ない方法は並べ替え検定(permutation test)です。考え方は単純で、「曜日ラベルに意味がない」という前提で実際に曜日ラベルをシャッフルし、そのときに偶然生まれる差の大きさを何千回も作ってみる、というものです。
手順は次のとおりです。
- 実データで、曜日別の中央値を計算し、最大値と最小値の差を記録する(これを観測値とする)。
- 値幅の列はそのままに、曜日ラベルだけをランダムに並べ替える。
- 並べ替えたデータで同じ統計量(中央値の最大−最小)を計算する。
- 2〜3を数千回繰り返し、分布を作る。
- 観測値がその分布の中でどの位置にあるかを見る。分布の大半に埋もれているなら、偶然の範囲として扱う。
この方法の利点は、分布の形を仮定しないことと、何が「偶然の範囲」かを自分の目で分布として確認できることです。正規分布を前提とする分散分析より、値幅のような歪んだデータに向きます。順位にもとづく Kruskal-Wallis 検定、ばらつきの違いを見る Brown-Forsythe 検定なども候補ですが、どれを使うにせよ検定を回す前に「どの統計量で判断するか」を1つ決めておくことが条件です。
なお、検定は「差がない」ことを証明する道具ではありません。言えるのは「このサンプル数では、偶然と区別できなかった」までです。
5曜日を比べると何が起きるのか
ここが曜日検証の最大の落とし穴です。5つの曜日から2つを選ぶ組み合わせは10通りあります。各ペアを個別に検定して「5%水準で有意」を探すと、本当は差がなくても、どれか1つが引っかかる確率は5%よりかなり高くなります。これを多重比較の問題と呼びます。
対処は3つあります。
- まず全体の検定(5曜日まとめて差があるか)を1回だけ行い、そこを通らなければ個別比較に進まない。
- 個別比較を行うなら、ボンフェローニ補正のように基準を厳しくする。
- 検証前に「月曜と金曜だけを比べる」と対象を絞って宣言しておく。
加えて、期間を分けた再現確認が実質的に最も効きます。前半期間で差が出た曜日が、後半期間でも同じ方向に出るか。出なければ、その差は前半の相場環境に貼り付いた特徴だった可能性が高くなります。同種の「カレンダーの癖」を扱う視点は月末の癖は本物か、偶然かを見分けると共通です。
この手順が機能しない相場条件
曜日別集計が意味を失う、あるいは誤った差を作り出す条件を挙げます。
- イベント日が特定曜日に偏る期間:主要中銀の政策発表や米国の雇用統計のように、曜日が固定されやすい予定があります。この場合、検出されるのは「曜日の癖」ではなく「イベント日の癖」です。イベント日にフラグを立て、除外した集計と並べて比較します(切り分けの考え方は中銀発表日は声明と会見を別イベントとして測るが参考になります)。
- 相場レジームが期間内で変わった場合:低ボラティリティ期と高ボラティリティ期が混在すると、どちらの期間が多く含まれるかで曜日の順位が動きます。期間を分けた再現確認が必須です。
- サンプルが1〜2年しかない場合:1曜日あたり50〜100本では、並べ替え検定の分布が広く、よほど大きな差でなければ偶然と区別できません。「差が無い」のではなく「判定できない」状態です。
- 複数ペア・複数定義を総当たりした場合:10ペア × 3つの値幅定義 × 2つの統計量を試せば、検定の回数は60回です。何かは必ず有意に見えます。試した回数を記録していないなら、結論は出せません。
- 曜日差をそのまま売買サイズに直結させる場合:仮に統計的な差が残っても、スプレッドや約定のずれを引いた後にも残るかは別問題です。コスト込みで評価しないと、紙の上の差で終わります。
まとめ
曜日別の値幅検証は、統計手法の難しさよりも前提設計で結果が決まります。手順を整理すると次のとおりです。
- 値幅の定義(レンジ/実体/True Range、価格差か比率か)を1つ選ぶ。
- 日付の区切り時刻、夏時間、日曜足、祝日、欠損の扱いを文章で固定する。
- 曜日別に平均・中央値・分位点を出し、平均だけで判断しない。
- 並べ替え検定で、ラベルをシャッフルしたときに生まれる差の分布を作り、観測値の位置を見る。
- 多重比較に注意し、全体検定を先に置く。比較対象は事前に絞る。
- 期間を前半・後半に分け、同じ方向の差が再現するかを確認する。
- イベント日フラグを立て、除外した場合の結果と並べる。
この手順を踏んでも、得られるのは「このデータ・この期間では偶然と区別できた/できなかった」という限定的な結論です。将来も同じ傾向が続く保証はなく、実際の売買ではスプレッドやスリッページ、資金管理の制約が加わります。検証結果を運用に持ち込む場合は、必ず損失が出る前提で許容幅を先に決めてください。曜日検証の本当の価値は、有利な曜日を見つけることよりも、「自分の集計がどれだけ前提に依存しているか」を体で理解する点にあります。
この記事は、AI で下書きを作り、益山康秀(運営者)が内容を確認して公開しています
この記事は情報の提供を目的としたもので、特定の金融商品の売買をすすめるものではありません。売買の判断は、ご自身の責任で行ってください。(運営者情報)