株見習い

AIで株を攻略したい

いつ仕掛けるか

Q なんで株なの?
A 一番機械学習とか深層学習が効きそうだからw
(勉強したことで何かやってみたい)

FXとか暗号資産とかで刹那の回帰を取りにいくとか色々あるんですが、
株って銘柄もめちゃくちゃあって、裏付けとなるファンダがあったり、
諸々必ずしもそうではないことは重々承知の上で、
それでも大衆がめんどくさい(そこまで詳細を見ない)だろってとこに
利益の源泉が落ちてるんじゃないかと思ったからです。

しかし私はいま忙しいサラリーマン。
デイトレするわけにもいかず、方針は割安成長株のスイングタイプ
シストレと言えるか?という突っ込みはご容赦頂きたい。
土日にスクリーニング(この辺りに機械学習を導入予定)及び投資候補を算出。
翌週に仕込む事を想定。

で、翌週いつ仕掛けるのがいいかってことで統計データを取ってみました。
Kabu+ から 2018年以降のデータを取得してます。

全市場、全業種の1日のvwapとの変化率を見ています。

f:id:tos5511:20210504201837p:plain
期間中sum
f:id:tos5511:20210504201923p:plain
期間中avg

ついでに2021年だけのデータもみてみましょう。

f:id:tos5511:20210504202356p:plain
2021sum
f:id:tos5511:20210504202425p:plain
2021avg

よく月曜前場寄り付きは下げやすいと言われているようですが、
データをみると月曜どころか、毎日前場寄り付きでのエントリーは分が悪いと言えそうです。
スイングといえどもこの辺りの細かいコストは拾っていきます。
ということで、仕掛けのタイミングは後場寄り付きが良さそうです。


最後はスペシャルなおまけで算出クエリ

declare @FD varchar(8) = '20210101'
declare @TD varchar(8) = '20210430'

SELECT --ohlc.[SC]
       --sd.[名称]
       --sd.[市場]
      --,sd.[業種]
      left(ohlc.[日付],6) [month]
	  ,case DATEPART(WEEKDAY,convert(datetime,ohlc.[日付])) 
		when 1 then ''
		when 2 then ''
		when 3 then ''
		when 4 then ''
		when 5 then ''
		when 6 then ''
		when 7 then '' end 曜日
	  ,case DATEPART(WEEKDAY,convert(datetime,ohlc.[日付])) 
		when 1 then 1
		when 2 then 2
		when 3 then 3
		when 4 then 4
		when 5 then 5
		when 6 then 6
		when 7 then 7 end weeksort
      --,ohlc.[VWAP]
      --,ohlc.[前場始値]
      --,ohlc.[前場終値]
      --,ohlc.[後場始値]
      --,ohlc.[後場終値]
	  ,AVG((ohlc.[VWAP]-ohlc.[前場始値])/ohlc.[VWAP]) [VW-前始]
      ,AVG((ohlc.[VWAP]-ohlc.[前場終値])/ohlc.[VWAP]) [VW-前終]
      ,AVG((ohlc.[VWAP]-ohlc.[後場始値])/ohlc.[VWAP]) [VW-後始]
      ,AVG((ohlc.[VWAP]-ohlc.[後場終値])/ohlc.[VWAP]) [VW-後終]

  FROM [KabuPlus].[dbo].[tosho-stock-ohlc]ohlc
  left outer join
(
  SELECT * FROM [KabuPlus].[dbo].[japan-all-stock-data]
  WHERE [日付] between @FD and @TD
)sd
on ohlc.SC = sd.SC and ohlc.日付 = sd.日付

where ohlc.[日付] between @FD and @TD
group by left(ohlc.[日付],6)
,case DATEPART(WEEKDAY,convert(datetime,ohlc.[日付])) 
		when 1 then ''
		when 2 then ''
		when 3 then ''
		when 4 then ''
		when 5 then ''
		when 6 then ''
		when 7 then '' end
,case DATEPART(WEEKDAY,convert(datetime,ohlc.[日付])) 
		when 1 then 1
		when 2 then 2
		when 3 then 3
		when 4 then 4
		when 5 then 5
		when 6 then 6
		when 7 then 7 end
order by weeksort,[month]

KABU+の契約とデータ環境構築

少し本気で株のシストレにチャレンジしてみようと思い、まずはデータを集めようというところから始まりまして週末色々データソースを調べてみたところ、KABU+という神サイトを発見。なんと株価だけではなく、各種財務指標から決算データまでそろってるではありませんか!
システムは今の所、ファンダメンタル重視のグロース株スイングタイプで考えていたので、これはもうベストマッチです。月額の費用はありますが、かなり良心的な価格。余裕で即Doneです。

kabu.plus
※登録者と紹介者両方にAmazonギフトが貰える紹介コードの入ったリンクです。気になる方はクリックをお控えください。

ということでさっそくこの土日でデータ構造を理解するために、遠回りですがテーブル定義書を自作。

f:id:tos5511:20210425234825p:plain
テーブル定義書

対応するテーブルをすべて作り、取り込み用のプログラムも作成。
明日から毎日自動でDBに全銘柄のデータが蓄積される環境が完成しました。

f:id:tos5511:20210425235707p:plain
DBキャプチャ20210425

とりあえずデータ周りのみ。
モデル探しの分析と発注系の環境構築は追々、GWで集中して作りこみを行う予定です。

E資格2021#1を受けました

tos5511.hatenablog.com

前回のエントリーから特にネタもなく気付けば早9ヶ月。
もう2021年も3月でQ1も終わりそうな時間の速さにただびっくりしていますが、
2020年は自分の中で機械学習、いってみればAIの知見を高めるというのがテーマでした。
そんなこともあり前回のG検定に続き、今度は実装側のエンジニア資格を受けるために
機械学習からディープラーニングまで勉強していたというわけです。

結果は無事合格!
JDLAの試験をコンプリートしました。
f:id:tos5511:20210311222709p:plain

足を止めて学びなおした甲斐がありました、本当に。
ようやくこれで再始動することができそうです。
しばらくはシステム化というより、裁量で相場を触りながら感性を取り戻しつつ、
新しい武器を使って今年は何か作ってみようかと思います。