Closed54

仮想通貨ボット関連の質問があれば答えるよ(2021/9/5限定)

HohetoHoheto

ボット関連の質問を受け付けてみようと思います。
答えられる範囲でお答えしますので、質問があればどうぞ!

baidokubaidoku

過去BitMexの板が厚い方に順張りする戦略が勝てていた時期がありましたが、現環境において当時のBitMexほど影響力のある取引所はどこだと思われますか?

HohetoHoheto

無期限先物の出来高では、Binance、FTX、Bybitが大きいです。
これらの取引所と、これらの先物のインデックス価格を構成している各取引所です。

ymdymd

botの入力に使ってるヒストリカルデータの時間スケール(秒、分、時間、日)はどれくらいですか?
複数の戦略をとっていて時間スケールがバラバラである場合メインの戦略でのだいたいの時間スケールが知りたいです。

HohetoHoheto

ボットの種類によりますが、高頻度系であれば秒未満(つまり約定履歴)、取引頻度の少ないスイング系であれば4時間足までです。

hitsujihitsuji

清算・OIデータを積極的にロジックに取り入れられていますか?

HohetoHoheto

はい、取り入れています。直近でBybitのWSOTで動かしているボットがそうです。

NaluNalu

2つ質問させてください。

①プログラミングスキルがない人で、高頻度botterとして大きく勝てている方は存在するのでしょうか?
勝つ為にはPDCAを回し続ける必要があると仮定した場合、結局自分でコード書けないと非効率過ぎて淘汰されるイメージがあります。

②Hohetoさんご自身はスイングでトレンドフォロー戦略は使われていらっしゃるのでしょうか?
使われていないとしたらその理由は何故なのでしょうか?

HohetoHoheto

①プログラミングのスキルが高くなくても、勝てている方はいます(UKIがそうです)。理系学生レベルのスキルがあればまずは問題ないと思います。
裁量トレーダーの方でボット開発をしない人がコードを外注する、という話はたまに聞きますが、メンテナンスをどうしているか、あるいは継続して勝っているかはわかりません。
コードは自分で書くのに越したことはないと思います。

②スイングボットは複数種類運用していますが、その中でトレンドフォローは使っています。

irish_georgeirish_george

高頻度取引に興味があるため、Hohetさんの有料note「Liquid高頻度取引ボット構築の指南書」を購入したいと考えています。
公開が2019年とのことですが、これは今(2021年現在)購入しても稼働させることは可能でしょうか。(収益が出るか否かではなく、高頻度取引の構造やソースコード自体に興味があります)
また、当該有料noteと同じような記事(bot販売のような?記事)を今後も出す予定はありますか。

HohetoHoheto

稼働させることは可能です。おそらく収益は出ないと思います。
有料noteの販売、ボット販売は、今後は行う予定はありません。
Zenn上で、「高頻度ボット入門」のようなブックを書こうと思っています(いつまで、と約束はできないのですが)ので、それを待たれてもよいと思います。

irish_georgeirish_george

高頻度ボット入門ですか!正座待機させていただきます。
当該有料noteの無料部分やHohetoさんの他のnote記事だけでもかなりのボリュームなので、まずはそれらを理解できるよう努めます。
回答ありがとうございました。

sy09sy09

OIを使ったボットを検討しているのですが、OIはどこから取得していますか?
取引所毎に特徴等あるのでしょうか?

HohetoHoheto

BinanceのOIをよく使います。公式APIから取得しています。
取引所ごとに特徴があるため、個別に分析するのがよいと思います。

sy09sy09

ご回答ありがとうございます!いつも参考にしています。

katsu1110katsu1110

いつもアウトプットをありがとうございます。自分含め、技術的に興味深いので機械学習を用いたBotを運用してみたいという人も多いと思いますが、

ー 何を予測対象にすべきか(Returnか、高値と安値別で予測するか)
ー 仮に予測できたとして、どういう執行戦略がいいのか(best bid or askに指値を入れてしまう?決済のタイミングは)

が難しく、中々workする機械学習botを作るのは厳しいと感じています。

質問なのですが、Hohetoさんは機械学習を用いたBotは運用されてるでしょうか。その場合、予測対象や執行戦略について、共有しても良いことがございましたら教えてほしいです。

HohetoHoheto

ボットによりますが、機械学習は部分的に利用する、というスタンスです。その場合、予測対象にしているのはReturnです。
時系列予測を行う場合、個人的には機械学習は必須ではないと感じています。

執行についてですが、自分の場合はシンプルにテイクして予測と同じ方向のポジションを素早く持つ、というやり方が好きです。もちろんこの場合手数料がかさみますので、閾値を導入したりします。

katsu1110katsu1110

ご回答いただきありがとうございます!return予測、takeしてpositionを持つシンプルな機械学習の利用をちょっと探索してみようと思います!!

さらさら

ボットは言語はPythonでされていますか?その場合おすすめのライブラリはありますでしょうか?またPython以外を使う場合はどんな言語をつかわれていますか?

HohetoHoheto

ほぼ100%、Pythonを使っています。取引所へのAPI発行は、ccxtという有名ライブラリを使います。
分析の際は、pandasにお世話になっています。
Python以外だと、まれにJavaScript、Node.JSを使います。

さらさら

ボットの運用はAWSなどのクラウドでしょうか?その場合なにか気をつけることはありますか?またご自身でノード立てて運用されたりしたことはありますでしょうか?

HohetoHoheto

運用はAWS、Azureを利用しています。特別なにかに気をつけるということはないのですが、取引所のAPIサーバとなるべく近いロケーションを利用するようにしています。
自分ではサーバーやノードを立てないです。

tokitkytokitky

最近ビットコイン、イーサ以外にもsolana, avalanch, tezos, ftmなどのチェーンもでてきていますが、これからどのチェーンの通貨でボットされるのが興味深いですか?またCEXだけでなくDEXでもボット運用されたりしているのでしょうか?

HohetoHoheto

自分的にはアフロトラストなので、Solanaチェーン贔屓です。FTX上でよくボットを動かすので親和性が高い、というのもあります。
実は、Solana上のDEXボットを開発途中で放置しているので、再び着手しようと思っています。

YunYun

いつも有益な情報ありがとうございます!
汎化性能の高い特徴量の選択はどのように行われていますか?

テクニカル指標, OI, Liquidation, SL比, 取引所間乖離, 先物との乖離など入れていくと、特徴量が膨大になってしまいます。かつ、ICを最大化するようにforward/backwardで選択しても、汎化性能が出なくて悩んでいます。

HohetoHoheto

個人的には、単体で使用したときに説明力のある指標のみを選択するようにしています。
単体で説明力のないものを組み合わせてテスト期間の成績がよくなったとしても、それはすべてフィッティングによるもの、と考えています。

YunYun

今から高頻度に参入するとしたら、どの取引所がオススメでしょうか...?

HohetoHoheto

国内取引所で出来高が大きいところが良いと思います。GMO、bitFlyerがまず候補になります。

YunYun

5月の暴落の際に、1日で億以上稼がれていたのが印象的でした。
ざっくりとでも、どのような戦略を使われていたのか気になります.....

HohetoHoheto

あの収益はスイングボットによるものです。
大きな証拠金で動かしているスイングボットが、下落時点でショートしており、かつ底のほうでドテンロングしたため収益が伸びました。

kudopixelkudopixel

高頻度botをプログラミングする際、APIからトリガーを受信してから発注までのスピード(コードの処理速度:例えばfor文はリスト内包表記を使用したほうが速いなど)を考慮したコーディングを意識されていますでしょうか?また、その必要を感じられておりますでしょうか?

HohetoHoheto

メイカータイプのボット(少し離れたところに指値を置く)であれば、ミリ秒以下のスピードアップの必要性は感じません。
逆に、テイカータイプのボットや、SFDボットは発注までのスピードにこだわっていますし、こだわる必要があると思います。

s1mples1mple

