【デイトレAI】データ選択に苦戦中 ~データを全自動で選びたい~
こんにちはRcatです。
前回は概要として、とりあえず強化学習を回してみるところまではやりました。
今回から本格的にいろんなデータを使っていきたいのですが、その前に立ちはだかる壁があります、データ選択と加工です。
というわけで、その内容について今回は書いていこうと思います。
前回はこちら
次回はこちら
はじめに
利用規約
情報や作品の活用時は事前に利用規約をご確認ください。
コメントについて
利用規約のガイドラインを確認の上コメントしてください
注意
本シリーズはあくまでも個人的な取り組みであり、全てが正しいとは限りません。全ては自己責任の上で先に進んでください。
参考にした結果、大損害を被ったとしても、何の責任も取りませんので、あらかじめご了承ください。
穴埋め情報について
本記事は一定ライン以下を全て有料にしてしまうと、購入判断材料がないため、ピンポイントで穴埋め形式を採用しています。
データ選択に苦戦中
学習をするためにはまずデータを選択します。
複数の銘柄でデータを持っているのですが、その全てのグラフを見たことがあるわけではありません。
というわけで、今回は無作為に1週間分のスパンを抽出して、そのデータ使っても大丈夫なのかどうかを視覚的に確認していきます。
ランダムにピックアップしたところ、なんと全く取引がないような銘柄も混ざっていたり、取引量が少なくて、ほぼグラフになっていないようなものもあったりと、さすがにそういうのは混ざっているのはまずいだろうというデータがたくさんありました。
問題のあるデータ
具体的にはこんな感じのですね。

左側はそもそも取引されていない時間が長すぎて長期でデータを引っ張ってきたにも関わらず、本数が少ないです。
右側も同じく本数が少なく、寄り付きや引けでは値段が動いているようですが、それ以外は全て十字になっています。
こんなもの学習されても困ります。というか学習のしようがないでしょう。
なので、こういったデータはあらかじめ省かなくてはなりません。
この銘柄は最初の値段がやばいですが、それ以外はまずまず、少なくともデータの本数的には問題はなさそうです。
とはいえ、ほぼ十字なのであんまり使いたくないですね。

あとはこれは値幅が小さすぎて1回のスプレッドがだいぶ大きい。
0.5円単位で取引されていればまだいいんですが。そういうわけでもないみたいで、なんかデジタルみたいな感じになってます。またそれ以外のところでは十字線になっているところもあるので、これもあまりよろしくない。

問題のあるデータを出来高で省く
さて、問題のあるデータをどうやって省いていくかについてですが、まず一番簡単なのが出来高です。
少なくとも一番上にあった線の本数が少ないもの。これに関しては1日の出来高でフィルタリングすれば省けるのではないかと考えています。
というわけで、適当に10万株より大きな出来高があることを条件にフィルタリングして10枚作成したうちの良くなさそうなのがこちら。
見ての通りまだバラついてますね。
右の方は結構いい感じなんですが、左側のやつ思いっきりダメですね。10枚でこれとなると半分以上はダメなデータということになりそうです。となると、もう少し基準を追加する必要がありそうです。

出来高に条件を追加する
次に出来高に対してさらに[DEKI-1]という条件を追加してみます。この条件により、[DEKI-2]が除外されることによりフィルターの精度が上がります。
さっきより改善したので、100回くらい無作為に作成して、その中で特に悪かったのがこんな感じですね。前回より10倍以上試行していますので、精度は上がっています。
※[]内は穴埋め情報です詳しくはトップの注意事項へ

分析してみると急に大きな陽線が出ていたりして、そこの出来高が影響して10万株以上のフィルターをクリアしてしまっていることが見て取れます。
もしかして今流行りの詐欺ですかね?まさかこんなところにまで詐欺の悪影響が…。
というわけで出来高に1つフィルターを追加したくらいではまだまだ足りなさそうです。
別の観点で条件を追加
出来高だけだとこれくらいが限界かと思いますので、そもそも[■Another-1■]を条件として指定してしまえばもっと単純に絞り込めそうです。さらに、[■Another-2■]という条件を追加して、スプレッドが相対的に大きくなりがちな銘柄も除外します。
これで50回ほど回しました。
ここに来て悪いものでも大体波形が出てくるようになりました。

右側のやつは何でしょうね…こういう外れ値もあるんですね。
この銘柄の場合は価格が安いにも関わらず、0.5円や0.1円単位での板が入っていないのが原因ですね。こういうことされるとデジタルグラフになっちゃうのやめてほしい。
それはさておき、[■Another-1■]の影響でまともなグラフにならないものは排除できました。
ここまで来たら単純な条件ではなく、数学的なフィルターが必要になってきそうですね。
ちょっと計算して数学的にフィルタリングする
私は数学苦手なんですが、仕方がありません。頑張りましょう。
というわけで数学的(まあ、大したことないけど)フィルタリングを追加します。
やらないといけないことは、まず右側で出てきてしまったデジタルみたいなグラフを省くようなロジックを作る必要があります。
また真ん中に出てきた十字線。これもあまり良くないので省きたいですね。
というわけで[■Keisan-1■]を計算して求め、その[■Keisan-2■]を自分の目で確認し、閾値を作成したいと思います。
というわけで、除外したいと思うグラフと、今回考えた指標の計算結果がこちら。
これを見る限り[■Keisan-3■]あたりを閾値にするのがよさそうです。

すべての条件でフィルターした結果
というわけでここまでのすべての条件でフィルター後100回程度プロットして悪そうなのがこちら。悪くてもほぼほぼちゃんとグラフになってます!
左上のはまだちょっと微妙な気がしますね。価格を見る限り5円単位なんですかね…
移動平均ががたがたになるようなのはまぁ日を跨ぐので仕方なしですね…。そのための長期移動平均もいるわけで。

まとめ
今回は分析に使用するデータの選定作業を行いました。
ここまでの内容でかなり精度良く絞り込めるようになったと思います。次回は加工の方に行きます。
穴埋め情報
穴埋め情報は以下から参照ください
いいなと思ったら応援しよう!
情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。