ノンプログラマーでもできるPythonでWebサイト構築➀

はじめに

筆者はちょくちょく株の売買を行っていて、その参考データとして証券会社別の日経先物の売買状況を毎日集計しています。

このデータが毎日エクセルで公開されている訳なのですが、集計が非常に大変。
最初はエクセルでVBAを組んで収集していましたが、夜家に帰ってからパソコン立ち上げてVBA実行して、グラフ更新して結果見てtwitterでつぶやいて、、とか毎日毎日大変な作業でした。(最後のは趣味ですが…)

自動で集計してサイトにアップしてくれるシステムがあれば帰りの電車で確認出来て便利なのになぁと日々思ってました。

ってことで、自分で作成することに。

製作期間は半年…

毎日仕事終わってから1時間程度調べ物や作業をしてこつこつ。

でも一応なんとか形になって、想像通りなものができました。

作っていく段階で思ったのが、Pythonってホントに何でもできちゃうんだなと!ホントにすごい便利だなと!

調べれば調べるほど色々なものができる!…ってことで、私は半年間もかかってしまいましたが、この半年間で学んだPythonのすごいところ、ここはつまずいた、ってところを紹介していきたいと思います。

自分の備忘録的な面もありますが、これからシステムを作りたいという人の参考になれば嬉しいです。

サイトの仕組み

まずはサイトの仕組みを紹介します。
全体の概要はこんな感じ。

  1. スクレイピング
  2. データ蓄積&整形
  3. 可視化

◆スクレイピング

まずはデータ収集。
これはスクレイピングという技術を使っています。

私たちがいつも見るwebサイトは、HTMLというプログラムから作られています。右クリックしてソースを表示するとHTMLが表示されます。そのHTMLからデータを取得するのがスクレイピングです。

スクレイピングは、Pythonの「Beautifulsoup」「Requests」というライブラリを使用しています。具体的なやり方などは、後々紹介していこうと思います。


◆データ蓄積&整形

続いて、データ整形。
自身のPC内で取得したデータを整形する工程を踏んでいます。

取得したデータ形式は様々で、テキストのものもあればエクセル形式のものもあったりするので、Pythonの「Pandas」というライブラリを主に使用して、使いやすいように加工してます。

また、加工したデータはMySQLに保存して時系列のデータとして使えるように蓄積していってます。
データベースのMySQLについても、Pythonで操作することが可能で、「SQL Alchemy」というライブラリにより操作しています。


◆可視化①:matplotlib

続いて可視化です。
MySQLに溜め込んだデータやPandasで加工したデータをグラフ化します。
Pythonの可視化ライブラリは沢山あるのですが、私は「matplotlib」と「plotly」を使用しています。

matplotlibはオプションが多く、様々な種類のグラフが美しく描けるライブラリです。
サイト内の先物手口のグラフ(積み上げ棒グラフに折れ線グラフを重ねたグラフ)はmatplotlibで出力しており、少し慣れれば非常に使い勝手が良いライブラリです。


◆可視化②:plotly

可視化のライブラリの二つ目はplotly。
plotlyはインタラクティブなグラフが書けるライブラリです。

インタラクティブなグラフとは、サイト上で動かせるグラフの事です。

このサイトではオプション建玉のページのグラフをこのplotlyで作成していて、クリックすると数値が出たり拡大縮小することができます。
このグラフはjpgのような画像形式ではなく、javascriptsベースで作成されており、少し面倒な処理をしなくてはなりません。

面倒な処理を…そこは断念して、このサイトでは作成したグラフを「Chart studio」に登録して、サイトとリンクを繋ぐことで掲載しています。ここも追々紹介できればと思っています。




全体の概要はこんな感じです。
すべて一連のプログラムになっていて、ローカルのタスクマネージャーにより、時間になったらプログラムが起動されてWordPressが更新される仕組みになっています。


続きは近いうちに書いていきます。

先物手口の見方

なぜ先物手口をチェックするのか


先物取引とは、予め価格を定めて将来のある時点での売買を約束する取引の事です。

取引価格が予め確定するため、価格変動リスクを抑えるために企業などがヘッジとして取引したりしますが、先物は流動性が高くコストも安いため、現物の代わりに取引をすることもあります。

現に先物だけで運用を行うファンドが多数存在していて、そういったファンドの投資行動が先物手口に現れることがあります。筆者は、日々の先物手口をモニタリングすることで、そういったファンドの売買動向を推測して、今後の買い圧力売り圧力を判断(しようと)しています。

このサイトでは日々先物手口の動向(日経先物TOPIX先物一覧)を公表していますのでぜひチェックしていってください。

先物手口の見方


先物手口を見る上でのポイントとしては

  1. ポジションの偏りがないか
  2. 継続するであろうフローがないか
  3. 過去と比較して大きすぎる手口がないか

を意識して見ることをオススメします。

①ポジションの偏りはないか

先物は期限があり、買いポジションであればいつか売り清算をすることになります。
もちろん期限である限月を乗り換える(先延ばしする)事は可能なので一概には言えませんが、極端なポジジョンの偏りは逆戻しのフローが発生する事があります。
特に損失を抱えてるポジションについては急激な巻き戻しと共に株価に影響が出る可能性がありますので、ポジションの偏りはとても重要なチェックポイントです。

②継続するであろうフローがないか

2つの視点があり、ひとつ目はCTAと呼ばれるトレンドフォロー型のクオンツファンドのフローをチェックするという目的。

ふたつ目は、世の中のファンドには1度にポジションを構築できず、毎日少しずつポジションを構築しなければならないファンドがあります。毎日同様の売買が続くため、そのフローを把握するという目的です。

前者は株価に遅れて発生するため見分けやすく、限度はありますが、基本的に株価の上昇が継続する限り続いて、株価の変動を後押しするフローになります。
2020年時点ではクレディ・スイスやモルガン・スタンレーの手口によく表れており、この2社はCTAを意識しながらチェックしてください。

後者は、月末月初などに表れやすいフローで、投資家の株価見通しの変更などを受けて発生するものと見ています。
毎日少しずつ同様の手口が積み上げられて、トータルで大きな資金が動くので、影響が出やすいです。
このフローは多数の証券会社の手口で出ていると思われますが、筆者はゴールドマン・サックスをチェックしています。ゴールドマン・サックスは動かすポジションもダイナミックでかつ量も大きいので、意識しておいた方が良いかと思います。

③過去と比較して大きすぎる手口はないか

重要なイベントの前日や、逆に何も材料がない日に、大きな玉が動く時があります。
株価は上がっているのに、とある証券会社で異常な売りが入っているなどのケースです。
こういう場合は短期筋の仕掛けの可能性があって注意が必要です。
現に2019年の米中の貿易問題の辺りでは、違和感のある手口の後にヘッドラインが複数ありました。(たくさんやられました…)
また、経済指標を事前に把握してるのではないかというゴールドマン・サックスの手口も要注意です。実際には数字が漏れているということは無いんでしょうが、FEDの高官はゴールドマン・サックス出身者が多い傾向があり、ある程度精度の高い予想が出来るのだと思います。

といった視点で普段見ております。もちろんこれ以外にも様々なフローが入っていますので、すべてカバーすることはできないですが、投資判断の一助としてチェックすることは必要だと考えています。その際にはぜひ上記のような視点を参考に手口をチェックしてみてください。

グラフの見方


日経平均先物TOPIX先物別に集計しておりますので各ページをご覧ください。また、手口については手口一覧にて、各先物まとめて掲載しております。

日経平均(右軸:円):日経平均株価指数の推移を掲載。
建玉(左軸:枚):棒グラフにて限月ごとの先物建玉の推移を掲載(ミニはラージ換算にて表示)。合計値を赤線にて表示しています。

基本的にこの赤線を日々追っていけば事足ります。たまにガラッと動く時がありますが、その際は限月交代などの特殊要因でないかなどを各限月の推移を見て確認してます。

参考:手口データソース

毎日JPXのホームページに掲載される取引参加者別取引高(手口)を各証券会社ごとに集計※。日々の手口の積み上げにより先物保有枚数(建玉)の推移を推定して掲載しています。建玉は毎週初に開示される取引参加者別建玉残高一覧を反映。日経先物(ミニは1/10倍でラージ換算)、TOPIX先物別に掲載しています。
※日中取引・ナイトセッション合計(J-NET含む)

