FX

FX・スキャルピングの優位性と値幅の関係・過去20年間のデータから【ドル円】

例えば、FXの値動きの素朴な疑問として、こんな疑問をもったことはないでしょうか。

  • ドル円のチャートを前にして、20ピプス値が動くのに、平均どれくらい時間が掛かるのだろうか? 逆に、ある時間、たとえば1時間でどれくらい値が動くものなのだろうか?
  • スキャルピングで3pips程度ねらうというのは、平均的に、どれくらいの時間が掛かるものなのだろうか?

デイトレードやスキャルピングといった短期トレードが有利だとわかってはいるが、どれくらい短期トレード・スキャルピングが有利なのか、できれば具体的な数字で見てみたい。

そこで、 今回は、もっとも身近なドル円を例にして、

  • 1999年~2019年、の約20年間にわたるドル円のデータから、時間と平均値幅と標準偏差の関係について統計をとる。
  • 次に、時間とともにどれくらい値幅が伸びにくくなるか、定量的に調べる(時間への依存性を調べる)
  • 短期トレードの具体的な効率を算出

といったことを調べてまいりたいとおもいます。

まずドル円(USD/JPY)の平均値幅を調べる

平均値幅とは、例えば1時間でのレート変動の平均とします。レート変動は絶対値で評価します。

結果からご紹介しましょう。下の表はMetaQuotes Software社の1999/1/4~2019/5/24のヒストリカルデータから求めた、経過時間ごとの平均、平均値幅(絶対値)と標準偏差です。1分、5分、15分・・・120日間まで、計22について計算しました。データや計算の仕方は後ほど説明します。

1999/1/4 – 2019/5/24 ・ドル円の平均値幅と偏差
時間(分) 平均(pips)平均値幅(pips)標準偏差(pips)
1 0.0 1.4 2.3
5 0.0 2.8 4.4
15 0.0 4.7 7.4
30 0.0 6.6 10.2
601h0.0 9.3 14.3
1202h0.0 13.3 20.1
1803h0.0 16.4 24.6
2404h0.0 19.0 28.3
3606h0.0 23.6 34.5
72012h0.0 34.3 48.4
14401d0.0 50.1 68.4
28802d-0.1 70.9 95.7
43203d-0.1 87.1 116.4
57604d-0.1 101.3 133.8
72005d-0.2 113.2 149.0
1440010d-0.5 162.3 210.3
2880020d-1.1 230.1 297.3
5760040d-4.2 318.3 418.2
8640060d-7.5 403.6 529.5
11520080d-12.0 473.7 620.3
144000100d-16.9 531.7 696.8
172800120d-19.0 584.6 751.2

すべて1分足の始値と終値のデータから求めています。計算のもとになったローソク足の数(サンプルサイズ)は約727万です。この際できるだけ徹底的に調べてみました。

日単位の数字は相場が開いている、いわば営業日数で、120日は、暦では約半年に相当します。なお、初心者の方に向けていうと、pipsはドル円とかユーロ円とか、円を含む通貨ペアでは”1銭”に相当します。

システムメンテや、年末年始等で相場が休みの時間帯もあり、併記している日単位の換算は、だいたいの目安、としてください。

表をみると、平均値幅と標準偏差は、経過時間とともに大きくなっていきます。 例えば、1分で1.4pips, 5分で2.8pipsです。ちょうど2倍。

5分は1分の5倍だから、値幅も、1.4 × 5 = 7.0・・・当然こうはなりません。波をうつようにレートが変化していることから、これはもう直観的に理解できるところです。

時間とともに値幅は大きくなるが伸びにくくなっていきます。

たとえば、この約20年間では、ドル円・1日の平均値幅は50.1pipsです。

1分足のすべてを足すと、1.4×1440 = 2016pipsとなりますが、そのうち50pipsのおつりが日足の値幅という感じです。あとは全部、相殺してしまうわけです。

副業的FXで、トレードに使える時間を仮に2~4時間とし、1エントリーだけだったら、表から、

  • 平均値幅:13.3~19.0pips
  • 標準偏差:21.1~28.3pips

このへんがざっくり”相場”って感じでしょうか。

もし、短期トレード・スキャルピングで1トレード15分とするなら、15分の平均値幅から、4時間で、4.7pips × 16 = 75.2pips、のうちからいくらかを獲得する、という見方もできるかもしれません。

