ともだちはすくないです

30代既婚男子。子供2人。日経先物トレードとかプログラミングとか英語とか

pythonでシステムトレードの勉強をしているが難しい

先日ブログでも書いたこの本を使ってシステムトレードの勉強をしています。というか単純にプログラム組んで株価とかの分析していくのが楽しいからやっています。儲けるためのシステムを組むならこの本を1冊やる必要がないような気もしてます。システムトレードやってる人が全員、標準偏差とか対数収益率とか理解してるとは思えないし。いや、自分が知らないだけでシステムトレードで儲かっている人は全員理解してるのかもしれないけど。もしかしたらcisさんもその辺全部理解してトレードしてたりしてw

自分は文系卒業で数学はⅡBまでしかやってないから、本の内容がいまいちよく分からないしpythonを使っての分析がどれほど有用か判断できましぇん。。くっそ、高校のとき数学ちゃんと勉強しときゃよかったぜ。なぜ、俺は数学と理科が子どものころから得意だったのに、フジテレビのアナウンサーになりたいという訳の分からん夢で文系に進んだんだ。小学校のとき九九はクラスで2番目に覚えるの早かったんだぞ。

いまのところ分からないのは概ね以下の点です。

・そもそもなんで株価の分析に対数を用いるのか
・1年の対数変化率の標準偏差がなぜボラテリティなのか

完全に数学の知識のような気がします。たぶん標準偏差とか対数の概念が分かってない。。高校の時になんとなくやった気はするけどすっかり忘れてて理解できません。。なんとか理解したい。もはやトレードのためじゃなく理解することそれ自体が目的になってる気がする。理系の大学行って数学とか統計学を学び直したいなあ。


Python3ではじめるシステムトレード ──環境構築と売買戦略 | 森谷 博之 | ビジネス・経済 | Kindleストア | Amazon

pythonでドル円を取得してみた。

超簡単です。

import pandas_datareader.data as pdr

start = "2016/1/1"
end   ="2017/2/13"

fx = pdr.DataReader('DEXJPUS',"fred",start,end).dropna()
fx.tail(20)


出力結果はこちら。

f:id:trade-and-develop:20170214204205p:plain


ちなみに「dropna()」はデータが無い行を削除してくれるもの。これがないと12/26とか1/2とかの海外市場が休場のときに「N/A」と表示される。まあそれがあっても困りはしないんだけど、あっても意味はない。

転職活動やってみることにした&だいふ回復してきたなあ。

某転職エージェントに登録して、明日の夕方に面談の予定です。服装は自由と書いてあるけど、さすがに普段のダサい格好で行くわけにもいかず、久々にスーツを着ることになりそうです(嫌だなあ。。)。自分の中ではやっとここまで来れたという感じです。だいぶ回復してきました。


11月頃から適応障害と診断され会社休んでるんですが、年末まではほとんど家から出れなかったからね。今までメンタルで家出れなくなるとか甘えだろと思ってたけど、本当に精神が参ると何も出来なくなるんやね。毎日ネットをボーっと眺めて、時にはネットを眺めることも出来ず、毎日マイナス思考が頭の中を「ぐるぐるぐるぐる」「ぐるぐるぐるぐる」。文字通り、目が回ります。いま会社勤めが大変な人は「休めていいなあ」って思うかもしれないけど、


俺は絶対に二度とあんな経験はしたくない!!


たとえ、どんなにお金もらえようともだ!



本当にそれくらいキツイ。


精神的にキツかった要因の一つに嫁が専業主婦だったことがある。

うちの場合は子どもが2人いて、嫁は専業主婦だから俺が働かないと家計が破綻する。そのこともプレッシャーになった。だから家庭を運営するうえで専業主婦はやめといたほうがいい。たとえ、パートナーの給料が安くとも、自分が無職の間に扶養に入ることができる(=健康保険と年金を払わなくてよい)ってだけで気分的にまったく違う。うちの場合は俺が無職になったら、貯金を崩して生活してくだけじゃなく、俺と嫁の2人分の健康保険と年金を払ってかなきゃならない(月7万程度かな)という最悪な状態だった。(念のため言っておくと嫁は悪くありません。専業主婦にならざるを得ないような仕事をしている僕が悪いのです。)




そして自分の場合は「休めていいなあ」と思ってるうちはまだ元気で、本当にやばくなったら文字通り糸が切れるような感覚になることが分かった。もう一刻も早く逃げ出したかった。上司にキャリア的にもったいないとか言われたけど、本人的にやばくなったらすぐに逃げた方がいい。ほんとに。自分が働いてる会社でもたまに自殺者出るけど、みんな「あー、またか」くらいの感覚で、人事が必死に何事もなかったように事態収集する。そしてすぐに忘れていく。だから早く逃げないと。逃げる前はめちゃくちゃ怖いけど、一旦逃げてみると会社の中の異常さがよく分かるから。


