ストラテジーの探し方

タイル並べとフィボナッチ数列の関係

タイル並べとフィボナッチ数列の関係

フィボナッチ数列のようでフィボナッチ数列でないC_nが登場しましたが、これを用いることでX²-5Y²=1のが通る格子点の一部(の一部?)を表すことが出来ました。逆にこれらの点であることが、この双曲線が通る格子点であることの必要条件を示せれば、あとは簡単なのではないかと思います。次回はこれを証明するか、証明ができなかったらそうであると仮定して、(X,Y)がフィボナッチ格子点(x,y)に一対一対応することを証明するつもりです。

整数の公式でフィボナッチ数列を求める

よって、もし \(m = \left(\begin 1 & 1 \\ 1 & 0 \end \right)^n\) なら、 \(bn = m\\) になります(Pythonと違って、行列の添え字は通常1が基準になることに注意してください)。 NumPy行列のべき乗が繰り返し二乗法のような振る舞いをすると想定すると、計算量は \(O(\mathrm\ n)\) になります。 さらに、漸化式を解くために、閉じた式を見つける方法もあります。 これにより、次の実数値の公式が導かれます: \(\phi = (1 + \sqrt) / 2\) 、 \(\psi = (1 - \sqrt) / 2\) とすると、 \(\mathrm(n) = (\phi^ - \psi^) / \sqrt)\) 。 この手法には、任意精度の実数計算を要するという実用上の欠点がありますが、 \(n\) の値が小さければ問題はありません。

任意の数列 \(an\) の母関数は、 \(\Sigman anx^n\) の無限和です。フィボナッチ数列の場合は \(\Sigman \mathrm(n)x^n\) になります。つまり、これは無限に続くべき級数であり、 \(x^n\) の係数は \(n\) 番目のフィボナッチ数に相当します。

この式に \(x^\) をかけて \(n\) 全体で和をとると、以下の式が得られます。

\(F(x)タイル並べとフィボナッチ数列の関係 \) を \(\mathrm\) の母関数として、それを \(\Sigma_n\mathrm(n)x^n\) と定義すると、上の式は次のように簡略化できます。

\[F(x) - x - 1 = x(F(x) - 1) + x^2F(x)\]

\[F(x) = xF(x) + x^2F(x) + 1\]

これを \(F\) について解くと以下の式が得られます。

整数の公式

まずは、この公式を直感的にとらえるため、 \(10^\) で母関数 \(F\) を評価してみましょう。

興味深いことに、小数展開した部分に \(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, タイル並べとフィボナッチ数列の関係 89\) と、フィボナッチ数列が現れています。魔法のような結果に驚いてしまいますが、その理由は次の式から分かります。

\(F(10^) = \mathrm(0) + \mathrm(1)/10^3 + \mathrm(2)/10^6 + \mathrm(3)タイル並べとフィボナッチ数列の関係 /10^9 + \ldots\)

この例では、フィボナッチ数列が次々と \(1/1000\) 倍されて並んでいきます。つまり、その値が一旦1000を超えると、隣り合う数に影響を及ぼし始めるということです。この現象は、上記の \(F(タイル並べとフィボナッチ数列の関係 10^)\) の計算で988から確認できます。正しいフィボナッチ数は987ですが、数列の次の数から1だけオーバーフローが発生しています。その結果Off-by-oneエラーが発生し、以降はパターンが崩れてしまうのです。

しかし、いかなる \(n\) の値に対しても、10の負の指数を十分大きく取れば、たとえオーバーフローが発生したとしても、 \(n\) 番目のフィボナッチ数に悪影響が出ることはありません。ここでは、ある タイル並べとフィボナッチ数列の関係 タイル並べとフィボナッチ数列の関係 \(k\) という値について \(10^\) が妥当な値になると仮定しましょう。この値は後ほど選定します。

さらに整数で計算をしたいので(その方がコーディングしやすいので)、全体を \(10^\) 倍して \(n\) 番目のフィボナッチ数が整数の範囲にくるようにして、式を整理します。

この結果を \(10^k\) を法として見ると、 \(n\) 番目のフィボナッチ数が得られます(先ほども書きましたが、 \(k\) には十分大きな値を選んだものと想定しています)。