FXはゼロサムゲームといわれますが、 符号付きで平均をとれば、5日程度までは、確かにほぼゼロです。 数か月以上では若干マイナスですが、これは、この20年では若干の円高傾向にあるためです。

次に、表の値をグラフにして、値幅の伸びにくさを、もっと分かりやすくしてみます。

グラフにして時間との関係をみる

時間と値幅の関係をグラフにするにあたり、1分から120日まででは、幅がありすぎるので、まず、1分から360分(6時間)までをプロットしてみます。

いかがでしょう。時間に応じて、何か滑らかな曲線的変化をしているようにみえませんか?7200分まで広げてみましょう。7200分は5日間、週足の時間幅とほぼ同じです。

720分(12時間)以降も、変化の仕方は変わらないようです。最後に全体像を。

やはり、変化の仕方はパッ見た感じ、全く変わらないようにみえます。

せかっく3枚も図を見ていただいたのに、 同じ図をお見せしてしまったかのようです。それぞれ時間スケールはだいぶ違うハズなんですが・・・

それにしても、この放物線を横に倒したような滑らかな変化の正体は一体ナニモノなのでしょうか?

ここまでくると、平均値幅は時間と一定の関係性があるのではないか?、と想像されるとおもいます。



平均値幅も標準偏差も時間の平方根に依存する

実は、グラフが示す関係性は、”ランダムウォーク(ブラウン運動)”の距離と時間の関係とほぼ同じであることが知られております( 参考:ハースト指数の計算)。ブラウン運動のランダムウォークは原点(出発点)からの平均距離は時間の平方根に比例します。

ここから、小難しい話になって大変恐縮ですが、きっちり数字にだしてみましょう

累乗部分は平方根の0.5とは決めつけず、とりあえず未定の変数として仮定し、

$$y = at^b$$

というモデル式をデータにあてはめてみます。ここでtは時間(分)、yを平均値幅または標準偏差(ともに既知)とします。tを原因、yを結果として因果を見立てています。こうした分析は”回帰分析”とよばれます。

“あてはめ”もしくは”フィッティング”といいますのは、統計的な計算方法によって、数式(モデル)とデータの差が最小となるように、ここでいえば未定のaやbを決定することであります。

ここでは、Python(プログラミング言語)のscipyというライブラリから、”curve_fit”という関数を利用して、aとbを求めました。

R2は決定係数とよばれます。 0から1の範囲の値をとり、tでyがどれくらい説明できるかの度合いを示しています。 R2 =1で、説明変数tでyが完全に説明される、となるのですが、0.9997という値は、平均値幅も標準偏差も、時間で99.9%説明できると解釈されます。回帰分析では滅多にお目にかかれない高い数字です。

aの値は、

  • 平均値幅:a = 1.10
  • 標準偏差:a = 1.56

1を何乗しようが1なので、実際の値と多少ずれてはいますが、aは1分の平均値幅や標準偏差と解釈できます。

これだけあてはまりが良いと、1分の平均値幅や標準偏差さえわかれば、t分後の平均値幅や標準偏差も 、およそのところが分かってしまうという、便利といえば便利?なのかもしれません。

ただし、これは長期の統計の結果でして、今日のチャートの予測に使えるとか、そういうことではありません。

bの値は、それぞれ次のようになりました。

  • 平均値幅:b = 0.5200
  • 標準偏差:b = 0.5124

平方根の0.5より、わずかに大きい値となりました。もう少しtについて細かくデータを計算すればbの値も多少変わるとおもわれますが、およそ時間の平方根に比例することは確認できました。

bが1なら直線ですが、1より小さいので、時間とともに伸びにくくなるわけです。

平均だとか偏差だとか統計量とよばれるものが、y = atb、のベキ乗則のカタチでピッタリ決まってしまう姿は、スケール不変性・統計的自己相似性があるといい、時系列フラクタルの特徴とされています。

あてはめの範囲を変えてみる

1分から120日とか、広範囲であてはめたから、 R2 がほとんど1になったんじゃないか?と、疑ってみます。

確かに、こうしたモデルのあてはめの具合は、データの値のバラつき(情報量)と関係しています。極端なたとえですけれど、同じような値のデータばかりだと、いくらデータの数が多くても、それは情報量が少ないというやつで、こうしたモデルのあてはめはうまくいきません。