最悪なのがネット検索して「休むべきか休まないべきか」迷ってる状態。人間はネットの記事で救われることもあるが、現状精神疾患に関する記事では95%はますます暗くなる。だから読まないほうがいい。自分はこれで更に病んだ気がする。

だから休職している人とか休みたい人に対して、もうちょっと優しいインターネットになってほしいというのが僕の目標の一つだ。

日経225先物のシステムトレードのためにpythonの環境構築をやってみた。

僕が今まで実際に自分でコードを書いたことがあるプログラミング言語COBOL、swift、rubyの3つ(COBOLは業務、他の2つは趣味)です。しかしながら最近pythonがあまりにも便利だということをよく聞くこと。そして日経先物(僕の投資資金だとミニですが)の分析をちゃんとやりたいと思い、自分のmacbookpythonの環境を構築しました。環境構築にあたり下記のサイトのコマンドをコピペしてターミナルで実行(なんて危なっかしいんだ!!)

python最新版のインストール

qiita.com


●anacondaがどうやら必要ということなので、それもインストール

qiita.com


●とりあえず日経平均株価を取得

qiita.com

ちなみに「import pandas」のところは「import pandas_datareader.data as web」に書き換えないと通りませんでした。

qiita.com


2016年の日経日足の終値を表示するようにプログラムをちょっと変えたソースコードは以下。

import pandas_datareader.data as web
import matplotlib.pyplot as plt
import datetime

# 取得する日の範囲を指定する
start = datetime.datetime(2016, 1, 1)
end = datetime.datetime(2016, 12, 31)

# Yahoo ファイナンスから、 ^N225 (日経平均株価指数) を
# とってくる。
f = web.DataReader('^N225', 'yahoo', start, end)

plt.title('Nikkei 255 from 2016.1.1 to 2016.12.31')

# plot で、終値をプロットする。
# 自動的に Index が Date になっているので、横軸が時間になる。

f['Close'].plot()
print (f[:10])

plt.show()


ターミナルの結果はこちら

f:id:trade-and-develop:20170212235847p:plain



2016年の日経平均終値を表示してみました。トレーダーの方はこのチャートを見れば、色々なことに振り回された記憶が蘇るのではないでしょうか。

f:id:trade-and-develop:20170212235758p:plain


※10月頃に急上昇してるとこありますが、実際はそんなことありません。なんかおかしいです。それ以外は概ね合ってるかと思ってます。(記憶ベース)




●日経先物のデータ取得&分析

日経先物ってのデータ取得&分析方法ってwebで探しても出てこない。まだやってる人少ないのかということで検索していると、それっぽい本を発見で早速購入。明日には届くと思われる。また明日からやってみようっと。

Python3ではじめるシステムトレード ──環境構築と売買戦略 (Modern alchemists series) | 森谷博之 |本 | 通販 | Amazon

自分のヤバさを思い知った。

とりあえず今日でプログラミングスクール終わり。1週間のコースで、受講中ほとんど話さなかった人たちやったけど、最終日に飲み。スクールを出たのが22時くらいやから1時間ちょいの短い時間やけど、自分の知らない話をたくさん聞けて楽しかった。そして自分の置かれてる状況のヤバさを思い知った。


自分はいま32歳で今までそれなりに大きな会社(生命保険の会社)で働いてた。そして、その組織を出た時に自分が何が出来るのかってずっと考えてた。そんなことを考えながら社会人1年目で結婚して子どもが2人生まれて。仕事と家庭とちょっとの遊びで忙してしてるうちに30歳を超えて。。去年まで仕事も楽しく同僚も良い人達ばかりで、直上司も尊敬できてカッコいいと言える人達やった(その上の上司は微妙やったが)


でも今年、東京に異動になってから違った。社内はよく分からない社内向けの仕事してる人達や、まったくやる気のないおじいちゃんがたくさんいた。やる気があっても全くリスクを取りたがらない人が多かった。責められている人を周りが誰も助けない雰囲気だった。みんな自分のことを守ることで必死で。自分も将来こうなるのかと今年になって本気で怖くなった。今まで頭で分かってはいたけれど、それを30歳超えて初めて目の当たりにして。こんな人達みたいになりたくないと本気で思った。給料高いから辞めたいけど辞められない人達みたいに。(給料高いだけマシかもしれませんが)






それで僕は会社から逃げた。というより会社に行けなくなった。医師から診断書をもらって。






そしてやっと元気になり、先週から1週間のプログラミングスクールに通った。約3ヶ月ぶりに毎日決まった時間に家を出て、電車に乗り、家族以外の人達と少々話す生活。そんなサラリーマンにとっては当たり前の生活を久し振りに送った。





そこで感じたこと。。




「あー、今まで世間が正しくて僕がおかしいと思ってたけど、一歩外に出てみれば、おかしいのは僕がいた世間(会社)やったんや!」


それと


「結局、今まで自分何やってたんだろ。外に出たら何処からも求められない人間になってる。ヤバい。」







