Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

自動売買プログラムの作り方

6,204 views

Published on

ビットコインとか勉強会#3

Published in: Software
  • Be the first to comment

自動売買プログラムの作り方

  1. 1. ビットコインとか勉強会#3 自動取引プログラムの作り方 セブンバニーズ株式会社 代表取締役 古酒 慎也 @7bunnies_bot
  2. 2. ①仮想通貨を自動取引する仕組み 仮想通貨取引所 自動取引用サーバー管理者
  3. 3. ①仮想通貨を自動取引する仕組み 仮想通貨取引所 自動取引用サーバー管理者
  4. 4. ②自動取引に必要なもの ①仮想通貨取引所の口座 ②API Key(本人確認、権限の制約) ③自動取引プログラム(後述) ④通貨(JPY、BTC、ALT)
  5. 5. ③自動取引プログラムの3大要素 ①時価の取得 (売買の気配値と数量) ②ポジション管理 (残高確認、損益計算) ③売買執行 (取引所への新規発注、注文取消)
  6. 6. ④時価の取得で大事なこと ①取得方法の違い (WebSocketかGETか) ②JSON formatの違い(後述) ③呼び値、有効桁数、最低発注数量の違い ④定期メンテナンス ⑤システム障害の検知
  7. 7. ⑤JSON formatの違い サンプルで説明 取引所毎にAPIの設計が異なる 個々の仕様を把握して取引所毎に ライブラリを作成
  8. 8. ⑦呼び値、有効桁数、最低発注数量の違い 同じ通貨ペアでも取引所によって 値段の幅(呼び値)や発注数量の 有効桁数、最低発注数量が異なる Webで説明
  9. 9. ⑧定期メンテナンス ほとんどの取引所は24時間だが 例えば某取引所では、 AM4:00から10分間システムが 停止するため、crontabなどで システムの停止、起動を管理する
  10. 10. ⑨システム障害検知 取引所のシステムが停止している ことを取引所は教えてくれない 時価の配信間隔やAPI呼び出しの エラーやレスポンス時間から 状況を判断して古い情報を捨てる
  11. 11. ここまでで伝えたいこと 時価の取得は通貨を必要としない ため、検証がしやすい 自動売買でなくても、複数通貨の 気配情報を見たり、複数取引所の 気配を同時に見たりする便利な プログラムがすぐに作れる
  12. 12. ⑩ポジション管理で大事なこと ①通貨毎の残高を確認 ②平均単価の計算 ③実現損益の計算 ④評価損益の計算 ⑤時価総額の計算
  13. 13. ※ポジション管理の基礎 通貨毎の残高をAPIから取得 (後述する評価損益や時価総額の 計算、売買執行の発注数量計算に 使う) ⑪通貨毎の残高を確認
  14. 14. ⑫平均単価の計算 売買履歴をAPIから取得 通貨毎、売買別に平均単価を計算 して、売買執行条件に利用する (先入先出法を使う)
  15. 15. ⑬実現損益の計算 平均単価を計算する過程で同時に 計算する (収益管理やシステムの停止条件に 利用する)
  16. 16. ⑭評価損益の計算 通貨毎に (時価-平均単価)x残高で 計算する (収益管理や売買執行条件に 利用する)
  17. 17. ⑮時価総額の計算 通貨毎の評価損益の合算した値 自動売買プログラムが利益を 出しているか否かを判断する (収益管理やシステムの停止条件に 利用する)
  18. 18. ここまでで伝えたいこと 時価の取得と同じく通貨を必要と しないため、検証がしやすい PrivateAPIを利用するので通貨を 必要とする売買執行プログラムを 開発する前に、まずはここを 攻略しておく
  19. 19. ⑯売買執行で大事なこと ①時価が取得できているか? ②通貨の残高が取得できているか? ③時価の取得から売買執行までの流れ ④3つの取引アルゴリズム ⑤必要な変数と関数
  20. 20. ⑰時価の取得ができているか? 売買執行に必要なパラメータ ①通貨ペア(BTC_JPYとか) ②発注値段 <- 時価から決める ③発注数量 <- 時価と残高が必要 ④その他(各種執行条件) パラメータを作る時に必要
  21. 21. ⑱通貨の残高が取得できているか? 売買執行に必要なパラメータ ①通貨ペア(BTC_JPYとか) ②発注値段 <- 時価から決める ③発注数量 <- 時価と残高が必要 ④その他(各種執行条件) 残高/値段=発注可能数量
  22. 22. ⑲時価の取得から売買執行までの流れ 時価の取得 残高の取得 損益の計算 取引アルゴリズム 仮想通貨取引所 売買執行
  23. 23. ⑳3つの取引アルゴリズム 売買執行のタイプを3つに分ける ①新規注文(例:3%下落したら買う) ②利益の確定(例:3%上昇で売る) ③損失の確定(例:0.3%下落で売る) これは一例で、正解はありません
  24. 24. ㉑必要な変数 運用原資産、通貨残高、時価総額 最小、最大発注数量 最小、最大発注金額 時価、気配値、最終更新時間 API呼び出し間隔、発注間隔 最小利益幅、最大損失幅 発注数量用有効桁数、呼び値幅 Taker、Maker手数料
  25. 25. ㉑必要な関数 取引所のAPIに対応する関数群 PrivateAPIで使う認証用関数 発注パラメータ用補正関数 (有効桁数、発注可能数量計算) 取引アルゴリズム用関数 (時価と残高、その他情報から売買執行を 判断する関数) システム停止用関数(障害検知)
  26. 26. ここまでで伝えたいこと 時価の取得と通貨残高が取得できると あなたの考えた最強のアルゴリズムで

×