あとは \(\mathrm(n+1)\) \(2^k\) になるように、 \(k\) を十分大きく取るだけです。フィボナッチ数列は \(\phi^n\) のように増大して、 \(\phi\) タイル並べとフィボナッチ数列の関係 < \(2\) なので、 \(k = n+1\) とすれば安全です。

非反復型で閉じた解が得られたのは興味深いですが、これは全く実用的な手法ではありません。ここではサイズが \( O(n^2) \) ビットの整数を用いて、整数演算を実行しています。でも実際には、最終的にビット単位で論理積を取る前に、最初の \( n \) 個のフィボナッチ数が全て連結した整数値を取得しているのです。

専業トレーダーが明かす「FXで勝てる」フィボナッチの使い方

フィボナッチいろいろ

800px-Leonardo_da_Pisa


ドゥオモ広場にあるフィボナッチさんの像 wikipediaより

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233….

0 + タイル並べとフィボナッチ数列の関係 1 = 1
1 + 1 = 2
1 + 2 = 3
2 + 3 = 5
3 + 5 = 8

最初のいくつかの数字を除き、ある数字と次に続く数字の関係を見てみると面白い関係にあります。
どの数字も次に続く数字の 0.618 倍となっているのです。
たとえば、144 ÷ 233 = 0.618 となります。
それはどこをとってもそうなっています。

また、ある数字と2つあとの数字を比べると別の法則があります。
どの数字も、2つ後の数字の 0.382 倍になっているのです。

なぜFXでフィボナッチ数列を使うの?

2014-11-10_23h21_18

まずは、自然界にあるものがフィボナッチ係数やフィボナッチ比率になっているというのです。
例えば花弁の数とか、雪の結晶の比率とか、木々の葉っぱの縦横の比率なんかがフィボナッチになっているというのです。

ピラミッドとスフィンクス

さらに、ピラミッドやスフィンクスなど、人間が作ったとは思えない神秘的な建造物の構造に現れる比率も「フィボナッチ比率」になっているそうです。

FX市場や株式市場の値動きはどうでしょうか?
相場というのは、不特定多数の参加者の感情が渦巻いた結果として起きる現象です。
ある意味ひとつの自然現象ととらえても良いかもしれません。

相場に自然現象的な要素があるのであれば、
チャートに現れる値幅の比率が「フィボナッチ比率」になる傾向があってもおかしくないのではないか? タイル並べとフィボナッチ数列の関係
という考え方が、フィボナッチを利用するトレードの根拠です。

チャートも自然現象?

フィボナッチを使ったトレード手法に使われるフィボナッチ比率

フィボナッチリトレースメントに使われる比率

フィボナッチリトレースメントとは、押しや戻しの比率のことです。詳しくはこの後で解説します。
0.236、0.382、0.500、0.618、0.786
このうちで主流なのは0.382、0.500、0.618の3つです。

フィボナッチエクステンション(フィボナッチエクスパンション)やエクスターナルリトレースメントに使われる比率

トレンド相場がどこまで伸びるか?を計る比率です。
1.272、1.618、2.618が良く使われます。
その中でも一番よくつかわれるのは1.618です。

ほとんどの業者のチャートソフトがフィボナッチツールを装備しています。
ですから誰でも一瞬でチャートにフィボナッチのラインを表示できます。
もちろん、MT4もフィボナッチツールを標準装備しています。

最速のフィボナッチ数計算を考える

さらに、フィボナッチ数列の漸化式が \(F_=F_n+F_\) だったことを思い出せば、\begin
F_&=F_mF_+F_F_n-F_mF_n,\\
F_&=F_mF_n+F_F_
\endという2本の式が得られる。つまり、行列の乗算の代わりに\[(F_m,F_)\cdot(F_n,F_)\mapsto(F_mF_+F_F_n-F_mF_n,F_mF_n+F_F_)\]という演算を使って計算できる。

\((F_n,F_)\) の形の組を FibPair と呼ぶことにすれば、 FibPair には\[(タイル並べとフィボナッチ数列の関係 a,b)\cdot(a’,b’)\mapsto(a b’+ba’-aa’,aa’+bb’)\]によるモノイド演算(単位元は \((F_0,F_1)=(0,1)\))が定まる(結合法則の確認は読者の演習問題とする)。Haskellでの実装例は次のようになる:

ここで、 stimesMonoid は、モノイドの \(n\) 乗を \(n\) の二進展開を利用して高速に(O(log n)で)計算してくれる関数である(同様のアルゴリズムは、行列の \(n\) 乗の計算にも利用していた)。

このFibPairを使って 123456789 ( およそいちおく ) タイル並べとフィボナッチ数列の関係 番目のフィボナッチ数を計算した場合と、一般の2×2行列の方法 (MatFib) での計算時間を比較してみる。

整数 n に対して n 番目(および n+1 番目)のフィボナッチ数 \((F_n,F_)\) を対応させる写像は、整数の加法に関するモノイドから、FibPairへのモノイド準同型だとみなせる。

Fast doubling

Haskellのべき乗 (^) やモノイドのn倍 stimesMonoid タイル並べとフィボナッチ数列の関係 タイル並べとフィボナッチ数列の関係 タイル並べとフィボナッチ数列の関係 では、nを二進展開したものを「右から左に」辿って計算する、ということをやっている。

例えば、 a の19乗(二進法で10011)を計算したいというときは、アルゴリズム的には次のようなことを行なっている:

  1. Y := 1, Z := a とおく。
  2. n=19 の最下位ビット(1の位)は 1 なので、Y に Z をかける(Y := Y * Z)。
  3. Z を自乗する(Z := Z * Z)。
  4. n=19 の下から2番目のビット(2の位)は 1 なので、 Y に Z をかける(Y := Y * Z)。
  5. Z を自乗する(Z := Z * Z)。
  6. n=19 の下から3番目のビット(4の位)は 0 なので、 Y には何もしない。
  7. Z を自乗する(Z := タイル並べとフィボナッチ数列の関係 Z * Z)。
  8. n=19 の下から4番目のビット(8の位)は 0 なので、 Y には何もしない。
  9. Z を自乗する(Z := Z * Z)。
  10. n=19 の下から5番目のビット(16の位)は 1 タイル並べとフィボナッチ数列の関係 なので、 Y に Z をかける(Y := Y * Z)。
  11. タイル並べとフィボナッチ数列の関係
  12. n は二進法で5桁なので、これでアルゴリズムを終了する。 Y は a の19乗である。

一つの式で書けば、\[a^=a\cdot a^2\cdot (((a^2)^2)^2)^2\]と計算していることになるだろう。

  1. Y := 1 とおく。
  2. n=19 の最上位ビット(16の位)は 1 なので、 Y に a をかける(Y := Y * a)。
  3. Y を自乗する(Y := Y * Y)。
  4. n=19 の上から2番目のビット(8の位)は 0 なので、 Y には何もしない。
  5. Y を自乗する(Y := Y * Y)。
  6. n=19 の上から3番目のビット(4の位)は 0 なので、 Y には何もしない。
  7. Y を自乗する(Y := Y * Y)。
  8. n=19 の上から4番目のビット(2の位)は 1 なので、 Y に タイル並べとフィボナッチ数列の関係 a をかける(Y := Y * a)。
  9. Y を自乗する(Y := Y * Y)。
  10. n=19 の上から5番目のビット(2の位)は 1 なので、 Y に a をかける(Y := Y * a)。
  11. n は二進法で5桁なので、これでアルゴリズムを終了する。 Y は a の19乗である。

一つの式で書けば、\[a^=(((a^2)^2)^2\cdot a)^2\cdot a\]と計算していることになるだろう。

「右から左」と「左から右」の比較だが、計算機上では整数の二進表記を「右から左」に辿る方が実装しやすい(ひたすら2で割って、あまりを見れば良い)。そのため、「右から左」が使われることが多い。実際、Haskellのべき乗 (タイル並べとフィボナッチ数列の関係 ^) や stimesMonoid もそうなっている。

(二進表記の「右から左」と「左から右」のアルゴリズムについては、The Art of Computer Programming Vol. 2 に記載がある)

