SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Encogニューラルネットワークを用いた基本的な金融市場予測

テクニカルな市場分析の支援にニューラルネットワークを使用する

  • X ポスト
  • このエントリーをはてなブックマークに追加

ローソク足のパターン

 これらのローソクに基づいて、パターンを形成します。パターンにはいくつかのレベルがあります。最も低いレベルでは、個々のローソクの形にちなんだ名前を付けます。以下に、さまざまな種類のローソク足に対し、よく使われる名前をいくつか紹介します。

 多くの名前が日本語であることに気が付いたことでしょう。ローソク足チャートはもともと、日本で考案されたものです。米相場師であったある日本人が、ローソク足チャートを考案したと言われており、この人物は米市場取引にこれを適用して莫大な財産を築きました。この考案者が18世紀、ローソク足チャートを商品取引に使用したように、これと同じ手法を株式市場以外の市場にも使用できます。

 各ローソク足をそれぞれのパターンに分類するのは難しい作業です。例えば、足の長さがどれだけあれば「足長同時(Long Leg Doji)」になるのでしょうか。また、「コマ(Spinning Top)」の実体の大きさがどれだけあれば、「陽線」または「陰線」になるのでしょうか。ここで紹介するプログラムでは、筆者が作成した簡単なオブジェクトを用いて、この分類を行います。ただし、分類のための実体とヒゲのサイズについては、根拠のない値を使用しています。将来的には、別のニューラルネットワークを用いて、各ローソク足がこれらの細かいパターンのうちのどれに該当するかを判定するという実験をしてみたいと筆者は考えています。

 これらの各パターンにはそれぞれ意味があります。例えば「陽の丸坊主(White Marubozu)」は上昇傾向、「陰の丸坊主(Black Marubozu)」は下落傾向を表します。「カラカサ(Hammer)」などのように、その周囲の状況によって上昇傾向を表す場合も下落傾向を表す場合もある記号もあります。これらの個々のパターンを、より大きなパターンを表すグループにまとめることもよく行われます。典型的なパターンの一つに、William J. O'Neal氏によって広められた「カップ・アンド・ハンドル(ひしゃく)」があります。一般的には、上昇傾向を示すものです。以下のチャートは、カップ・アンド・ハンドルの一例です。

 個々のローソク足のパターンを識別するのも簡単なことではありませんが、それ以上に、このような大きなパターンを識別するのは困難です。上のカップ・アンド・ハンドルの例を見てください。カップ部分は、カップというよりも「V」に近い形になっています。カップ部分のすぐ後はやや下落しており、それがハンドル部分になっています。やや下落した後に、株価は上昇しています。

