勉強日記1/2
今日は 実践力を身につける Pythonの教科書を12時ぐらい0Pから
Atom入れろって感じなのでいれる。
触って気に入らないのでやめる。
JpyterとSpyderで十分。
PowerShell上にファイル・フォルダドラックドロップでそのファイルパスが表示されるってしらなかった便利。
例文の格言「剣で突き刺すかのように話す者がいる。しかし賢い者たちの舌は人をいやす。」
なるほどなあ(グサッ)
not演算を覚えた。
pass文を覚えた。
チャプター2終わり3始まり
ここまでのまとめ","がフォント的にわかりづらい以外いい本である。
休憩4:30
↑本日の成果です、ご確認ください。
トナカイ 80km/h
キリン 50km/h
意外とはええな。
関数の中で関数を呼び出せる。
関数もオブジェクトなので引数に使える。
無名関数lambdaを覚えた
タプルのリストのインデックスの指定にlambdaを指定する意味が分かりづらかった
イテレータ:値を順に取り出す仕組みを持つオブジェクト
何のためにあるのかイマイチなのでWEBをサーフィン
イテレータとジェネレータ(1) - バリケンのPython日記 - pythonグループ
なるほどなんとなくわかったようなわからないような。
3章→154Pまで読了。
19:00勉強おしまい。
今年の目標
まず去年はパチンコしすぎたので駄目だった。小銭稼ぐのはやめます。
しかもあれだけやってものすごく散々(期待値から-40万円ほど)で時給600円ぐらい。
結局フラグシップモデルのロード一台とホイールとgarmin代金に消えました。
まあ過ぎたことは良いので今年の話ですよ。
ひとまず転職しますか、ちょっとワープア過ぎて辛いので。
パチンコの開発(お金の良い競争相手の少ない穴場と思われる)でも目指します。
あとFXの方はと言うと強化学習で分類器を作ろうかなと、
まあヨコヨコのレジュームONでレイテンシトレードを両建てで細かく抜くような感じのやってみます。
これに関してはなんにも知らないところからスタートなのでどうしてもうまく行かなかったらやり方変わってるかもしれないけど、今まで読んで勉強している感じ方向性は間違ってなさそうな予感はしてます。
それにともなってMT4やMT5ではどうにもならなそうなので最低でもAPI経由でPythonで発注できるようにならねばいけないようです。
現実問題なにを作るのかというと
DB(ティックデータ)から特徴量の検出→強化学習で分類器(いい感じのアキュラシー)の制作
必要そうな技術
- DBはMySQLなのでそれとPythonでグラフィカルに実験できること
- 強化学習のWin環境(自分で作るのは無理そうなのでTensorFlowに逃げる)
- 強化学習が正しく出来ているかを判断できるようになる
- OANDA FIX APIを使ってBot作り
本を沢山買ったのですけど全部は読んでられそうにないので自宅では順番を決めて読んでいきます。
DB→Pythonと渡して検証なので
をガシガシやって日記をつけて行く。
注意事項としてはPythonの方はあまりしっかり理解しなくて良くてSQLは結構細かく理解する必要があること。進行的に先にPythonを終わらせて次のPythonの本を読み進める。
目覚めたドリーマー10
ひとまずリターン時系列データが必要なので
MT4からCSVファイルに書き出します。
計算式は
r=P/P1-1
//+------------------------------------------------------------------+ //| fileopen.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict extern int OutputBars = 120; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int ret1=outputCSV(Symbol()); } //+------------------------------------------------------------------+ bool outputCSV(string symbol) { double cc[]; ArraySetAsSeries(cc, true); int handle; bool ret; handle=FileOpen("CSV_Updater_"+symbol+PERIOD_H1+".csv",FILE_CSV|FILE_WRITE,','); if(handle<1) return(false); for(int i=1;i<1+OutputBars;i++) { CopyClose(symbol,PERIOD_H1,1,2+OutputBars,cc); ret = FileWrite(handle,(cc[i]/cc[i+1])-1); if(ret<1) return(false); } FileClose(handle); return(true); }
ってなスクリプトを作ったのだけど縦なのが気に入らない
まあ別にいいんだけどハンドルの引数の使い方が全然わからん。
120本なのは週ベースの相関を見るので24*5(土日休み)って感じ。
ひとまずここまで。
目覚めたドリーマー9
ファイル関数 / FileWriteArray - MetaTrader 5 のためのアルゴリズムの/自動化されたトレーディング言語のリファレンス
FileWriteArrayなどが便利そうである。
これを使ってざっくばらんに書く。
binファイルとか言っちゃってるわやめとこう。
とりあえずfaiさんところにいってCSVファイルに出力するEAをパクッてきて
参考にして出力完了、縦に入力されてっけどあんまり気にしないでおこう。
ってことで標本ができたのでこっからはpythonでどう計算するかを試す。
CVXOPT
とかいうのでとりあえずやるっぽいのはわかった
ほぼMQLの思い出し作業で終わったけど飽きたので今日の作業はいったん終わる。
目覚めたドリーマー8
今はテストで少ない数の標本でやっているが実際にはもっと膨大な数をもって相関を出すのがいいだろうと思う。
現実問題としてあまり多い標本は年に4回とは言え計算がめんどくさい、自分がするわけではないがありすぎてもあまり危険度は変わらないはず。
3か月を何足で区切るかという問題をざっくばらんに計算しやすいようにサンプルをとるのがいいのだろうか?
この辺はもう宗教的な話でセンチメンタルになりすぎてはいけないのでどんぶり勘定で行くべき問題な気がしないでもない。
1時間足かなあ、13週の土日を除く日数は65*24=1560だとちょっと多い気がしてきた。
4時間足だと260とちょっと少ない気もしないでもないがこの辺が落としどころか?
まあやりつつどのくらい高速でできるか考えながらやるしかないか。