さて、「左から右」には、「右から左」にはない特徴がある。それは、アルゴリズム中で使う乗算が「自乗」と「a をかける」の2種類だけ、ということだ。この特徴と、フィボナッチ数計算 (FibPair) の事情を組み合わせるとどうなるか。

n乗のアルゴリズムをフィボナッチ数計算に使う場合、 a としては組 \(\operatorname(タイル並べとフィボナッチ数列の関係 1)=(F_1,F_2)=(1,1)\) を用いる。そして、「a タイル並べとフィボナッチ数列の関係 をかける」という操作は、「次のフィボナッチ数を計算する」ということであり、足し算1回でできてしまう:\[(F_n,F_)\cdot (1,1)=(F_,F_n+F_)\]「右から左」の場合は(自乗のほかに) FibPair の演算が3回必要だったところ、「左から右」なら多倍長整数の加算3回で済んでしまうのだから、「左から右」の方が有利である。

この「左から右」に辿る方法をフィボナッチ数に適用したものは、fast doubling と呼ばれているようだ。二進表記を「左から右」に辿るため、実装の際に末尾ではない再帰呼び出しを使うことになる。

Fast doubling をHaskellで実装すると次のようになる:

この時点ですでに FibPair + stimesMonoid よりも早くなっているが、いくつかの小細工を加えるとさらに早くなる。

まず、ここまできたらもはや FibPair の汎用的なモノイド演算は必要ない。モノイドとしての自乗 p <> p さえ計算できれば十分で、これは\[(a,b)\cdot(a,b)=(2ab-a^2,a^2+b^2)=(a(2b-a),a^2+b^2)\]で計算できる。モノイド演算では多倍長整数の乗算が4回、加減算が3回だったのが、自乗であれば多倍長整数の乗算が4回、加減算が2回となる。

そして、「FibPair を自乗してから次のフィボナッチ数を計算する」部分はひとまとめにできる。つまり、コード上は p <> p と FibPair b (a + b) に分かれていたのを、

実験(実行時間の計測)

筆者の環境(MacBook Pro (Late 2013), GHC 8.6.3)では、行列を使った版で123456789番目のフィボナッチ数を計算したところ11秒程度、FibPairとstimesMonoidを使った版で同じ計算をしたところ5秒程度、fast doublingを使った版(最後に載せた、タプルを使ったコード)では1.7秒程度かかった。

なお、記事の最初の方で書いた、一般項を \(\mathbf(\sqrt)\) タイル並べとフィボナッチ数列の関係 で計算するやつ(\(\left(\frac<1+\sqrt>\right)^n\) の計算だけで済ませる)は、5秒程度だった。こちらは有理数計算を伴うため、整数演算のみのFastDoublingには勝てないのだろう(推測)。

結論として、この記事で触れたアルゴリズムの中では fast doubling が一番早い。

おまけ:多倍長計算の特性を考慮する

演算回数でいうと、A, B タイル並べとフィボナッチ数列の関係 どちらも乗算が4回、加減算が3回ずつである。では、どちらを使っても同じなのだろうか。この辺の話は、演算対象となる型によって変わってくる。

仮に、変数 a , a' , b , b' のいずれもn桁の整数だとしよう。すると、Aの方は

  • n桁の整数同士の乗算が4回
  • 2n桁の整数同士の加減算が3回
  • n桁の整数同士の乗算が4回
  • タイル並べとフィボナッチ数列の関係
  • 2n桁の整数同士の加減算が2回
  • n桁の整数同士の加減算が1回

余談:HaskellのSemigroup/Monoidには自乗するためのメソッドがない

モノイドの元のn乗を計算する際、「左から右」「右から左」のいずれも、モノイドの元の自乗 \(x^2\) の計算を利用した。Data.SemigroupやData.Monoidには積を計算するメソッド <> はあるが、自乗に特化されたメソッドはないので、自乗の計算には積演算 <> が使われることになる。

自乗に特化されたメソッドがあると何が嬉しいかというと、インスタンスによっては一般の積演算 <> よりも高速な実装を提供できる可能性があり、 stimesMonoid のような関数がそれを利用できるようになることである。 sconcat や stimes がクラス外の関数ではなくて Semigroup クラスの中で定義されているのと同じ理由である。もちろん「自乗するメソッド」のデフォルト実装は \x -> x <> x とする。