先物手口分析-2020/4/30

本日の日経平均と先物手口

本日の日経平均株価は前日比+422円の20193.69円でした。前日の米国市場の大幅高を受けて、日経平均についても高く寄り付きましたが、実体経済とかけ離れた株高を懐疑的に見る向きも多く、買い上げる勢は不在。また、足元の株高を受けて、本日は年金勢の月末リバランス売りもあり、上値重くよこよこの展開でした。引け後にはさらに売られて足元は20050円程度で推移しています。

本日の手口はというと…
雰囲気変わらず外資系は買い、国内系は売りという状況でした。米系の買いが続き、本日とうとうロングに傾きました。国内系の大きな売りは目立ちますし、明日からセルインメイですが、足元の下げにはついていかなくてよさそうな手口になっています。

個別にみていくと、外資系の買い主体は引続きゴールドマンサックスです。今日は特に顕著で4000枚以上を買い上げ、更にTOPIXも4000枚弱買っています。本日の買いで、フォール度マンサックスについてもロングポジションとなりました。ショートを買戻し初めて約2週間経ちました。ゴールドマンサックスの(裏の人の)特徴として、見通しを変更してから毎日ちょっとずつポジションを変更していきます。今回はおそらく、4月中旬位に株式をマイナスからプラスへ見通し変更があったのだと思います。どこまでロングを構築するかはわかりませんが、注意しておいて良かったです。売り方としては目立ったところはなく、どこも中立な印象でした。残念ながらクレディスイスなどトレンドフォロワー達は足元の上昇にはついてきていないようです。。

国内系の方は、ここまで大きいのは初めて見ましたが、三菱がこれまで積み上げていた買い玉を12000枚以上売り戻しています。把握している限りでは日銀のETFフローが入っているので、現物への振り替えが行われた可能性が濃厚だと思います。個人は結構ロスカットしていますね。引け後に下げているので結果残念でしたが、ちゃんと抵抗線抜けてロスカットできるあたりは、やはりこの相場を生き残ってきた只者ではない集団ですね。

本日の一言

昨日に引き続き手口はとっても良好でした。しかし、足元20000前後まで落ちてきてとても軟調です。年金勢は月末のリバランスの際には、基本的に上がった資産を売って、下がった資産を買い増すという投資行動になります(決められた構成比に戻す行動をとります。)したがって4月の1か月でかなり戻してきた株を売却するフローが足元で出ているのかと思います。一方、クオンツ系のファンドであるCTAは年金勢と反対の投資行動をとり、株を買い増す投資行動をとっているはずですが、このファンドは月末で一度にリバランスするというよりは、日次週次でリバランスを行うファンドが多く、圧倒的に年金勢の売りの方が買ってしまっている状況だと考えられます。リスクパリティなどは月次もそれなりに多いのですが、今回はそれほど買いへは傾いていません。
という事で、本日はそれなりの売りフローは見られますが、手口動向は変わらず良好なので、先々まだ調整はしないかと見方で行きたいと思います。とりあえず。

先物手口分析-2020/4/27

本日の日経平均と先物手口

本日の日経平均株価は前日比+521円の19783.22円でした。日銀決定会合があり、その期待で上げているのかと思いきや、特段のサプライズなく通過した後場も上げ幅を拡大する展開。米株先物の上昇につられて上げているとの話もあり、少しづつコロナ収束を期待したフローが入ってきているのかもしれませんね。

さて、本日の先物手口ですが…
ほとんど動きないですが、米系外資が買いで欧州がやや売りで外資としてはやや買いとなり、国内系はやや売りといった状況でした。ポジションの傾きがなく、下を警戒する場面ではなさそうに見えますね。

個別で見ると、まず外資系ですが、ゴールドマンサックスが引き続き買戻しの動き。モルスタなど他社は売りというよりは買い傾向であり、米系は全体的に下よりも上を見ているような状況です。欧州系は、クレディスイスが買戻しとなっていて、短期勢の安室が売りという状況でした。

