Yahoo!外為「ソトタメ。」から派生した、『千のFX千夜一夜』(外国為替証拠金取引の資料集)の新しいページ。

千のFX千夜一夜 第三十四夜 〜 数学遊び:フラクタルで相場を模擬する

トップページ ←第三十三夜 第三十五夜

今回は、趣向を変えて、相場の動きを「ランダムウォーク(random walk)」と「フラクタル(fractal)=自己相似」の2つの点で、数学的に「仮想の相場」を作り出して見てみよう。

以前、第二十四夜(ローソク足)や第二十八夜(フィボナッチ・リトレースメント)で、ローソク足はどの時間足をとってもどれも似たように見える(言い換えると、長い時間足のチャートを拡大して細かい動きを見ていくと、拡大してもその中に相似の動きが見えてくる)ということを述べた。

全体の一部を拡大すると、その一部が全体と相似な形をしていることをフラクタル(fractal)、あるいは自己相似というが、ローソク足チャートがその性格を持っていることから、相場の動きもそれに近い性格を持っていそうだ。

ランダムウォーク

特に、為替相場は、基本的には「次に上がるか下がるかは五分五分」という世界で、もちろん経済指標などの動きはあるが、概ね「ランダムウォーク(random walk)」と呼ばれる動きで作られていくとも言われる。

ランダムウォークというのは、全くあてずっぽうにランダムに次の位置を決めて動いていくことで、上がるか下がるか確率は決まっているがどっちに行くかは予想不能、というものだ。日本語では「酔歩(すいほ)」とも言う。

そして、ランダムウォークで出来上がる図形は、概ね、フラクタルな性格を帯びることが多いそうだ。

そこで、まずは、数学的に、あるレートを始点として、次の瞬間に上がるか下がるかを五分五分にしたとき、その後どんなチャートが描けるか、思考実験してみよう。

条件は、
  • 始点=95円
  • ランダムウォーク 1回ごとに、50%の確率で1pip上がるか下がるか
  • 時間軸 1回を15秒とし、全部で51,840回9日間相当)
とする。

次の2つの例は、その結果だ。

ランダムウォークの例A


ランダムウォークの例B


日付は適当で、しかも表示の都合上、休日無く連続であるが、良しとしよう。95円から始まって、だいたい9日間で93円〜97円まで推移し、どちらも案外と「本物のチャートっぽい」風情を出している。

なお、ランダムウォークなので、上がる確率と下がる確率が等しければ、だいたい始点から離れないのでは?‥とも思えるが、やってみると、時々、次のように、9日間上昇し続けたり下落し続けたりするパターンも出てくる。

ランダムウォーク ─ 上昇パターン


ランダムウォーク ─ 下落パターン


これらも、95円から、上昇パターンでは101円くらいまで、下落パターンでは87円くらいまで行っており、ずるずると上昇(下落)するパターンとしても割とリアルな感じである。1回に上がるか下がるかする確率は50%なのに、51840回の連続では、ここまで上がったり下がったりしてしまうケースも普通に出てくる。

もちろん、これらは単純にプログラムで乱数を使って生成したものであって、実際の相場とは関係ないし、実際の相場もこのように形成されているわけではない。単に、ランダムウォークで「相場もどき」を作っても、案外と似たようなものが作れるということだ(=実際の相場も、ランダムウォーク的な形成のされ方をする、と言っても良い)。

フラクタル

さて、ランダムウォークで相場を作ると、だいたい実際の相場の雰囲気をかもしだすチャートになることが分かったが、ここからフラクタルの性質を確認するのは少々難しい。

そこで今度は、ダイレクトにフラクタルな式を導入して、「相場を作り出して」しまおう。

次の式は、数学的にフラクタルな性格を帯びるよう作られた式である。

式の意味は難しいが、sinは、サイン関数(正弦関数)で、周期成分を持つ関数だ。その中身に、aのk乗というファクターが入っているが、これはkが大きくなるにしたがって周期の速さがa倍に速くなる周期が短くなる)成分を表す。つまり、徐々に細かくなる波を足し合わせている。さらに、徐々に細かい波は、振動の幅も小さくなるので、それを割り算の分母に入れている。こうして、ゆっくりで大きな波から、徐々に速くて小さな波まで、一定の比率で速く・小さくなる波を次々と加算してゆく。こうすると、数式の上からもフラクタルな、部分を拡大すれば全体に相似なものになる。

なお、この式のままだと、中心値が 0 になってしまうので、実際の相場にあわせて中心値が95円になるよう、95を加算しておこう。また、大きい波から小さい波まで加え合わせる数(N)を、50にする。すると、この式は、

のようになる。

さらに、次の条件を加える。
  • a=1.91n=0.55(これらは、相場の雰囲気が丁度良くなるよう決めたもの)
  • xは、0〜5.1839まで。0.0001刻み(データ数=51,840個)
  • xの0.0001を、15秒とする(全体で9日間

これで、1データ15秒、全体で9日間(51840個)なので、先程のランダムウォークの場合とデータ数や時間幅は一緒だ。

このようにして作られたチャートは、次のようになる。

フラクタルチャート


どうだろうか。こちらも、雰囲気としては実際の相場っぽい雰囲気をかもしだしている。だいたい、93.5円〜97円くらいで、概ね穏やかな相場運びだ。

途中の1/5〜1/6のところの24時間のところ(緑の縦線が入っている)を拡大してみよう。

フラクタルチャート ─ 拡大


細部は当然異なっているが、全体の雰囲気はさほど変わったように見えないだろう。これは、もともと数式が自己相似の性格を持つように作ってあるからだが、実際の相場も、時間足を拡大しても見た目の雰囲気が変わらないという点で、似ている。

さらに、先程のフラクタルチャート(全体)を、ローソク足に変換してみよう。ここでは雰囲気を味わうために、データ数400個を1つのローソクに押し込める。いわば「100分足チャート」だ。(通常、100分足チャートというのは存在しないが)

フラクタルチャートをローソク足に(400本=100分足チャート)


こちらも、かなりリアルな感じだ。谷にあたるところの下ヒゲの出方、上昇中の何段階かの押し目の出来方、マイナーなダブルボトム2回、そして微妙にヘッド&ショルダーズ(三尊天井)の形成など、相場っぽい特徴が随所に見られる。

もう1つ、先程のフラクタルチャート(全体)を見てもらうと、1/4高値95.85を付けており、翌1/5安値93.47を付けている。この高安から作る61.8%戻しフィボナッチ・リトレースメントは計算上94.94だ。そして、実際、この高安の後、1/695.05で一旦反転する(10pips程度の誤差はあるが)。さらに、この高値95.85は、その後1/7に一旦レジスタンスとして機能したかのような押し目の戻り点にもなっており、また最高値から戻ってきた1/8にももみ合いポイントになっている。もちろん、そのようなことを意図して作ったわけではないのだが、いかにも実際の相場のチャートを見ているようで、面白いものだ。

これらはあくまで数学遊びだ。

だが、ランダムに生成したり、フラクタルを意識したりして相場を人工的に生成しても、案外リアルなものになってしまうのだ。

実際の相場は、ランダムウォークに近い確率論的動きをしつつ、全体としてフラクタルな性格を帯びる、というのを、初めからランダムウォーク、あるいはフラクタルで相場を人工的に作ったらリアルに見えるか?という点で遊んでみたものである。

トップページ ←第三十三夜 第三十五夜

Wiki内検索

管理人/副管理人のみ編集できます