コードで書けば、 Semigroup クラスがこういう風に定義されていてほしい:

FibPairの場合に、この「自乗する」 twice メソッドがあるとどの程度嬉しいか。FibPairのモノイド演算は次のように定義されていた:

(fast doublingの説明で同じことを書いたが)こちらは多倍長整数の乗算が4回、多倍長整数の加減算が2回で、加減算が1回減った上に乗算1回分が定数 2 の掛け算に変わっている。

先ほどリンクを貼った実験プログラムでは、 FibPair の自乗で特化したコードを使うようにしたものを FibPairX という名前(名付けが雑だ)で実装しており、それぞれ234567890番目のフィボナッチ数を計算させてみると

という風に FibPairX の方が若干早い。

(このことから、GHCの最適化器は \x -> x <> x タイル並べとフィボナッチ数列の関係 タイル並べとフィボナッチ数列の関係 というコードを式変形して上記の twice の実装に変えるようなことは行わない、ということがわかる。数学的に同値な式でも多倍長整数のコストを考えると優劣があるのは「おまけ:多倍長計算の特性を考慮する」で見た通りなので、コンパイラーが勝手にそういう式変形を行わないことはプログラマーにとっては生成コードを予測できるということであり、良いことなのだが。)

フィボナッチとは|FXのMT4で見方・使い方・設定や手法を解説


FXや株で使用されるフィボナッチとは、フィボナッチ数列をもとに導き出した比率を、売買の目安するテクニカル指標の一つです。FXや株などの相場では、価格が波のように動くため、どこまで値が上がるのか、またどこまで値が下がるのかを予測するのは困難です。フィボナッチは、その非常に困難な予測の手助けをしてくれるツールです。

1.フィボナッチとは何か


フィボナッチを相場に使う前に、そもそもフィボナッチとは何かを、簡単に学んでおきましょう。急がば回れという言葉もあるように、まず原理原則を知ってから運用することが重要です。

1-1.フィボナッチとは

0, タイル並べとフィボナッチ数列の関係 タイル並べとフィボナッチ数列の関係 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610……

フィボナッチ数列に並んだ数字は、自然界にも多く存在しています。例えば、花びらの数は多くの場合フィボナッチ数です。また、ヒマワリの種はらせん状に並んでいますが、そのラセンの数を数えるとフィボナッチ数になります。つまり、フィボナッチは自然現象の中に現れやすい数といえるのです。

1-2.フィボナッチで重要な3つの数値の計算方法

0, 1, タイル並べとフィボナッチ数列の関係 1, 2, 3, 5, 8, 13, 21, 34, 55, タイル並べとフィボナッチ数列の関係 タイル並べとフィボナッチ数列の関係 89, 144, 233, 377, 610……

まず、この数列を使って、相場で使用するための重要な数値を算出してみます。
まず1つ目は、フィボナッチ数列のうち任意の数字を一つ右の数字で割ると数が大きくなるほど、約0・618近づいていきます。
例えば、

8÷13=0.61538461538
21÷34=0.61764705882
89÷144=0.61805555555

というふうに、数が大きくなるほど0.618という数字に近づいていきます。
この0.618という数字が相場でフィボナッチを使う際に重要になります。

この0.382とが2つ目の重要な数字です。

この、0.236という数字が3つ目の重要な数字です。

2.MT4でのフィボナッチラインの見方・使い方・引き方


フィボナッチには、様々な使い方があります。例えば、フィボナッチ・タイムゾーンやフィボナッチ・ファン、フィボナッチ・アーク、フィボナッチ・エキスパンションなどです。知識として、これらの使い方を知っておくのもいいのですが、相場で多くのトレーダーが意識していて機能しやすいのは、何と言ってもフィボナッチ・リトレースメントです。ですから、この章では、より実践的なフィボナッチ・リトレースメントに限って解説していきます。

2-1.MT4を使ったフィボナッチラインの引き方と使い方

引き方としては、上昇トレンドの場合、直近の安値から高値に向かって斜めにドラッグします。反対に下降トレンドの場合は、直近安値から高値に向かって斜めにドラッグすれば、フィボナッチラインを引けます。下図は、上昇トレンド時のフィボナッチラインの引き方です(オレンジの丸と矢印で表示)。