続いて国内系ですが、個人が売り増ししています。みずほは引続き売りで、野村が大きく買っています。個人は前回もこの価格帯で戻り売りを仕掛けて成功してますが、今回はどうでしょうか。下の方で売った人はそろそろきつそうですが…

本日の一言

昨日に行き続きフローは良さそうです。ゴールドマンサックス、モルスタ、クレディスイス揃って買い傾向であり、上値が重かった20000超えを期待できる手口ですね。とは言え、何度も跳ね返された価格帯であり、出来高も薄く、かつセルインメイも近いこの時期に上値を期待するのもどうかなぁとも…。手口分析としては、今日も引き続き買い目線で問題ないですが、ポジションは薄くしておく方が良さそうですね。

先物手口分析-2020/4/24

本日の日経平均と先物手口

本日の日経平均株価は前日比▲167円の19262.00円でした。米国市場がギリヤドの新薬開発が思わしくないと伝わり上値の重い展開であった事を受け、日経平均株価も軟調に推移。後場は日銀のETF買いもありましたが、下落圧力が強く、切り返せず引けました。引け後はいつも通り下げ…と思いきや欧州市場の反発を見ながら、日経平均も切り返して、足元では19400円前後を推移しています。

本日の手口はというと…
外資系が米系の買戻しが入り、外資トータルでもやや買いとなりました。とは言え、ここのところ本当に小動きで、自粛モードの影響で、誰もいないのではと思ってしまいますね。売買代金も低調でした。

個別にみると、昨日売り越しだったゴールドマンサックスが本日は買い。またモルスタも買いで昨日までの下げ雰囲気がとりあえずなくなりました。とは言え個々の所毎日上へ下へ見方を変えているので、はっきり言えば全く分からない状況でございます。一旦今日は上っぽいと思えます。

国内の方は、個人がやや買い戻してきていますが、まだショートで待機している方がほとんどです。昨日の日銀の追加緩和ヘッドラインによるぶち上げで狼狽買戻ししていない点はさすがというところですね。金融機関系は野村やみずほが売りな一方で、三菱が大きく買いでした。三菱は日銀のフローとしても、機関系はみんな下目線なんですね。やはりファンダメンタルズを考えると、長期的に上昇は見込めないという事なんでしょう。

先物手口分析-2020/4/23

本日の日経平均と先物手口

本日の日経平均株価は前日比+291円の19429.44円でした。米国市場が大幅反発したのを引き継ぎ日経平均も堅調でした。引け後はいつも通り下げて始まり19370円程度で推移している状況です。引け後は毎日この動きですね。。(2回目)

さて、本日の手口ですが…
外資系は米系が売りで欧州系が買いとなり、外資全体ではやや売りとなりました。建玉で見ると外資系はまだ売りに傾いているという訳ではなく、ほぼニュートラルなポジションが続いています。

個別で見ていくと、昨日まで買い戻す流れと思っていたゴールドマンサックスが本日大きく売ってきています。よくわからない動きです。注意しておきます。一方モルスタは特に特に変わった動きはなく本日はほぼフラットです。クレディスイスについても下を攻めるような動きではなく、ショートの買戻しを進めています。ここのあたりは良い兆候出ています。

国内系では個人が大きく売りに出ており、再度下で勝負をしてきています。一方で、野村は4000枚近く買ってきており、機関投資家など長期のフローなどあったのかもしれません。

個々の所毎日のように動向が変化していて、見方も毎日変わってきてます。昨日までは割とよいフローが多かったのですが、今日は一転ゴールドマンサックスの売りが目立ち、あまりいい印象ではありませんでした。という事で買いポジは極力減らして、様子を見たいと思います。ナイトも堅調に推移していますが、無理はせず、ゆっくりとやっていければ。

本日の一言

岡江久美子さんがコロナウィルスによる肺炎で亡くなられたとの事。ご冥福をお祈りします。
コロナの影響は全く収まる気配がなく、今日も東京都の感染者数は100名を超えてきました。欧州の様に毎日倍々に増えていかないところは、昨今の自粛モードの効果という事なんだろう。一日も早い収束を願おう。
在宅勤務、普段と違う環境で仕事をするというのは中々ストレスが溜まり、私自身もつらい日々を送っていますが、昨日証券会社の方から来たメールでとっても励まされたので紹介します。

