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

More Related Content

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

Rpa exercises slideshare180510
Rpa exercises  slideshare180510Rpa exercises  slideshare180510
Rpa exercises slideshare180510ssuser717883
 
システムトレード構築セミナー
システムトレード構築セミナーシステムトレード構築セミナー
システムトレード構築セミナーYoshiyuki Hongoh
 
Logにまつわるエトセトラ
LogにまつわるエトセトラLogにまつわるエトセトラ
Logにまつわるエトセトラleverages_event
 
ゆるトレWEB ver 2.0のご紹介
ゆるトレWEB ver 2.0のご紹介ゆるトレWEB ver 2.0のご紹介
ゆるトレWEB ver 2.0のご紹介裕介 松田
 
「マイナンバー収集体制」短期構築 提案書
「マイナンバー収集体制」短期構築 提案書「マイナンバー収集体制」短期構築 提案書
「マイナンバー収集体制」短期構築 提案書Questetra_Sales
 
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいYoshitaka Seo
 
PEP x LINE WORKS Introduction
PEP x LINE WORKS IntroductionPEP x LINE WORKS Introduction
PEP x LINE WORKS IntroductionYuIkarashi
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)dcubeio
 

Similar to 自動売買プログラムの作り方 (12)

Rpa exercises slideshare180510
Rpa exercises  slideshare180510Rpa exercises  slideshare180510
Rpa exercises slideshare180510
 
システムトレード構築セミナー
システムトレード構築セミナーシステムトレード構築セミナー
システムトレード構築セミナー
 
Dynamic+arms+fx090710
Dynamic+arms+fx090710Dynamic+arms+fx090710
Dynamic+arms+fx090710
 
Logにまつわるエトセトラ
LogにまつわるエトセトラLogにまつわるエトセトラ
Logにまつわるエトセトラ
 
ゆるトレWEB ver 2.0のご紹介
ゆるトレWEB ver 2.0のご紹介ゆるトレWEB ver 2.0のご紹介
ゆるトレWEB ver 2.0のご紹介
 
「マイナンバー収集体制」短期構築 提案書
「マイナンバー収集体制」短期構築 提案書「マイナンバー収集体制」短期構築 提案書
「マイナンバー収集体制」短期構築 提案書
 
Payment channel入門
Payment channel入門Payment channel入門
Payment channel入門
 
サーバー構築の基礎
サーバー構築の基礎サーバー構築の基礎
サーバー構築の基礎
 
POSのご紹介
POSのご紹介POSのご紹介
POSのご紹介
 
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
 
PEP x LINE WORKS Introduction
PEP x LINE WORKS IntroductionPEP x LINE WORKS Introduction
PEP x LINE WORKS Introduction
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
 

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