「Encog Candlestick Example」プログラムの使用方法

 ここで紹介するプログラムでは、まずデータを取得してから、ニューラルネットワークをトレーニングします。データを取得するには、[Neural Network]メニューの[Obtain Data]を選択します。すると、以下の7つの項目を入力するように促されます。すべて必須項目となります。

  • Symbol(銘柄)
  • Starting Date(開始日)
  • Ending Date(終了日)
  • Prediction Window(予測ウィンドウ)(日数)
  • Bull/Bear Window(評価ウィンドウ)(日数)
  • Bearish Percent(下落パーセント)
  • Bullish Percent(上昇パーセント)

 これらの値を入力したら、[Obtain Data]ボタンをクリックします。プログラムはしばらく停止して、Yahoo Financeからデータをダウンロードします。銘柄は、トレーニングに使用する企業名です。任意の企業を指定できます。さらに、ある企業のトレーニングを別の企業の予測に使用することもできます。このプログラムに対する今後の拡張点として、ニューラルネットワークのトレーニングに全銘柄を指定できるようにすることが挙げられます。

 開始日と終了日は、トレーニングに使用するデータの範囲を表します。通常は、現在日までのすべてのデータをトレーニングすることはしません。数年分のデータは、ニューラルネットワークの評価のために残しておきます。トレーニングに使用しなかったデータによってネットワークをテストし、どれだけ実際に有効なニューラルネットワークが作成されたかを確認します。

 予測ウィンドウは、ニューラルネットワークが上昇または下落の予測をするために、過去何日分のデータを使用するかを表す日数です。評価ウィンドウは、1つ前の予測ウィンドウを、上昇期間の到来を示唆していると判断すべきか、下落期間の到来を示唆していると判断すべきかを判定するために、ネットワークがその後何日分のデータを参照するかを表す日数です。例えば、評価ウィンドウとして30日を選択すると、株価が上昇パーセント以上に上昇すればその30日間は上昇期間であったことになり、下落パーセント以下に下落すればその30日間は下落期間であったことになります。プログラムは指定された期間を順に参照しながら、上昇期間または下落期間の前触れとなった予測ウィンドウを抽出することにより、多くのトレーニング例を作成していきます。

 データが収集されたら、ニューラルネットワークをトレーニングできます。データ収集は比較的高速ですが、トレーニングにはかなり時間がかかる場合があります。ニューラルネットワークは複数の層からなります。データは入力層に入力され、予測は出力層から出力されます。入力層と出力層の間には、隠れた層もあります。以下の図は、簡単なニューラルネットワークを示したものです。

 ネットワークは、ニューロンの間を接続するコネクションで構成されます。トレーニングプロセスでは、入力から狙いどおりの出力が得られるように、これらのコネクションを調整します。トレーニングは、繰り返しの処理になります。トレーニングを開始するには、[Neural Network]メニューの[Train]を選択します。するとトレーニングが開始し、誤り率が表示されます。この誤り率を最小化することが目標となります。どうしてもあまり小さくならない場合は、収集用に入力したデータが、パターンの確立に役立っていないことになります。トレーニングには数時間、または数日を要することもあります。トレーニングを完了したら、ボタンをクリックしてトレーニングを停止します。これでいよいよ、ニューラルネットワークを予測に使用できます。

 ウィンドウ上部に株式銘柄と開始日を入力し、[Chart/Predict]ボタンをクリックします。すると、次のような画面が表示されます。

 これは、時系列データの一部分を示したものです。ニューラルネットワークは、赤または緑の棒線で予測を示します。赤は弱気な市場心理(下落傾向)、緑は強気な市場心理(上昇傾向)を表します。上のチャートは、GEのデータでトレーニングしたニューラルネットワークによるApple Computerに対する予測を示すものです。これら2社は、まったく無作為に選択しました。GEは、より広範囲の市場を非常に的確に反映するため、筆者はよく同社をベースラインとして使用します。数社の企業を選択してベースラインを設定することができれば理想的であり、このプログラムをそのように拡張できればよいと思います。

 株価が上昇し始めると同時に、Appleに対するプログラムの判断が上昇傾向を示し始めているのが見てとれます。株価の変動が小さくなると、プログラムは中立の立場になります。株価が下落し始めるとともに、今度は下落傾向を表す2本の赤の棒線が現れます。いつもこれほど正確であるとは限りません。このチャートは、プログラムがどのようなデータを返すかを示すための例です。

次のページ
アプリケーションの実装

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Jeff Heaton(Jeff Heaton)

ライター、人工知能(AI)研究者、元大学教員。AI、仮想世界、スパイダー、ボットなどの話題を取り上げて執筆した書籍は10冊以上。Java、.Net、Silverlightを対象に、高度なニューラルネットワークおよびAIフレームワークの提供を目的とするオープンソースイニシアチブ、Encogプロジェクトを統括している。また、個人のWebサイトを管理し、人工知能とスパイダー/ボットプログラミングをはじめとする話題について情報発信を行っている。メールの宛先はjheaton@heatonresearch.com。Sun認定Javaプログラマ兼IEEEシニアメンバー。ミズーリ州セントルイスのワシントン大学情報管理修士号を持ち、セントルイス在住。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5001 2010/03/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング