SlideShare une entreprise Scribd logo
1  sur  21
自動取引Botの考え方
スナフキン(Twitter: @snufkin0866)
前提としている知識
必須
• 板取引の仕組み
• 「空売り」,「成行注文」,「指値注文」などの,トレードにおける基本的な概
念,用語.
できればあった方がよいもの
• 確率を勉強した経験(高校生レベルでOK)
プログラム経験は必要か?
→プログラムを書く作業は,やりたいことが決まれば何とでもなるのであまり心配
しなくてOK.
相場で”稼ぐ”方法
• 稼ぐ=JPYを増やすと定義する.
• 黄色い丸で買って,赤い丸で売る.
→つまり,安く買って高く売る.
これが全て.
高く買って安く売るにはどうすれば良いか.(手法・対象)
手法
• 裁定取引
• 同取引所内でのトレード.(これがいわゆる“トレード”のイメージ.今回解説す
る対象.)
対象(仮想通貨に限定すると)
• ビットコイン
• アルトコイン
Botトレードに向いているのはBTC or アルト?
そもそもなぜBotトレードをやりたいか.
1. 安定した不労所得が欲しい.
2. 感情を交えずにトレードを行いたい.
それを踏まえて,BTCとアルトのどちらがBotトレードに向いているか.
1. アルトの値動きはBTCよりファンダ要素に左右されやすい.
→アルトは突発的に稼げるかもしれないが,安定した収入は見込みづらい.
2. BTCは差金決済やレバレッジをかけた取引がAPIでやりやすい.
3. BTCは流動性が他の仮想通貨と比べて圧倒的に高い.←これが最大の理由(?)
BTCをトレードするとして,どの取引所を使うのが
良いか.
候補
• コインチェック
→サーバの安定性に定評がある.遅延少ない.ただし,レバをかけた取引では手数料を取られる.
• BitFlyer
→レバ取引の手数料が無料.ただし,サーバが弱い.(かなり致命的→最近改善してきた)
pybitflyerというpythonの便利なAPIラッパーライブラリを使える.
• BitMex
→上記に挙げた2つの取引所の良いとこ取りで,比較的評判が良い.また,レバも100倍までかけ
れる.ただし,BTCでの入金が必要,APIのラッパーもないので,やや玄人向けかも.
• ZAIF
→サーバの弱さがもはやネタレベルなので言及なし.
結局どの取引所が良いのか.
結論
• すべての需要を満たす最高の取引所はない.しかし今から始め
るのであれば,BitMexが一番良さそう.(技術的・語学的に
無理でなければ.)
• 最も簡単に扱えるのはおそらくBitFlyer.ただし,スキャルピ
ング(超短期取引)をやるならサーバの遅延が致命的.(特に
最近.)
Bot取引の流れ(1)
エントリー方向
の決定(L or S)
エントリー注
文を発注
エントリー注文
が約定
エントリー注文
が一定時間約定
せず
エントリー注文
キャンセル
クローズ注文を
発注
エントリーシグナル
まで待機
Bot取引の流れ(2)
クローズ注文を
発注
クローズ注文が
約定
最初に戻る
全体としては,無限ループを回ながらループ内で条件分岐
するイメージ
Botトレードでは,これらのプロセスを明確に意識する必要がある!
理想的な取引環境を仮定した場合
工夫が必要な(他のトレーダーに対して優位に立つための戦略が必要な)処理
• エントリーシグナルの検出
• エントリー方向の決定
• エントリー注文の方法(成行,指値,指値ならその価格…etc)
• クローズ注文の方法(成行,指値,STOP)
機械的にできる処理
• 注文のキャンセル
• 注文の発注
しかし...
いわゆる“ロジック”
BitFlyerを使う場合,実際には機械的な処理は1つもない.
嘘のようで本当にあった実例
1. 注文のキャンセル処理(pybitflyerで言うと,cancelallchildorders)を送ってから1
分後にキャンセル処理が行われた.
2. 注文発注後,30秒待っても注文が板に並ばなかった.しかし,約1.5分後に注
文が執行された.
→この程度の遅延は想定して対策をしなければならない.(今週途中から改善した
が,それでも遅延はある.)
Botのロジックの作成とは“期待値を正にすること”
• 期待値(E) = 勝率(P)×勝ったときの平均値幅(W) – (1-勝率)×負
けた時の平均値幅(L)
= PW – (1-P)L
→ Pを1に近づけ,Wをできるだけ大きく,Lをできるだけ小さくす
るゲーム.
例:P = 0.3, W = 5000, L = 1000
E = 800円→一回の取引あたりの平均値幅は800円
つまり,勝率は必ずしも0.5を超えてなくても良い.
Pを固定して,WとLを動かしたときの期待値
Botのロジックの種類は主に次の2種類
1. 価格の予想が根幹をなすタイプ
• テクニカル指標系,レジスタンス,サポートライン系,出来高(いなご)系
2. 価格の予想はあまり重要でないタイプ
• スプレッドを取るタイプ
• 指値をばらまいて,価格振幅内での往復幅を取るタイプ
1. 価格の予測が根幹をなすタイプについて
“買いor売り”の2値分類問題
現在までの時系列データを入力すると,右図の赤
い丸で“売り”,黄色い丸で“買い”を出力するような
関数を作り,その精度を限りなく上げることが究
極的な目標.
関数入力(データ) 出力(“買い”or“売り”)
2.価格の予想はあまり重要でないタイプについて
株取引のHFTと似た手法…「一定時間内に価格は必
ずある地点を通る」と考える
• 超短期でやる場合は,スプレッド幅を取ることを
目指す
= 成行注文者の執行コストを利益としていただく.
• もちろん基本的に指値注文を使う
• ただし,もっと時間軸を大きくとるなら成行注文
でもOK.
売り指値
買い指値
両者に共通する重要事項は“時間軸の大きさ”
値幅1000円
取る値幅 遅延の影響 利益曲線のなめらかさ 取引執行コストの相対的な大きさ
超短期(-1分) 極小 かなり大きい かなりなめらか かなり大きい
短期(-5分) 小 大きい なめらか 大きい
中期( -30分) 中 あまり大きくない あまりなめらかでない あまり大きくない
時間軸の大きさによって,
戦略はかなり変える必要がある
1.価格(上下)の予想が重要なタイプの具体例
1. ボリンジャーバンドの2σを超えたとこ
ろでエントリー.2.5σで損切,1.2σで利
確.(値は要調整)
→各注文が通ったり通らなかったりするの
で意外と難しい.また,バンドウォークで
の振る舞いを考える必要あり.
2. (成行買い出来高 – 成行売り出来高)が,
一定の値より上なら買い注文,下なら売り
注文を出す.(いわゆるイナゴbot.)
→完全に売り買いの2値分類問題になって
いて,損切と利確を分けて考えなくて良い
ので実装しやすい.
ここでショート
エントリー
ここで利確
2.価格予想が重要でないタイプの具体例
IFDOCOで,一定範囲で振動する価格の
値幅を取る
• 利確注文を価格変動幅の内側に置く.
• 損切は変動幅の外側.
→価格変動幅を予測する必要がある.
損切
エントリー
利確
これから取り組みたいこと
• RNN(Recurrent Neural Network)を使った価格の上下予測.(そもそもできるか
どうか不明だが...)
• バックテストの可視化.
• 遅延の度合いによるロジック変更の実装.
…etc
ありがとうございました!!
何か質問があれば下記まで.むしろいろいろ教えて
ください...
Twitter: @snufkin0866