あてはめの範囲によっては、もしかすると R2 の値は変わってくるかもしれません。

次の2つの範囲で再度計算してみます。1時間未満のデータはなしにします。

  • 1時間から24時間まで
  • 10日から120日まで

結果を以下の表にまとめます。

平均値幅
あてはめの範囲 データ数 a b R2
1時間から24時間 7 1.01 0.5364 0.99986
10日から120日 7 1.01 0.5271 0.99918
全範囲 22 1.10 0.5200 0.99971
標準偏差
あてはめの範囲 データ数 a b R2
1時間から24時間 7 1.89 0.4928 0.99998
10日から120日 7 1.39 0.5225 0.99974
全範囲 22 1.56 0.5124 0.99979

平均値幅については、ほとんど変わりません。標準偏差については、1時間から24時間の範囲で、aとbが多少変わりましたが、R2 はとても高い値のままです。データの数を1/3にしても、範囲を変えても(時間スケールを変えても)、 R2 に影響はまったくありません。

$$y = at^b$$

時間スケールを変えても、このベキ関数のカタチがぴったりという結果になります。

参考までに、1分から60分の5個のデータにあてはめても、 R2 =0.9996になります。

どこをとっても同じ。フラクタルですなあ。

値幅から時間を逆算

あてはめに使った式は、

$$t = (\frac{y}{a})^{1/b}$$

と書けますので、a, bがわかれば、標準偏差や平均値幅のyを与えて経過時間のtが計算できます。例えば平均値幅 y=20pips とすると、前述のあてはめ結果のグラフに記載した値を使って、

$$t = (\frac{20}{1.1})^{1/0.52}=264.5(分)$$

となります。ドル円の場合、約4.4時間ですね。

実数の累乗は電卓で計算できます。EXCELの場合はPOWER関数で計算します。

スキャルピングで3pipsを狙うとしたら、

$$t = (\frac{3}{1.1})^{1/0.52}=6.9(分)$$

約7分くらい。

aは平均でも標準偏差でもよいですが、自分が狙うpipsの大きさと時間の関係を、こうやって見積もるのも一案かもしれません。

ちょっとまって、ランダムウォークなら勝てないんじゃ?

ここで、ちょっと寄り道です。

値幅は時間への強力な依存性があって、しかもランダムウォークぽい。

そもそもランダムウォークなら勝てないじゃん!?

そうですね。深淵な疑問です。とても難しい問題でございます。

値動きの多くはランダム、残りはランダムではないが、ある程度の長期でみればどうやらランダムウォークに見える(なんだかバカっぽい言い方ですが)、といった理解が主流かとおもわれます。特に超短期のティックデータでは有意にランダムではないとの研究もあります。

以上の諸事情につきましては、「経済物理学の発見」という書籍が比較的読みやすく、参考になるかも知れません。そんなわけで、本を1冊紹介しただけで、この難しい話題からは失礼させていただこうとおもうのです。すみません。

著者は、物理学者でもあり、 相場と強い結びつきがある”フラクタル”の専門家でもあります。

僭越ながら、個人的な意見(というか想像)としては、ミクロで規則性があることと、マクロで規則性がないことは、矛盾しないとおもっています。


※その後、上記の書籍を参考にして、ユーロドル、ドル円の1分足についてランダムウォークかどうかを以下の記事で検証してみました(2019/9/30)。

ランダム性からのズレ

今回はpipsの値をそのまま使いましたが、R/S解析という正規化を行ったうえで指数部分のbを求めるとき、それはハースト指数とよばれ、短期的にみて、ハースト指数が0.5からどれくらい異なるかによりランダム性の度合いを評価して、相場分析をおこなう方法があります。

世のトレーダーはランダムウォーク云々という話に全くめげていない証左でもあります。冗談ですけどね。

ランダム性からのズレに着目したアイデアは他にもあります。システムトレードよりの話で、かつ、数理的になりますが、興味のある方は次のページが参考になるかもしれません。

でも、内容的に難しいですね。私には、ですが。

なお、2からハースト指数を引いたものがフラクタル次元とされ、相場のフラクタル次元は

2 – 0.5= 1.5

1.5次元といわれています。




スキャルピング・短期トレードの時間効率