Work From Homeでパソコンや通信環境の違いで歯がゆい思いをされている方へ

  • あなたは単に家で働いているのではない 家族を守るという使命と自分の仕事の両立のため家で必死に戦っている。
  • 今は自分の仕事の効率が落ちているのではない。限られたインフラの中ベストなパフォーマンスを出し続けている。
  • ほかの人はどうしているのだろうと思い悩む暇はない。今日を家族みんなで無事に過ごすこと、それだけに集中しよう。
  • 成果の定義。これまでの日々のそれと、これからのそれは大きく変化している。あなたは既にそれがわかっている。だからすでに実践できている。
  • 「これでは私はチームの役に立っていない」と気味が家で心を痛めている。僕は良いチームの存在を知った。

もう少しの辛抱。みんなで我慢して乗り切りたいですね。一人でも多くの命が助かるように。

先物手口分析-2020/4/21

原油のマイナス価格で衝撃の昨夜でしたが、本日の日本株はそこまでショック的な動きではなかった印象。それにしてもコモディティって一度トレンド出るとトコトン行きますね。

本日の日経平均と先物手口

本日の日経平均株価は前日比▲388円の19280.78円でした。米国市場の下げを引き継ぎ日本株も軟調に推移。引け後はさらに下抜け19100円程度で推移。引け後は毎日この動きですね。。

さて、本日の手口ですが…
外資系は欧米ともにやや売り、国内系が大きく買い増しという状況でした。外資系はまだ売りに傾いているという訳ではなく、ほぼニュートラルなポジションが続いています。

外資系の中では、シティが引き続き大きく買戻しの一方でモルスタが再度ショートポジションを構築してきている様子。昨日言ったところですが、ゴールドマンサックスの売り傾向は見られませんが、モルスタの売りが続いていることから下抜けを警戒すべきところです。…書いてる内に反発してきてますが…

国内系の中では、個人のネット証券系がフラット(SBIや楽天は買いでしたが)となっています。ポジションはショートポジですので、とりあえずショートで待ちといったところ。一方で機関系は大きく買いとなっており、昨日から引き続き三菱UFJの買いが主導していました。やはり日銀の資金が入っているのでしょう。

昨日の手口でモルスタとゴールドマンサックスの売り兆候があり、買いポジを縮小させましたが、結果としてよい判断でした。本日も引き続きモルスタは売ってきており、下抜けを警戒すべきところかと思います。モルスタは足元のコロナショック開始前に大きくショートポジションを構築し成功しているので、引き続き注目すべきかと思っています。

先物手口分析-2020/4/20

金曜日の米国株式は+3%程度の上昇でしたが日本株は比較的弱く推移。いつもの日本株が戻ってきた感じですね。

本日の日経平均と先物手口

本日の日経平均株価は前日比▲228円の19669.12円でした。金曜ナイトと比較すると大分戻して検討しました。ただ、またナイト始まった途端下抜けるというここのところ毎度です。欧州勢の売りフローとかないはずなんですが…

さて、本日の手口ですが…
外資系は米系は売りで欧州系は売りとなり全体ではやや買いでした。米系の買戻しは途切れましたが、欧州系が引き続き買戻しの傾向になってる。

個別で見ると、買い方がアムロやシティ。売り方がモルスタやゴールドマンサックスなど。アムロはよくわかりませんが、モルスタやゴールドマンサックスの売りが続いてくるといいことはないです。ゴールドマンは金曜日に大量に買ったため、少し売ってきただけかもしれないし、傾向としては買い方にあることは間違いないのでとりあえず注視しておこう。クレディスイスは本日は買いであったが、量も少なく動きなしといってよいだろう。

国内系では、個人勢がやや売りで、野村が大きく売ってきているという状況です。とは言え野村は一時期の1/4程度の売建玉しか積まれていないので、まだまだといったところですね。一方、三菱の買いの積み上げ方がすごいですね。日銀でしょうか。今までと比較にならないほど積まれてきています。

外資トータルの動きなど全体的に見ると大きく状況は変わっていないようですが、買い方の中心がアムロなどのド短期勢であるのに対し、モルスタやゴールドマンサックスなどが売ってきているのは少し気になる。単発で終わればよいですが、少し立ち周りを考え直した方が良いかもしれない。。というか原油11ドルってもう見たことないです……
買いポジは整理しよう。

