こんにちは。管理人のピヨ猫でーす。
前回記事でFXの機械学習の教師データを作成する方法を紹介しました。
前回はCSVデータでしたが、機械学習と言えば画像解析に強みがありますし、人もチャートを見て判断しているので、画像データの方が精度が良いかもしれないな~と思い、FXの教師データの画像版を作成してみたので、作成方法を記事に致します。
画像データを作るにはFXの為替データCSVをグラフに変換してあげる必要がありますが、Excelはとても便利で簡単にろうそく足チャートが作れます。
メニューバー → 挿入 → グラフから株価チャートを選択すれば自動でろうそく足チャートを作成してくれます。
詳しくは掲載されたサイトがあるのでリンクしておきます。
注意点はデータの並び順を始値、高値、安値、終値にすることです。
順番を間違えると正しいろうそく足チャートになりません。
こんな感じです。
Excel VBAでチャートを保存するにはChart.Export関数を使います。
こんな感じです。
datFile = ファイルパス(拡張子.jpeg)
Call SheetGrahoTmp.ChartObjects("ろうそく足チャート").Chart.Export(datFile)
詳しくはこちらの記事が参考になります。
Excelでろうそく足チャートを作るシートを作れて、Excel VBAからチャートを保存することができれば教師データを作るのは簡単です。
Excel VBAでチャートの元データを更新し、Chart.Export関数を実行してグラフを保存するのを繰り返せばよいです。
ただ1点注意点があります。
ExcelのグラフはVBAから単純に更新した場合、VBAの処理が終わるまで再描画が行われません。なので、せっかくデータを更新しても同じグラフが作られ続けてしまいます。ちょっとしたおまじないが必要です。
具体的にはグラフデータを更新したら以下の3つを実施してください。
- 計算モードを自動計算に切り替える
Application.Calculation = xlCalculationAutomatic - チャートをリフレッシュする
Chart.Refresh - OSに描画を促す
DoEventsを2回実行する。
こんな感じです。
Application.Calculation = xlCalculationAutomatic
Call SheetGrahoTmp.ChartObjects("ろうそく足チャート").Chart.Refresh
DoEvents
DoEvents
Application.Calculation = xlCalculationManual
Call SheetGrahoTmp.ChartObjects("ろうそく足チャート").Chart.Export(datFile)
DoEventsを2回実行する理由はこちらの記事に詳しく記載されていました。
↓↓↓ VBAツール
↓↓↓ 実行ボタンを押すと7,000ファイルの画像教師データが作られます。
次回こそは準備した教師データを使って実際に機械学習をしてみたいと思います。
作成したツールはGITHUBに登録してあるので良ければ参考にしてみて下さい。
データは大きすぎてGITHUBには登録していないので、ツールから生成して下さい。
◆ GITUB
https://github.com/shibayu2002/fx_ml_basedata.git
◆ 推薦図書
![]() |
詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理 [ 巣籠 悠輔 ] 価格:3,672円 |
![]() |
【送料無料】 機械学習 データを読み解くアルゴリズムの技法 / 竹村彰通 【本】 価格:6,696円 |