GooglecolabでGoogledrive上のjsonファイルを読み書きするコード
最小の構成で表記の操作を行う
#google driveでjsonファイル操作する際の簡素なコード from google.colab import drive import json drive.mount('./gdrive') #書き込み例 A = {"AA":"aa", "BB":"bb", "CC":"cc"} #ファイルに書き込み with open("./gdrive/My Drive/Bot_materials/materials/A.json", 'w') as f: json.dump(A,f) #ファイルから読み込み f = open("./gdrive/My Drive/Bot_materials/materials/A.json", 'r') A = json.load(f)
両建てトレード手法の開発①
両建てトレード手法を開発する
以下、トレードイメージ
~~~
min_profit = set minimum profit price
SF = safety factor
def get_predict_range(open,close)
pred_high = predict high
pred_low = predict low
return pred_high, pred_low
while
if exist position
wait(Xcandles)
close all positions
else
get_predict_range
if pred_high - close > min_profit*SF
send buy limit order
if close - pred_low > min_profit*SF
send sell limit order
time.sleep(wait)
~~~
以下、すべきこと
HighとLOWのLSTM実装
close, high, low, をそれぞれ別プログラムで予想して最後にドッキングが効率が良いかも
pred_high, pred_lowのプロット
ロジックの実装
上記ロジックのバックテスト
バックテスト環境とロジックのモジュール化
自動売買Botの作成進捗①
できるようになったこと
基本的な自動売買のテンプレートプログラム作成
機械学習ライブラリを仮想通貨に応用
各時間足のバックデータ取得、利用(6000本分) 標準比較データの設定(再度取り直す必要あり)こちらのサイトを参照
売買ロジックの設定 バックテストこちらのサイトを参照
これからすべきこと
売買ロジックの評価方法の検討 例)ある手法を開発した際の評価、検討・比較 方法
backtestingライブラリの出力で比較、月間のreturnで評価 出力結果はスプレッドシートで管理、随時ソーティング ※最終的には各項目を管理、利益率が上位に来るものを ランキング形式でチョイスして使用するなど
backtesting.libについて調べる
strategy_tableに思いついたインジケータを載せてバックテストを行う
LSTM_DoublePosition_trade
openとcloseをLSTMでプロットできるようにする
モデルの精度を評価する
オーダーブックからcloseを予想する。
LSTMを勉強する③
上記記事のエラー対策方法について、
# テストデータを使って予測&プロット fig, ax1 = plt.subplots(1,1) ax1.plot(df[df['time']>= split_date]['time'][window_len:].astype(datetime), test['close'][window_len:], label='Actual', color='blue') ax1.plot(df[df['time']>= split_date]['time'][window_len:].astype(datetime), *1+1) * test['close'].values[:-window_len])[0], label='Predicted', color='red') ax1.grid(True)
TypeError: dtype '<class 'datetime.datetime'>' not understood
学習結果をプロットしようとすると、 上記のエラーが出た。
.astype(datetime)を削除することでエラーが解消できた。
上記の様に、LSTMで後追い予想程度はできる様になった。
ここからどうエッジをつけていくか次回から考察する。
https://github.com/PP-lib/Bot_materials/blob/master/LSTM_191109.ipynb
*1:np.transpose(yen_model.predict(test_lstm_in
LSTMを勉強する②
LSMTについて勉強する①
#LSTMについて勉強する
まず、こちらのサイトを写経する LSTMでFX予測をやってみよう(機械学習初心者向けチュートリアル)
写経中にoandapyを使用するところでattributeエラー発生。
明日、下記URLに従って対応してみる。
途中、OANDAのpipのバージョンが合わない?等の理由で動かないっぽい 下記の記事を見ながら対応してみるが、仮想通貨で取引したいのでここで粘らずbitflier に読み替えて進めていく。
その他 備考 リポジトリを非公開にする方法
【作業記録】自動仮想通貨売買botの作成
仮想通貨売買bot作成までの作業を記録する
目標
日利2%を安定して稼ぎだすBotの作成を行う
動作環境
端末 :iPad Air2(magic keyboard)
エディタ :Google collaborate
サーバ :cloud9
基本構成
文系でもわかる!Bitcoin自動売買トレードの始め方を基にプログラムを作成していく。
作業記録
作業日 | 作業内容 | 参考資料 | 作業ファイル |
---|---|---|---|
2019 / 11 / 8 | Qiitaで作業記録の立ち上げ | Markdown記法 サンプル集 | |
2019 / 11 / 8 | LSTMの実装検討 | LSTMでFX予測… | LSTM_MODEL.ipynb |
column | column | column | column |
作業日誌
20191108
Qiitaに作業記録を作成 今後、作業する際にはここを起点にBot作成していく Markdown記法は上記を参照する。
20191109
githubを上手く使いたいが、あまりピンと来ていないので使い方がよくわからない。 理想の手順としては、プログラム編集したくなった際に
- はてブロに予定作業を記入
- githubからプログラムを読み出す。or googlecolab で新規作成
- プログラム編集@googlecolab
- githubにプログラムを保存
- はてブロに作業内容とリンクを記入
みたいな流れで作業を進めていきたい。
以降、それぞれの記事で作業内容を管理する。