Contenu connexe

Tendances

プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
 

Tendances (20)

双対性
双対性双対性
双対性
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
 
入門core.async
入門core.async入門core.async
入門core.async
 
abc032
abc032abc032
abc032
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
トランザクション入門
トランザクション入門 トランザクション入門
トランザクション入門
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
 
線形計画法入門
線形計画法入門線形計画法入門
線形計画法入門
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
 
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 

Similaire à Bot勉強会プレゼン

【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略
sasy777
 
【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略
sasy777
 
【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略
sasy777
 
営業強化セミナー(東京)
営業強化セミナー(東京)営業強化セミナー(東京)
営業強化セミナー(東京)
販促コンサルタントの渋谷雄大
 

Similaire à Bot勉強会プレゼン (10)

田端大学12/04お題 paypay
田端大学12/04お題 paypay田端大学12/04お題 paypay
田端大学12/04お題 paypay
 
トレトレFXの紹介
トレトレFXの紹介トレトレFXの紹介
トレトレFXの紹介
 
トレードセミナー
トレードセミナートレードセミナー
トレードセミナー
 
【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略
 
【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略
 
【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略【営業企画】イチから始める営業戦略
【営業企画】イチから始める営業戦略
 
ビジネスプランの評価ポイント20110706
ビジネスプランの評価ポイント20110706ビジネスプランの評価ポイント20110706
ビジネスプランの評価ポイント20110706
 
Dow theory trade up
Dow theory trade upDow theory trade up
Dow theory trade up
 
Devlove LeanStartupNight インタビュー演習
Devlove LeanStartupNight インタビュー演習Devlove LeanStartupNight インタビュー演習
Devlove LeanStartupNight インタビュー演習
 
営業強化セミナー(東京)
営業強化セミナー(東京)営業強化セミナー(東京)
営業強化セミナー(東京)
 

Bot勉強会プレゼン

Notes de l'éditeur

  1. ・通貨の種類によらず,これが全て.
  2. 国内主要取引所でBTCはレバかけた板での取引が可能. 流動性は,ポジションの決済に重要.
  3. 他にも,出来高なども考慮したい.
  4. 裁量トレードでやっていることを,より明確に意識する必要がある.
  5. フライヤーのネガキャンではないことを強調.
  6. 青が期待値の関数を表す平面.赤は期待値がゼロの平面.勝率が高い方が期待値が正になる領域が大きい.
  7. ほぼ同時にエントリー&クローズでスプレッドを狙う抜くことを狙う.