WSOTで結果だしているのがすごいです。

  1. WSOTのbotの取引時間軸はどれくらいですか?(1分足等)
  2. bybitはテイカー手数料が高いですが、WSOTのbotはテイク主体ですか?
  3. FTXでアルト高頻度やっていますか?(勝てていますか?
HohetoHoheto
  1. 10分ごとに発注判定を行っています。
  2. いえ、メイクのみです。逆張りボットです。
  3. やっていた時期もありますが、よい成果を上げられなかったため、停止しています。
UKIUKI

プログラムスキル学生未満なのですが、なんかアドバイスください。

HohetoHoheto

とりあえずきれいなコードを書いてください。
「リーダブルコード」という本を読んでください。

SpringSpring

スイングボットで、積もうと思えば大きなロットを積める場合に、ロットの決め方は、単利と複利どちらを(多く)使われていますでしょうか?また、複利の場合、ケリー基準(あるいはその何らかの修正版)を参考にされていますでしょうか?私は、クリプトにおいては、指標の寿命があるので、単利がいいかなと思っているのですが、複利には夢があり迷う時があります。

HohetoHoheto

スイングボットは、取引所のキャパを超えるまでは複利で動かしています。
単純に、バランス×レバレッジで発注サイズを決めています。
ケリー基準は参考にしていません。レバレッジを決める際はほとんど感覚で決めます(あまり高くしない)が、バックテストのDD率などを参考する場合もあります。

YunYun

Liquidationのデータは自前で溜められていますか?
某サイトから買おうとすると、$700くらいするので、購入を躊躇っています...

HohetoHoheto

自前で溜めています。
まずは、取れる範囲だけ公式APIで取得してバックテストするなどして、必要であれば購入などその他の手段を検討されるのがよいと思います。

ys11ys11

高頻度botに低レイテンシ性は追及されていますか?
その場合、ミリ秒オーダ、マイクロ秒オーダなどどの程度の時間感覚でしょうか。

当方、エクイティのマーケットメイカー向けに基盤開発をしているので
回線、設備、プロトコルスタックの開発などコスト面の土地勘はあるのですが、
個人で設備投資できる金額ではないので、大資本が入ってくると早晩土俵に立っていられなくなるのではないかと懸念しています。

HohetoHoheto

前半について
ほとんど追求していません。理由は、

  • スピードを追求しなくてもあまり影響ないロジックを使っているから。
  • 現状、こちら側のレイテンシーよりもAPIサーバ側のレイテンシーのほうの影響が大きすぎる。

「こちら側の遅延をどう解決するか」よりも、「取引所側の遅延をどうハンドリングするか」のほうがテーマとして大きいです。
自分の話をすると、ミリ秒単位の増減は気にしますが、マイクロ秒単位の増減は気にしていません。
一応、以下は注意しています。

  • APIサーバとなるべく近いロケーションのサーバで動かす。
  • 受信から発注の間で、明らかに遅くなる処理は除去したり、IO系は非同期にする。

後半について個人的な意見ですが、
現時点で海外のLPが既に入っていたり、そういう人たち向けにコロケーションが提供されていたりしていますが、なんだかんだで当分大丈夫なのでは?(利益の源泉が全て食いつぶされはしない)というのと、もしも本当に食いつぶされたときは他の取引所に移ればいいのでは?(大資本が入ってこないようなアレなところ)と楽観的に考えています。

SECSEC

いつも情報ありがとうございます!
清算、OIデータを使ったbotの戦略イメージが沸かないのですが、何か参考になるサイトなどありますか?

HohetoHoheto

いえ、具体的な内容が書いてあるような記事は見たことがありません。
少しヒントを伝えると、
精算データは基本的に反転のサインとなります(貫通することも多々あるので、そこをどうするかが重要です)。
OIは単体で使うような指標ではなく、他の指標と組み合わせるを試してみるのが良いと思います。

tokitkytokitky

いろいろ答えていただいてありがとうございます!非常に参考になります。
ところで、高頻度、スイング等々それぞれのカテゴリで、ロジックはどのくらいの数のストックを持っておられて、いつもどのくらいがうごいているのでしょうか?
あと逆張りがメインということですが、仮想通貨結構つよい強気相場多い気がして素人目に逆張り
は不利な気もするのですが、成功されてる秘訣はどういうところにあるのでしょうか?

HohetoHoheto

「ストック」というより、動いているか没になったかどちらか という感じです。
動いていない過去のボットは、バージョン違いを含めると100個以上あります。動いているボットは、現在は数十個という感じです。

「逆張りがメイン」というわけではないんですが、たまたま今WSOTで動いているボットが逆張りなだけだと思います。
値動きはだいたい、短い時間軸では逆張り傾向が強く、長い時間軸では順張り傾向が強いので、自分のボットもそういう傾向になっています。

jmljml

いつも情報発信ありがとうございます。UKIさんのおかげでNumeraiを始め、Hohetoさんのnoteを見てシステムトレードに足を踏み入れました。Twitterでも鋭い洞察にしょっちゅう刺激を頂いています。

流動性と再現性を重視されているとのことですが、「BTCとETHのみ」など銘柄なのかそれとも「1日の出来高〇〇million USD以上」など定量的な条件で見られているのでしょうか?

最近アルト銘柄にもトレードを拡げようと試行錯誤しているのですが、どこまで手広くやったものか決めあぐねています。
運用金額によるとは思いますが、Hohetoさんの考え方に興味があります。
差し支えない範囲で教えて頂けますでしょうか?よろしくお願いします!

HohetoHoheto

ありがとうございます。

例えばBTCで使っている戦略をアルト銘柄に拡張しようと考えるとき、自分はまずは「1日の出来高〇〇million USD以上」(24時間出来高)を見ます。
ボットがうまくいったときに、どこまでスケールできるか?を事前に確認するためです。

また、再現性の観点から、以下の銘柄を避けています。

  • 運営の影響力が強い(値動きに強い影響を与えるニュースを出したりする)
  • 熱狂的な支持者がいる(パンプの対象になったりする)

流動性と再現性を考えた場合、やはり「BTC>ETH>>その他の銘柄」になってしまうことが多いです。

fukmatsfukmats

こんにちは、いつも参考にさせていただいています!!
資金管理について、なにかルールなど(例えば、同じストラテジーに資産の○%以上を振らない)はありますか?
また、取引所の流動性に合わせたロット設定方法で良い考え方がありましたら、差し支えない範囲でご教授いただけないでしょうか?
よろしくお願いします!

HohetoHoheto

資金管理について、自分たちの現状のやり方は以下のような感じです。

①最初に投入資金を決めておく。最悪、この資金がなくなるもの、と覚悟します。

②ストラテジーに合わせてレバレッジを決めて動かす。
 スイング系であれば、最初は高め(といっても5倍以下)でスタートダッシュして、徐々に下げる事が多いです。
 高頻度系であれば、レバレッジはロット(1回に発注する量)から逆算して勝手に決まる感じです。
 ネタ的、一発芸的なボットはハイレバにします。

③あとは放置する。
 ネタ的なボット以外は、放置しても資金が全てなくなるようなことは稀です。
 もしも資金がなくなれば、ロジックを修正して追加資金を投入するかどうか、を判断します。
 逆に育ってきたらレバレッジを落としたり、少しずつ利益を別口座に移動させたりします。

特に「同じストラテジーに資産の○%以上を振らない」というルールは決めてなくて、稼ぐボットが残り、稼がないボットが淘汰されるイメージです。

ロット設定方法について

スイングは、ロットの上限だけ確認します。24時間取引高のだいたい0.5%までが、自分たちの24時間取引高の上限と考えます。

高頻度系はもっとミクロな話になり、板とか単位時間あたりのテイク量を参考にするのですが、実務的には最小単位で動かすボットを並行して走らせて、劣化具合を見ながらどこまでロットを上げれるかを判断するのがよいです。

このスクラップは2021/09/10にクローズされました