長くなりましたが、短期トレードの時間効率が計算できそうです。

平均値幅にしろ、標準偏差にしろ、およそ時間の平方根に比例することが実際に確認できました。勝ちトレードを仮定した場合、この関係から時間効率はどのように表されるのでしょうか。

くりかえしの登場となりますが、あてはめに使ったモデル式で簡単に、b=0.5として、考えてみます(話を簡単にするためスプレッドは考慮しません)。つまり、

$$y = a\sqrt{t}$$

1の平方根は1ですので、今回のように分単位の値をあてはめた場合、aはモデル上の1分の平均値幅、または1分の標準偏差を意味します。1分あたりの獲得pipsは、

$$\frac{a\sqrt{t}}{t}=\frac{a}{\sqrt{t}}$$

さらに、aで割って、これを1分を基準にした効率としますと

$$ \frac{a}{\sqrt{t}} \frac{1}{a} =\frac{1}{\sqrt{t}}$$

これは、aがどんな値であろうと、それが平均だろうと偏差だろうと、それらとは無関係に効率は時間だけで決まることを意味しています。具体的な数字をみてみましょう。

$$ たとえば5分の場合、\frac{1}{\sqrt{5}} =0.447$$

簡単のためスプレッドを考慮せずにいうと、5分は1分の約45%の効率にすぎません。

エントリーからエクジット(決済)まで、時間が短いほど効率がいい、つまり短期トレードが有利、といわれる理由です。もちろん実際にはスプレッドにより下限はあります。

スプレッドの影響

スプレッドを考慮しないと、最も効率のよいポジション保有時間は取引の最小単位時間となりますが、実際にはスプレッドや手数料があり、最大の時間効率をとるポジション保有時間が極大値として存在するはずです。

話が長くなるのでスプレッド入りの数式は省略させていただきますが、下の図は、その数式を使って、1分に対する時間効率を、スプレッドなし、0.3、1.0、の3つのケースについてプロットしたものです。

この図では、わかりづらいですが、特にスプレッド1.0の場合は5分あたりがピークにみえます。しかし、細かく計算すると、正確には極大値は2分になります。スプレッド0.3はこの図だとつぶれてしまって全然みえませんね。答えとしては11秒で極大になります。

スプレッドを考慮すると、ボラティリティも同時に関係してきて、話がややこしくなるので、次の別エントリーにまとめした。詳しくはこちらをご覧ください。

短期トレードの危険性

ポジション保有期間が短いほど効率が良い?

それは勝率が高い優秀なトレーダーあるいはAIだからこそ、”効率”なのであって、もし下手な人が、いわゆるスキャルピングをしたらどうなるでしょうか。

ヘンないい方ですが、効率的に負けることになります。大負けしやすい。それはポジポジ病と呼ぶべきです。勝てないスキャルピングはポジポジ病と同じといってもいいでしょう。

短期トレードが有利であることは、裏を返すと、ポジポジ病は大負けするということです。表裏一体。

スキャルピング有利もポジポジ病大敗も、相場の統計的性質から同時に帰結されるわけです。

そこは注意が必要です。

最近、勝つなら短期トレード、そんな声をよく聞くようになりました。

そんな声に、あえて水を差しますが、短期トレードの危険な側面は、もっと強調されてもよいのではないか、私はそこはかとなく、そうおもうのであります。

秒スキャは迷惑でしょうけど、基本的にFX会社がスキャルピングを嫌う理由はさほどないと想像してます。私がそう思う理由は・・・もうおわかりですよね?

初心者は長い時間足から始めるべきなのか

メインのおはなしは以上なんですが、補足の考察をしてみたいとおもいます。

初心者は、例えば日足や4時間足のチャートでトレードを考えるのが望ましく、とにかく長い時間足から始めるべきという意見がよくきかれますよね?

以上の統計的性質からも、それは一理あるといえます。

一方で、トレード回数の点で、経験をつみづらいため、低枚数(低レバレッジ)でもっと短い時間足で練習をするほうがよい、という意見もあります。

私個人は、どちらかといえば後者の側です。FXはレバレッジで大半のリスクをコントロールできるからです。FXのリスクはほとんどが自制心の問題です。

