※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※ 本記事の執筆後にもっと精度の高いFX予測を実現しました ※※
以下の記事で本記事よりもより良いという方法も掲載していますので、良ければこちらも御覧ください。↓↓↓
AIによるFX予測キット。正解率は人以上!!
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
こんにちは。管理人のピヨ猫でーす。
NeuralNetworkConsoleの色々なテンプレートプロジェクトでFX予想を試してみましたので記事にします。
FX予想を機械学習するためのデータ作成ツールを作ってGITにアップしています。
良ければ使って下さい。
【ツールイメージ】
【ツールの仕様】
◆ 概要
入力為替データシートを元にNeuralNetworkConsole用の教師データの作成を行う。
◆ 入力データ
- 「入力為替データ」シート
為替データの過去履歴(1990年~2019年3月分)
◆ 出力ファイル
NeuralNetworkConsole用の学習データ
【学習データ内容】
入力データに存在する日付(基準日)毎に以下の情報を保持する。
・ 入力値 : 過去の基準日の為替履歴(デフォルト設定は40日分)
・ 出力値 : 基準日からX日後の為替変動予想(デフォルト設定は2日後)
0:下がる、1:一定、2:上がる の3分類
【学習データ形式】
① CSVファイル ・・・ 学習データをテキスト形式で保持する形式
② 画像ファイル ・・・ 学習データを画像形式で保持する形式
大分類 | 分類 | プロジェクト名 |
画像生成 | mnist_dcgan_with_label.sdcproj | |
mnist_vae.sdcproj | ||
画像認識 | resnet-110-deepmil.sdcproj | |
resnet-110-mixup.sdcproj | ||
resnet-110.sdcproj | ||
resnet-110.sdcproj | ||
LeNet.sdcproj | ||
alexnet.sdcproj | ||
googlenet.sdcproj | ||
nin.sdcproj | ||
densenet-161.sdcproj | ||
resnet-101.sdcproj | ||
resnet-152.sdcproj | ||
resnet-18.sdcproj | ||
resnet-34.sdcproj | ||
resnet-50.sdcproj | ||
resnext-101.sdcproj | ||
shufflenet-0.5x.sdcproj | ||
shufflenet-2.0x.sdcproj | ||
shufflenet.sdcproj | ||
squeezenet11.sdcproj | ||
vgg-11.sdcproj | ||
vgg-13.sdcproj | ||
vgg-16.sdcproj | ||
LeNet.sdcproj | ||
semi_supervised_learning_VAT.sdcproj | ||
チュートリアル | 基本のネットワーク | 01_logistic_regression.sdcproj |
02_binary_cnn.sdcproj | ||
06_auto_encoder.sdcproj | ||
10_deep_mlp.sdcproj | ||
11_deconvolution.sdcproj | ||
12_residual_learning.sdcproj | ||
バイナリネットワーク | binary_connect_mnist_LeNet.sdcproj | |
binary_connect_mnist_MLP.sdcproj | ||
binary_net_mnist_LeNet.sdcproj | ||
binary_net_mnist_MLP.sdcproj | ||
binary_weight_mnist_MLP.sdcproj | ||
リカレントニューラルネットワーク | bidirectional_elman_net.sdcproj | |
elman_net.sdcproj | ||
elman_net_with_attention.sdcproj | ||
gated_recurrent_unit(GRU).sdcproj | ||
long_short_term_memory(LSTM).sdcproj | ||
LSTM_auto_encoder.sdcproj | ||
stacked_GRU.sdcproj | ||
セマンティックセグメンテーション | unetlike_125px.sdcproj | |
unetlike_125px_person.sdcproj | ||
異常検知 | sin_wave_anomaly_detection.sdcproj | |
サンプル アヤメ分類 | iris.sdcproj | |
??? | 01_visualize_weight_of_feature.sdcproj | |
02_l1_regularization.sdcproj | ||
03_attention.sdcproj | ||
04_inference_result_at_each_layer.sdcproj |
どのネットワークがどういうものかという詳しい説明はSONY Neural network consoleのマニュアルには見当たりませんでした。名前から推測して調べる必要がありそうなので、調べたら別途記事にします。
分類もマニュアルには記載がなく、フォルダ名から推測しました。
ご参考までサンプルプロジェクトはneural_network_console_140\samples\sample_project
に保存されています。
幾つかの手法でFXの為替予想をしてみました。
結果は御覧の通りです。
分析方法 | 教師データ形式 | ネットワーク作成方法 | 的中率 | 買/売判断的中率(*1) |
回帰分析 | CSVデータ |
LSTMユニットを用いて新規構築 |
50% | 31% |
画像分類 | 画像データ |
LeNet.sdcprojをコピー新規 |
22% | 検証せず |
NNCによるネットワーク自動生成 | CSVデータ | NNCのネットワークを自動生成機能 | 51% | 買い/売り判定せず |
*1 自分の使い方としてAIが2日後に上がるから買え、下がるから売れと言ったら
売買して、2日後に決済してポジションを解消するという使い方を想定して
いるので、買い、売りのアクションを取った時の予想が外れなければ良いので、
買い、売りとAIが判断したときの的中率も出しました。
◆ 回帰分析
◆ 画像分析
◆ NNCによるネットワーク自動生成
期待する精度には程遠かったです。
一番まともなRNNにしてもあてずっぽうでやっても50%行くので、予想できていないのと同じでした。(売り、中立、買いの3択ですが、中立が全体の5割で、売り、買いは合わせて5割のデータにしているので、中立を選び続ければ50%の正解率が行きます。)
買い売り判断の的中率30%もあてずっぽうと同じです。
ざーんねん。
どれもこれも試していても精度が上がらなそうなので、連続データの機械学習の王道のRNNを学んで試していこうかと思います。
◆ 推薦図書
![]() |
詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理 [ 巣籠 悠輔 ] 価格:3,672円 |
![]() |
【送料無料】 機械学習 データを読み解くアルゴリズムの技法 / 竹村彰通 【本】 価格:6,696円 |