先物手口分析-2020/4/17

昨日の手口は結構良好でロングタイミングと判断。本日見事ぶち上げてくれて上機嫌です。まだもう少し上行ってもらいたいんですが、本日の手口はどうでしょうかね。

本日の日経平均と先物手口

本日の日経平均株価は前日比+600円程度の19897.26円でした。まだまだボラ高いですね。昨日のナイトから800円程上がってるのでショートしてたら飛んでます。
ただ、今夜ナイト始まるなり500円程下がり軟調。現在の日経先物価格は19400円程度を推移してます。

さて、本日の手口ですが…
外資系は欧州勢の売りによりやや売りでした。米系は買戻しの動きが続いています。

個別で見ると欧州系で売り筆頭がアムロ。そしてソジェン。この2社は正直ド短期勢や高速取引など現物と先物を抱き合わせでトレードしてたり、難しいことやっているところで、先物だけ見てても何もわからないんです。が、この上げを先立ってロングしてたソジェンを考えると少し注意しても良さそうではある。

買い方はというと、これまでショートの買戻しをしているゴールドマンサックスが引き続き買い戻してきている。ゴールドマンサックスの私の見方としては、アムロ・ソジェンと比べると比較的長い見通しの中でポジションを構築している印象で、ロングを構築し始めると毎日同じ傾向が続き、巨大なポジションを構築してくる。今回のこの買いも、ショートポジションを閉じるまで続くのではと思っている。

国内系については、個人が引き続き買戻しを進めている状況でした。今日の所はロスカットと思われる。三角持ち合い上抜けでちゃんとロスカットしてるところはやはり、残された超人集団だなと思えますね。しかしナイトの下げを見て再び乗ってきているかはまだわかりませんが。

日中のプチ上げを見てガッツポーズしてましたが、ナイト始まった途端全戻しの勢い…やはりボラが大きすぎてデイトレードしかできないですね。下げたところは再び拾っていくつもりでいますが、ド短期勢の動向を気にしておいた方が良さそうだなと今日の手口見て思いました。普段は気にしない2社ですが何やら2番底を狙っているような雰囲気を感じました。対する日銀には頑張ってもらいたい……違うか

先物手口分析‐2020/4/16

Windowsのタスクスケジューラなるもので自動更新を試みましたが失敗。。。
Pythonのエディタ画面が開かれて終わってました。
普通に考えてそうか。調べなおして週末にでも実装しよう。とりあえず今日明日はボタンポチっで更新しました。

本日の日経平均と先物手口

本日の日経平均株価は前日比▲259円の19290.20円でした。連日じわじわ下げてて買い方にとっては嫌な感じですね。昨日と同じくナイトに入ってからも軟調で足元では先物価格は19150円あたりとなっています。

さて、本日の手口ですが…
外資系は引続き若干の買いですね。米系はまだショートポジションではありますが、買戻しを進めている状況で、欧州系についてはロング構築中となっています。

個別で見るとゴールドマンサックスが2000枚超を買戻し、この一連のコロナショックをショートで攻めてきたモルガンスタンレーも1000枚程度買戻ししてきてます。ソジェンは昨日に引き続き買い玉をどんどん積んできていますが、昨日も書きましたがここはよくわかりません…。

国内系は本日も若干の買いとなっており、個人は利確の買戻しの動きが見られました。本当にこの集計を始めてから思ったのは、個人トレーダーの勝率は非常に高いという事。おそらく一日中株の事考えて、細かい動きを追ってるから、単純にうまいのだと思われる。どうしても逆指標の様に考えがちだけど、考え改めたい。利確できた方おめでとうございます!
機関系で買ってきているのは、連日三菱UFJです。日銀のETF買いの影響なんでしょうか。最近極端に玉を積んでいってます。

じりじり下げる買い方に嫌な展開ですね。ただ手口は悪くないので、足元の三角持ち合いの下抜けをロスカットラインにロングしてみるのもいい頃かと考えています。下抜けたらもう少し下ありそうなのでロスカットはちゃんとやる。