ひとついえますことは、スキャルピングだからロットを厚くするとか、初心者がそんな知識だけ取り入れて短期トレードしてしまうと、ほぼまちがいなく、速攻で相場から退場となるだろう、ということです。

短期トレードの優位性を強調した、実践的な裁量トレード指南書としては、元為替ディーラー矢口新さんの「矢口新の短期トレード教室」が参考になります。

値幅は時間の平方根に比例するからスキャルピング有利、というおはなしはこの本でも登場します。ただ、危険性への言及はないようですが。

余談ですが、為替ディーラー視点での各種主要テクニカル指標の評論も面白いとおもいました。

値動きの素朴な疑問

今回のトピックは以上になります。短期トレードの優位性がどの程度かをしらべるために値動きの全体像についてみてきましたが、ひとつの側面にすぎず、まだまだ気になる点は多くあります。

  • そもそも値幅の頻度分布はどうなのか。たとえば1時間で20pips以上動く頻度(or 確率)は?
  • 他の主要な通貨ペアとの比較。EUR/USD, EUR/JPY, GBP/JPYなど
  • 東京、ロンドン、NY、時間帯によってどれくらい値幅が異なっているのか
  • 年や月、季節的違い
  • 短期で見ればランダムウォークは崩れているのか

相場を見るうえで、トレードの基準や尺度として役立つ数字をご紹介していきたいなと考えております。

データと計算方法

かしこまった記事ではないので最後になりましたが、データと計算方法を簡単にご説明します。おもしろくはないので、よまなくてもいいです。気になる方だけ。

データ

データについてはMetaTrader(MT)を採用する海外FXブローカ、XM Tradingから取得しています。XMのMTからはMetaQuotesの長期のデータがとれます(いまのところ)。

プラザ合意どころか固定相場時代の1971/1/4からデータがとれてしまいますが、1分足単位となっているのは、ユーロが決済用仮想通貨として登場した28年後の1999年からです。それまでは日足単位。もし、XM経由でデータを取得する方がいましたら、ご注意ください。

もっとも、日足でざっくり分析しようという方には1998年以前のデータも重宝するかもしれません。

アカウントをもっているため、私はXMだっただけで、MT用データでいえば、FXDDや、 OANDA、2004年からでよければ海外ブローカーのAlpariのデモ口座でもよいかとおもいます。



とりわけシステムトレード愛好家からは、蛇蝎のごとく嫌われているMetaQuotesのデータではあります。分単位で多少データがとぶ個所も見受けられますね。

しかし、細かい変化をみるわけではないし、長期にわたり平均だとか偏差だとかの要約をしてしまうので、今回は無問題とさせていただきました。

計算方法

データは1分足のみを使用しています。たとえば、5分の平均値幅については、1分足を3本とばして、1本目の始値と5本目の終値の差をとります。そして絶対値になおします。これを1本(1分)づつずらしながら計算しています。

このため、120日という期間の値幅でも、統計をとるサンプルサイズは約710万になります。

例えば1日の値幅は、日足の値幅を平均したものではない、ということにご注意ください。

EXCELでも確認可能です

計算は平均と偏差だけですから、ロジックはいたって簡単です。プログラミングができる方は、データさえあれば、この記事と同様の結果を得るのは容易とおもいます。

身近なEXCELではどうか?というと、データサイズは大きいというほではないものの、レコード数(行数)が約730万あり、残念ながらこの記事の分量の計算は、EXCELでは難しいです。

ですが、2年程度ならEXCELでも可能ですし、先走りますが、1年程度の長さでも、平均値幅や偏差の時間への依存性を確認できます。この記事の内容は、興味のある方なら、だれでも確認することが可能です。

あてはめ(フィッティング)については、ここではscipyを利用しましたが、今回の目的では、EXCELの”累乗近似”機能でも全然OKです。非常に便利です。

※小難しい話で大変恐縮ですが、EXCELの累乗近似では、対数変換後に最小二乗法とよばれるフィッティング方法を適用するため(つまり非線形フィッティングではない)、この記事で使用したscipyの関数の結果と異なりますが、超微差でございます。

エンジニア系ブログでもサイエンティスト系ブログでもありませんので、ITはあくまでツール、トレーダー的興味の範囲で、なるべく簡単に目的が達成できればOK、今後もそのような方針で進めたい所存です。

以上、トレードの尺度のひとつとして、お役にたてれば幸いです。