自分がそれなりに忙しく充実した日々を送りながら、ずっと心の奥で感じていた違和感。それは間違ってなかったんだ。

プログラミング出来なくてもいいんじゃないか

2020年からプログラミングが義務教育とされる予定だったり、既にプログラミンスクールが多く存在するところを見ると、世間はプログラミングというものに大いに期待しているらしい。

これからの時代はプログラミングが必須だとか、プログラミングを学ぶことで日本の国力が上がるとか人生の可能性が広がるとか。そこで僕のプログラミングに対する現時点の考えを、割と真面目にここに書いておく。



僕の現時点での考えは、プログラミング出来なくてもいいんじゃない?というこだ。


食わず嫌いじゃないですよ。僕は現在、お金を払ってプログラミングのスクールに行っているし、金融機関でSEも5年程度やっていた。そしてプログラミングをすること自体が好きですから。なのでプログラミングについては素人ではないです。

そんな自分が「やっぱり出来なくてもいいんじゃないか」と思うのは以下の理由からだ。



1、プログラミングのコモデティ

ネットでプログラミングスクールと検索すると選びきれないくらいの多くのスクールが出てくる。つまりそれだけ受講生がいるということでありライバルが多すぎるのだ。たまに「ビルゲイツやザッカバーグや堀江さんや家入さんもプログラミングやってたから、今の地位があるんじゃないか」と言う人もいるが、それはまだ一般的じゃない時代にハマっていたから価値があるのだ。これだけ一般化した社会ではそれほど価値がないと思っている。


2、プログラミングなしで出来ることの増加

技術の進化によりプログラミングという作業自体が無くなるかもしれない。rubyでいうところのrailsのようにフレームワークが開発されることにより簡単にサービスを作れるようになったり、wordpressでサイトが作れたりだとか。(プログラミング不要ではないけど)これからますますその傾向は強まり、プログラミングしなくても、個人が出来ることが増えていくだろう。


3、コミュニケーション力が落ちる

プログラミングはコンピュータを相手にするものであり、正確なアウトプットを出力しようとすると1文字の間違いも許されない。そして間違いのないロジックを作ろうとすることは集中力のいる作業だ。そんなコンピュータを相手にしていると、対人間のコミュニケーション力がどうしても落ちる。これは僕が身をもって経験したことだ。(僕は元々コミュニケーション力が低いけど、さらに低くなった気がするw)そして、前述したように誰でもプログラミング不要で何か作れるようになると大事なのはその中身のコンテンツなのだ。人に訴えかけることが出来るコンテンツを作る力とは結局コミュニケーション力なのだ。


一言で言うと「今後、ある程度の技術は誰でも出来るようになるから、他のこと磨いた方がいいんじゃないか」ってことだ。それは1つの企業に勤め上げる能力だったり(僕はサラリーマンを10年近くやってますがずっと勤め続けるって本当にすごいことだと思う。)、営業能力だったり。結局はそういう人が安定して得する世の中になるんじゃないか。面白いかどうかは知らんけど。



プログラミングって所詮、何かを実現するためのツールなのだ。だからプラスαの何かがないと生きていけない。(技術レベルが相当高ければ問題ないけど)プログラミングは魔法の杖ではないのだと思っている。



※ただし、プログラムの知識がまったく無い生活なんて僕には考えられないし怖い。そして出来るとやっぱり楽しいし自分の子どもにはスポーツよりもプログラミングを学ばせたいと考えている。僕が言いたかったのはプログラミング人口の母数が増えるとライバル増えるから止めてくれよということだ!!

sublime textで、インデントを自動で揃える(自動調整する)ショートカットを作る

調べるのにちょっと時間かかった&英語サイトが最も参考になったのでメモ。

いろんな開発でsublime textっていうエディタのソフトを使う人もいると思うのですが、インデントを自動で揃える(自動調整する)ショートカットは標準では用意されていないようです。インデントが揃っていない状態とは例えば以下のような状態です。

f:id:trade-and-develop:20170210191028p:plain

メソッドやif文が全部左に揃っていて、コードがとても読みづらいです。かといって、インデントを揃えようとしたときに各行に対してスペースを入れていくっていうのも非効率。そこで調べた結果、以下のとおりにやればショートカットを作成できたのでメモメモ。


メニューの「Sublime Text」→「Preferences」→「Key Bindings」

f:id:trade-and-develop:20170210185657p:plain



そこに以下のコードをコピペ

{"keys": ["super+shift+r"], "command": "reindent" , "args": {"single_line": false}}


具体的にはこんな感じ。今回の場合は「shift + command + R」にショートカットを割り当てます。

f:id:trade-and-develop:20170210191936p:plain


これをやったあとに、先に出てきたインデントが揃っていないソースを全選択(command + A)してショートカット(shift + command + R)を押すと、こんな感じ。分かりにくいけどw

f:id:trade-and-develop:20170210192211p:plain




参考サイト
josh.blog
www.starlod.net