仮想通貨界隈に入って、3年。最初は草コインを買ったりしていましたが、最近になってやはりBitcoinのトレードが一番という事に気づきました(遅い)。
そして、ガチホはもうやらない。FXでのトレードが仮想通貨界隈で生き残っている人たちの共通点。
それらを加味して、BTCのスキャルピングのトレードBOTを作りました。
結果的には、ちゃんと利益でるものが出来たのですが、かなり四苦八苦したので過程をまとめてみます。
使う取引所はFcoinを選定(理由は手数料)
使う取引所ですが、無難なのは国内のbitflyerとかZaifとか、海外ではBitFinexとか。でも、国内だとトレードBOTを好ましく思われていない事と、まだ、しっかりとトレードアルゴリズムが確立していないので、いきなりレバレッジかけたBitFinexというのは危ない。
まずは少額でテストしたかった。そして、手数料が限りなく安いところ、ある程度出来高があるところが良い。
これらを考慮して、香港のFcoinという取引所を使ってBOTを作ってみました。
FcoinはFTトークン1000枚保有していればトレード手数料が無料
やりたいFXのトレード手法としてはスキャルピング。秒〜分単位でトレードするスキャルピングのBOTを作りたかったのでトレード回数が多くなる。
そうなると、一番のネックが手数料です。
Fcoinは、独自のFTというトークンを発行していて、これを1000枚数保有していれば手数料が無料になります。
この事については、前に詳しく調べてまとめた記事があるので、興味がある方はご覧ください。随分前に書いた記事ですが、仕組み自体は変わっていません。
実際に、トレードBOTを使った、僕のトレード履歴をみると、この通り全ての取引で手数料0。
[st-kaiwa1]積み重ねると、大きな金額になるので、これはとても大きい[/st-kaiwa1]
APIを使用して言語はPythonで作成
取引所が決まったら、FcoinのAPIを使ってトレードBOT作ります。
APIは取引所ごとに用意されているので、それを使用。
FcoinのAPI
APIは英語か中国語(日本語でも公開してました)。
Pythonで作成
次は言語の選定は、Python一択。
Githubでトレードの基本となるソースはどなたかが公開していましたので、これをベースにして作り変えました。
ほとんど原型がないほどですが、ゼロから作るよりは、はかどりました。
アルゴリズムはレンジ相場と、ブレイクアウト狙い
FXの手法は色々ありますが、ゼロからBOTを作ったときの弱点は、気軽にテクニカルを使えないことです。
ボリンジャーバンドやストキャスティクスなど、これらは有名なFXトレードツールのMT4やMT5では関数が用意されていて、それを呼び出せば気軽に値が取得できます。でも、pythonでゼロから作ったときはそうはいきません。ボリンジャーバンドを使いたいなら、ボリンジャーバンドの計算を自分でしないといけない。
実は、実装してみたんだけど、1つ問題があって、デバッグでのテスト時に正しい値かが分からないww。
めちゃ複雑な公式があるんですが、どうやって暗算するの??という感じで^^;
手計算で計算も出来ないので、表示した値がちゃんと合ってんの??ってなる。
ということで、何もテクニカル使わなくて良い手法を探していたら、レンジ相場でのトレード手法を知りました。
レンジ相場と、レンジブレイクアウトについては、この方の記事がとても参考になりました。
レンジ相場でのトレード手法は、実装は難しくない。
これだーと思って実装しました。
ツールの目標
いちおう、作る前に、以下のような目標立てました。
- スキャルピング(秒〜分単位)で行う
- 完全ほったらかしにする(このケースはツールを止めるというのはしたくない)
- まずは1日トータルで利益が少しでも出せるようにする
- クリア出来たら1日1000円稼げるBOTにする
- クリア出来たら1日3000円稼げるBOTにする
実装アルゴリズム
実際はもっと細々としたものを入れ込みましたが、主なものはこんな感じ。
いわゆる秒スキャをやりたかった。
- 10分間隔のレンジ相場をチェック
- 1秒間隔でチェック
- レンジ相場を検出したら下限でBUY
- 利益率0.03%でSELL
- 損切りは-0.5%
- 下降トレンドに入った時対策でタイムオーバー設定(3時間)→強制損切り
動かした結果
Twitterでも呟いたんですが、こんな感じでした。
めちゃ勝率高いです。
pythonで、 $BTC $USDT の #スキャルピング のbotがほぼ完成。なんか楽しい。1日動かしてみて、61戦59勝2敗。1万5000円分の売買繰り返しで、350円くらいの利益w(それでも日利2%)。次はロット上げよう。課題は山積みで、少しパラメータいじると大負けするし、エントリー数多いのに利益少ない。 pic.twitter.com/BG8PsYmFAn
— 矢野テック(矢野朋義) (@yanoteck) January 19, 2020
拡大するとこんな感じです。
実際の取引所のORDER HISTORYをみると、こんな感じ。
BUYとSELLを繰り返して、だいたい利益が出ているのが分かると思います。
実際にどれくらい儲かるかはツール側で計算してログをCSV形式で吐き出すようにしました。E列が利益(USDT)です。USDTは1ドル=1USDTと思って良いです(100円くらい)。
一回の売買の利益は少ない
0.0193BTCでの売買で、一回のトレードの利益が0.04〜0.1USDTくらいです。
利益率を0.03%にしているので、この程度くらいです。
もっと上げると利益は出るけど、分単位のトレードではなく、時間単位でのトレードになってしまいます。
利益率を上げれば上げるほど、当然利確しないで、持ち越しになるので、どんどんスイングトレード気味に。
今回は、短い時間でのレンジしかチェックしていないので、一回のトレードで利益大きく得る手法は、まったく別のやり方を考えないといけないかなと思ってます。
それは別のツールを作ろうと思ってます。
ビットコインのトレードBOTは普通の法定通貨と違って仕手の対策が必須
やってみて分かったけど、仕手やりたい放題で、ほぼ毎日大なり小なり1日1回は必ず仕手が入りますね。
勝率めちゃ高いから、ロット(売買の金額)上げて実施した矢先にこんな事が起きました。
大暴落で損した
これはbotでは対処できないっす。ロット上げた矢先だから痛い。 #BTC暴落 pic.twitter.com/prOqhkCh8P
— 矢野テック(矢野朋義) (@yanoteck) January 19, 2020
まあ、ロット上げたといっても、まだテスト中だからよかった。
法定通貨と比べると、振り幅が大きくて数%〜10数%は問答無用で動きます。
仕手筋の方々は、やりたい放題だね。
しかも、世界中に点在しているみたいなので、しょっちゅう行われてます。
BTCのFXやると決めると、組織的に仕手を行っている集団の事を考えないと痛い目に合いますね。
危ないときは止めておけばという意見頂いたんですが、プログラマーの僕としては完全放置したいんですよね。
トレードに感情を一切入れたくない。何とか全自動で、対処したいという思いです。
仕手対策入れた
対処入れましたよ。
悔しかったので。
[st-kaiwa1]こんなの毎日、やられたらたまったものじゃないです。。[/st-kaiwa1]
仕手のアルゴリズムは「仕手株投資に勝つ!」を参考にした
仕手の概念は考え方、動きは、全てこの本を参考にしました。
色々な本買っては読んでみたんですが、この本が一番くわしい。
株の本じゃんと思うと思いますが、全般に使えます。
仕手について知らない仮想通貨トレーダーは多いので、絶対に読んだほうが良いです。
ふるい落としの検出成功!
実際に本に書いてあった内容を、プログラム化してみて、組み込んでみました。
すごい本ですよ。
トレードBOTに仕手チェックの処理を組み込んだら、その矢先に来ました。
昨日は、主催しているアフィリエイト塾の新年会でした。 行く前に #仕手 対策を修正して実施した $BTC スキャルピングbot。半日以上経って、ふるい落としを検出して、バッチリ動作!。テストは上々。仕手の対策は、「短期売買で仕手株投資に勝つ!」という書籍を参考。 pic.twitter.com/7xFeEaJlQk
— 矢野テック(矢野朋義) (@yanoteck) January 25, 2020
まあ、見事に書籍で説明してたとおりの動きになってる。これだけ急に出来高が増えて価格が急騰したら、ほぼ確実に仕手が入ってると思ってよいようです。玉転がし(もしくは、踏み上げ)と思ってよいかと思います。その先には、「ふるい落とし」による暴落が待ってますw。
BTCは秒単位でみると、普段は0.01%とか0.05%くらいの上下なんですよ。大口の仕手が入ると10倍以上の値動きになるんです。
これを検出させるようにしました。
玉転がしは、検出した直後は確実に伸びて利益になるので、検出してもトレードは続行。
ふるい落としは、2〜3秒の間に約0.3%ほど下落することが多いです。
検出したら最後、ナイアガラの滝のように一気に暴落するので、一秒でも早く売り抜きたい。
損切りできるようであれば、できるだけすぐに行う。
売りきれずに残り枚数があるようだったら、その後に仕上げの「踏み上げ」で価格が上昇する可能性もあるので、持ち越し。
ふるい落としが始まると、長時間でめちゃくちゃ暴落するので、4時間ほどスリープする処理を入れました。
[st-kaiwa1]ここでスリープせずに、売りから入っても面白いかもとは思ってます。[/st-kaiwa1]
この後のチャートの動きは、踏み上げは行われずに、レンジ相場に戻りました。
レンジ相場になると、ほぼ確実に利益が出るようになりました。
[st-kaiwa1]とりあえずはテスト大成功という感じ。[/st-kaiwa1]
今後の課題
だいたい勝てるBOTは出来ましたが、いくつか欠点があります。
- 秒単位のスキャルピングをやりたかったけど出来てない
- 勝率は9割以上と高いけど利小損大のプログラムになってしまった
- 一度の負けが痛い!(10回分近くの利益を消す)
- 4,5回負けると利益が無くなってマイナスになる
- 売買の金額によって大きく利益が変わるが、枚数を上げた場合に、売買タイミングで、その量が板に無いことが多い
- ブレイクアウトの実装は出来ていない
こんなとこかなー。
一番の課題は、最後から二番目の箇所ですね。売買で1セットのアルゴリズムで組んだので、結構トレードチャンスを失ってます。
一回のトレードは、0.01〜0.02BTC(1〜2万円くらいの単位)が丁度いいんですよね。だいたい売買成立できる。
逆に、0.05BTC分以上は、なかなか一度に成立出来ない。
ちょうどそのタイミングで、その量が板に出ていない事が多いんです。
なので、マルチスレッドにして5本とか10本走らせて、それぞれで小さく稼いでもらうと大きく稼げそうな気はしてます。
[st-kaiwa1]マルチスレッド対策いれると、大幅にソース修正しないといけないので、二の足踏んでます。ただ、しばらくは楽しめそうです♪。[/st-kaiwa1]
ご質問はコメント欄からお願いします