pybottersのDataStoreはコードを書いてる人が違ってたりして取引所のAPIドキュメントとは違うレスポンスが返ってくることがあるのでメモ(忘れっぽいので) (例)pybotters GMOのポジションサマリーで返ってくる値 {'symbol': <Symbol.BTC_JPY: 22>, 'side': <OrderSide.BUY: 1>, 'average_position_rate': Decimal('4138590'), 'position_loss_
Ta-LibにはEMAなどの指数関連の指標を使ったものがあります。 これらはデータ長によってバックテストでの値とズレが生じるので14期間のデータが欲しいときには60位のデータ長が必要となり、実際に使うデータの大体4~5倍程度のデータが必要となりますが、実運用ではメモリを圧迫する原因にもなるので少しでも小さくしたいところです。 なぜそのようなデータ長が必要になるかはryotaさんのブログでよく解説しているのでそちらをご覧ください。 ただ具体的にどの程度のデータ長が必要なのかはs
※初めに実際の運用ではAPI制限や遅延などが原因でバックテストでは勝っていても実際には負けることもあります 株やFXなどのバックテストには様々な方法があります。 ベクトル演算で高速でやるもの ループでやるもの(遅いけど作るのが簡単 今回は後者の方法でやります。 バックテストをする目的 パラメータのどこをいじれば改善するのか? 時間軸を変えて変化を見る パラメータの最適化 とにかくどこがどのように変化したのかを見る なぜbacktestingを使うのか? 理由は単純に
タイトルのとおり導入したときの備忘録として記録しておきます。 導入までの大まかなシナリオ・ローカルネットワークの整備 我が家にはルーターが3つありますが全てブリッジモードにします。 これで物理的な環境は整いました。 ・raspberry pi imagerでOSインストール ubuntu server 22.04LTS 64bitを選ぶ 歯車ボタンを押して詳細な設定をする 黒塗りの部分は任意で変えてく 後はSDカードをラズパイに挿して電源onして10分位放置 I
pybotters v0.13.0 からwatchが使えるようになったので試しにFTXとbinanceのBTCUSDTから約定履歴などをリアルタイムに取得しプリントするだけのコードを書いてみました。 実運用ではprint(msg.data)部分をcsv書き込みやmongoDB insert_many みたいにデータ保存するコードに書き換えればいいと思います。 インデントがずれてたりするけどとりあえず動くからヨシ import asyncioimport osimport p
はじめに 無料部分は人によって環境が違うので大体のインストール方法やスクリプトの紹介です。 無料部分だけで全ての導入は完了します。 有料部分は寄付版です。 私が環境構築したときの手順が書いてあります。 ※一番最後に自動で取得できるようにスクリプトを書きました。 ※自動更新できるようにcrontabの設定例も書き記しておきました。 ※ androidアプリのConnect for Pi-hole®の設定方法追加 Pi-holeとは? DNSフィルタリング機能を備えたDNS
今後orderbookを参考にする際bybitより説明力が強くなりそうなのでふんわりと調査してみました Rest API のベースエンドポイント: https://api.phemex.com WebSocket APIのURL: wss://phemex.com/ws ドキュメント REST API 約定履歴 GET /md/trade?symbol=<symbol> 例1(直近の約定履歴) https://api.phemex.com/md/trade?symb
はじめに nagiさん製DataUtilityからタイトルのとおり一連のことをやったのでZenn初投稿での練習兼ねて何かやってみたいと思い書き起こしてみました。 続きはzennにて
bitflyerは一時期sfdずっと発動してまともにトレードができなくなって以来使っていなかったが自分のgit(private)とか整理する前に書き残しておく bitflyerが公式で出しているわけではなく自分用なので一部有料で隠してます。 ## querysymbol : 通貨ペア(FX_BTC_JPY, ETH_JPYなど)period : m(分), h(時間), d(日) before : unixtime, 前の時間取得(period(m)の場合9時21時で区切
元記事はこちら ドテン&ピラミッディングのコードの一部をnumpyで計算して検証してみました # ポジション計算部(ドテン&ピラミッディング)pyramiding=3df['order'] = 0df['order'] = df['order'].where(df['long']!=True,1)df['order'] = df['order'].where(df['short']!=True,-1)df['pos'] = df['order'].where(df['or
pybottersの使用例的なもの自分用備忘録 参考にしたソースコード # 参考にした関数def _init(self) -> None:# 見た場所 channel == の辺りdef _onmessage(self, msg: Any, ws: ClientWebSocketResponse) -> None: 完全に理解するには↓見ないとダメそう orderbookGrouped で勝手にグルーピングしてくれるのはありがたい 使用例: 5秒毎にティッカーと板
経緯:FTXのアカウントをおととい取得し開発コストを抑えるためにgithubやら探してみたらちょうどいいものが見つかったので紹介します。 まちゅけんさんのpybottersです。 まずはバックテスト用にヒストリカルデータが欲しいなと思ってたので早速使ってみました。 FTXのAPIドキュメントを見ながら書きました FTXのアカウントがまだの人は↓のリンクからお願いします。 import pybottersimport timeimport osimport panda
AWS マネジメントコンソールから EC2へ無ければ検索 実行中のインスタンス インスタンスを選んで右クリック、インスタンスの状態、停止 もう一回停止で強制停止が選べるので停止 おわり
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 左上の9を押してPreferences→Python SupportにあるPYTHONPATHを以下のように書き換える 元はこれ↓だったのを /usr/local/lib/python2.7/dist-packages:/usr/local/lib/python3.4/dist-packages:/usr/lo
時間が余った時に更新 {'NAV': '3003025.2416', #有効証拠金 'alias': 'Primary', 'balance': '3003272.7416', #口座残高 'commission': '0.0000', 'createdByUserID': *******, 'createdTime'
例えば以下のようにコードを打ちます from auth import exampleAuthimport oandapyV20import oandapyV20.endpoints.orders as ordersfrom pprint import pprint#API取得accountID, token = exampleAuth()api = oandapyV20.API(access_token=token)#注文内容data = { "order": { #"