厳密には同じにならないけれど、大体皆の意見がおおむね同じになる、そんなラインがフィボナッチラインです。ですから、私の実体験からも、線でとらえるのではなく、面でとらえた方がフィボナッチはうまく使いこなせるのではないかと感じています。どういうことかというと、例えば、厳密に61.8%のラインできっちり反転すると考えるより、面的にとらえてそろそろ61.8%ラインあたりだから反転する可能性もある、と考える方がうまくいきやすいということです。

2-2.フィボナッチラインの見方

2-3. FXでのフィボナッチの設定数値は? タイル並べとフィボナッチ数列の関係

通常は先に紹介した、0.618、0.382、0.236の3つの数値を使用しますが、相場によっては別のラインが意識されていることもあります。例えば、半押しと言われる高値からちょうど半分まで戻った50%(0.500)のラインです。また、0.618を2乗した√0.618=0.786という数字も、意識されることがあります。

また、上昇トレンド時に100を超えて下落した場合にも、どこまで落ちるかということを予測するためのラインがあります。
表にすると以下のようになります。 タイル並べとフィボナッチ数列の関係

3.FXフィボナッチの手法|実践編


この章では、フィボナッチ・リトレースメントについて、どのように考えて実際の相場で使っていくかを解説します。けれど、知識として持っておくことと、実際に運用するのでは、まるで違います。その穴を埋めるためにも、ぜひ実際にチャートソフトを開いて同じように線を引きながら、この章を読んでほしいです。そうすればより理解が深まり、実戦で使える知恵となるでしょう。

3-1.フィボナッチを使った基本戦略

まず、長い横ばい状態(水色矢印)から上昇トレンドが発生しました。けれど、上昇は続かず、赤い丸のところでいったん価格が下がってきました。
どこまで、下落するでしょうか? それを予測するためN、フィボナッチ・リトレースメントを使います。

抵抗は見せたもののフィボナッチラインの23.6%を越えて下落し、32.8%のラインも割り込みました(緑色の丸)。
そこで意識されるのが、61.8%のラインです。
価格は61.8%のラインにタッチすることなく上昇します(青色の丸)。ちなみに61.8%を割り込んだ場合、トレンドが転換する確率が高くなります。ですから、多くの人が61.8%のラインを意識しています。

32.8%のラインを越えて上昇し(ピンクの丸)、23.6%のラインも越えていきます。
32.8%と23.6%のラインのローソク足の動きを見ると、明らかにこのラインが意識されているということがわかるでしょう。
価格が起点の0.0のラインを越えたので、上昇トレンドの継続が確定しました(オレンジ色の丸)。

3-2.フィボナッチと相性のいいテクニカル

フィボナッチ・リトレースメントは、他のテクニカル分析と組み合わせることにより、さらに精度を上げることができます。基本的にフィボナッチ・リトレースメントは、大抵のテクニカル分析と相性がいいです。
私の場合は、一目均衡表の使用時に併用することが多いです。

4.FXにおすすめのフィボナッチの本やアプリ タイル並べとフィボナッチ数列の関係


この章では、フィボナッチを、さらに極めたい方におすすめの本や、各FX会社が提供しているフィボナッチが使えるアプリについて紹介します。

4-1.フィボナッチトレーディング (ウィザードブックシリーズ)

『フィボナッチトレーディング (ウィザードブックシリーズ) 』著者:キャロリン・ボロディン

フィボナッチを全般的に学びたいなら、『フィボナッチトレーディング』がオススメです。ここでは紹介できなかった、フィボナッチ・タイムゾーンなどにも言及され、フィボナッチ・リトレースメントとの連携などについても解説されています。

4-2.FXフィボナッチ対応アプリ(手動・自動)

各FX会社が提供しているアプリには、多くの場合フィボナッチ・リトレースメントのラインを引くことができる機能が付随しています。手動で引くものや自動的に描画するものまで、その会社によって機能が違います。参考までに、どのFX会社が、どのようなフィボナッチ・リトレースメントの機能を備えているソフトを提供しているのかを、まとめてみました。

手動でフィボナッチラインを引けるソフトを提供しているFX会社
オアンダ ジャパン
GMOクリック証券
マネースクエア
みんなのFX
YJFX!

自動でフィボナッチラインを引けるソフトを提供しているFX会社
SBI FXトレード
FXプライムbyGMO

5.仮想通貨にフィボナッチは通用するか


最近話題のビットコインなどの仮想通貨でも、フィボナッチは機能するでしょうか。私見をいうと、FXや株ほどは機能しないのではないかと考えます。それは、仮想通貨に参加している投資家の質によるものです。

仮想通貨に参加している投資家の多くは、ブームに乗って取引しているほどんど相場の素人なのではないかと、私は感じています。ですから、トレンドも作られやすいし、トレンドが反転すれば一気に反対方向に行くような無秩序で非常に読みづらい相場展開です。ですから、予測もしづらい代わりに、大きく儲けられる可能性もあります。

黄金比とフィボナッチ数列と双曲線。その1

何かの問題を解くか考察しているときに偶然遭遇した x²-y²+xy=1 という双曲線が通る第1象限の格子点を並べると(1,1),(2,3),(5,8),(13,21),…となりフィボナッチ数列が浮かび上がります。第4象限を見ると…,(-13,8),(タイル並べとフィボナッチ数列の関係 -5,3),(-2,1),(-1,0)となり非正整数番に拡張したフィボナッチ数列が並びます。また、当然ながら第2,3象限にはこれらを原点中心に対象移動した格子点も通ります。
以下、このような点を合わせてフィボナッチ格子点と呼んだり呼ばなかったりします。また、上に挙げた双曲線をフィボナッチ双曲線と呼ぶことにしましょう。

そして目標は 「フィボナッチ格子点であることがフィボナッチ双曲線が通る格子点であることの必要十分条件である」の真偽を調べる ことです。十分条件であることは簡単に分かります([1]で証明します)。ただ、必要条件であることは証明が難しく、体や環が絡んでくるペル方程式(の拡張)を解く必要があるようで、その方法は今の僕にはできませんでした。ただ黄金比が絡んでいるということで、なんか美しい性質があってなんか美しい感じに解けないかなという希望的観測のもと[2]で考察したことを、意味があるかどうかはおいておいて、まとめています。

f:id:Natsu1014_brog:20200811165528p:plain

まず上でも述べたように、フィボナッチ数列とは切っても切れない重要定数・黄金比φの性質について、[1][2]で利用したものを証明しておきます。

これまで黄金比と真面目に向き合ったことがないのですが、φ²=1+φはなんだか-ω²=1+ωみたいだし、⁻φ(φバー)=-φ^(-1)も何となくどこかで見たことがある感じがして面白いと思いました。共役無理数の考え方も、共役複素数に似ていて面白いです。
次に目標の命題について、十分条件であることの証明をします。

f:id:Natsu1014_brog:20200811165532p:plain


これは大して難しくはありません。
次に双曲線X²-5Y²=4について考察するのですが、なぜこの双曲線かというと、①をX=2x+y,Y=yとおいて変形してできる式だからです。これは両辺を4で割って左辺を因数分解すると(X+Y√5)/2×(X-Y√5)/2=1となり、どことなく黄金比との関係を感じさせます。(途中x²-5y²=1とありますが、これはX²-5Y²=4の間違いです。)

f:id:Natsu1014_brog:20200811165538p:plain


フィボナッチ数列のようでフィボナッチ数列でないC_nが登場しましたが、これを用いることでX²-5Y²=1のが通る格子点の一部(の一部?)を表すことが出来ました。逆にこれらの点であることが、この双曲線が通る格子点であることの必要条件を示せれば、あとは簡単なのではないかと思います。次回はこれを証明するか、証明ができなかったらそうであると仮定して、(X,Y)がフィボナッチ格子点(x,y)に一対一対応することを証明するつもりです。

[補足(2021/3/10)] ここで として定義されている数列はリュカ数と呼ばれ、 で表される有名な数列だったようです。確か式をこねくり回してこの数列を見つけたので、恐らく当時の僕はリュカ数のことを知りませんでした笑
それでは、また。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる