2020年に入ってから、スキャルピングBOTの作成に注力してます。僕が今作ってるのは、ヨコヨコ相場(レンジ相場)でのスキャルピングを全自動でトレードするBOTづくり。
できれば秒単位での秒スキャを目指して作ってます。
あれこれ試して、めっちゃ失敗もしました。失敗のなかで、必勝法も見えて、だいぶ完成に近づいてきましたので、ちょっと記事にまとめてみます。
FXのスキャルピング手法とは?
秒〜分単位での売買を繰り返す手法で、薄皮をはぐ(スキャルピング)という直訳から付いたトレードスタイルです。
ちまたの書籍で、スキャルピングの方法を読むと、必要なスキルが
- 反射神経
- 判断力
反射神経って・・。
こういう手法こそ、プログラムで作るのにぴったりと思ったんですよね。
取引所とPythonでのBOTの作成について
僕が使ってる取引所と、スキャルピングBOTの作成アルゴリズムはこちらの記事にまとめたので、こちらをご覧くださいませ。
スキャルピングトレードBOTを作成して失敗した点
いきなり成功するってそうそうありません。
あれこれ失敗を経験して、修正していく過程がプログラムづくりでは超たのしいです。
そんな中で、気付いたポイントがいくつかあります。
たぶん、スキャルピングやってる方、これからやる方は、誰しもが経験するであろうと思いましたので、まとめてみました。
トレード回数が多くなるので手数料がネック
スキャルピングを行うと、トレード回数は、めっちゃ増えます。
売りから入るロジックも入れると、とんでもない回数になります。取引手数料は馬鹿にできません。
すくない手数料で売買できる取引所えらびが必要になると思います。
僕は、FCoinという、仮想通貨トレードの中でも超マイナーな取引所を使ってます。ここを使うメリットは、手数料です。所定の条件さえ整えば、すべてのトレード手数料が無料になります。
その事については以下の記事にまとめました。
板に出ている枚数を気にして指値する
仮想通貨は出来高が取引所によって、大きくかわります。一般的な法定通貨でのFXと比べて、出来高は小さいです。
実際にやってみて分かったのは、一度に大きな単位での売買は難しいということです。
10万円分のBTC(0.1BTC)の売買の繰り返しを狙っても、トレードタイミングでなかなか板に出てくることが少ないんです。
実際の板をみてみると、ASK(買い)とBID(売り)の最大と最小は、だいたい1万円〜4万(0.01〜0.04)程度というのが分かります。
海外の取引所の多くが成り行き注文というのはできなくて、当然、BOTでもできないところが多い。
指値で注文するので、指した価格に、適量な枚数でちゃんと売買できるかというのも、BOTづくりのポイントになるかと思います。
スキャルピングは利幅を狙いすぎるとスイング気味になる
これも、あるあるかもしれません。
スキャルピングは、秒〜分単位でのトレードの繰り返しが理想です。一度の取引での利益率を上げすぎると、利確のタイミングを逃して、スイング気味になります。スイングトレードになると、スキャルピングでやってる手法は通用しづらくなります。別の手法が必要になります。
僕も、最初の頃は、利益率を上げすぎて売買タイミングを失う事が多かったです。
秒単位でトレードしようとしているのに、利益率数%とか設定すると、永遠と利確しません。秒単位で、そんなに動かないんです。
現在は、利益率0.03%で設定して動かしてます(BTC/USDTペア)。
そんなもんです。
このくらいだと、1回の売買では大した利益にならないんですよ。まじで薄皮をはぐ(スキャルピングの直訳)という意味が理解出来ました。
損切りも早く実施しないと含み損を抱えやすくなる
BOTを作る上で、絶対必要。
損切りを入れないとポジション抱えたままになりますし、損切りの仕組みは入れないと駄目です。
どのくらい下がったかを秒単位で比率で出して、それを下回ったら損切りするようにいれてます。
損切りの設定数値が儲かるBOT儲からないBOTの分岐点
しかし、この損切りの比率の決め方が難しい。
損切りをどう組み込むかで、儲かるBOTか儲からないBOTかが決まると思います。
損切り-5%に設定
最初は-5%とか、スキャルピングにしては大きめの数値に設定していました。
そうすると、スキャルピングでは、そうそう損切りすることはありません。
BTCの価格が100万円だとすると、5%というのは5万円です。
秒単位の短時間でこんなに価格が上下することは「仕手」を除けば稀です。
損切りしないというのは、一見すると良いように見えますが、大問題が発生します。損切りできないということは、利確できないので、ポジションを持ったまま、永遠と次のトレードが出来ない事態が発生します。
損切り-0.5%で設定
最初はしばらく、この数字で実施してました。1日に1度か2度、このくらいの価格であれば秒単位で動くので、そのタイミングで損切りが発生します。
以下は、僕のスキャルピングBOTのログなのですが、勝率が高く、一見すると勝っているように見えます。
しかし、利益率を0.03%と少なめに設定しているので、損切り-0.5%というと10倍以上。つまり、14〜15回分の利益を1回の負けで失うという感じです。2回も負けてるのに、よく利益がでているなという感じ。
1日トータルでみると、勝率はとても高いのに、利益が出ない日も出てくる事が発生しました。
難しいですねー。
損切り-0.1%で設定
損切りの数値を下げると、負ける回数が劇的に増えます。
しかし、損切りの数値を下げると、一度の負けの金額も、大幅に少なくなります。すぐにポジションも手放すので、次のトレードタイミングに着手しやすくなります。すぐにポジションを手放させるように作るのも、スキャルピングのBOT作りでは大きなポイントと言えるかもしれません。
その結果、勝率は悪くなりましたが、利益が増えました。
トレード回数は劇的に増えて、やりたかった秒スキャが見えてきました。
あー、こういう事かと、自分の身をもって実感しましたね。
今は、この損切りの数値を微妙に調整して、勝率よりも利益率を少しでも上げている感じです。
仮想通貨のトレードBOTでは仕手対策は必須
仮想通貨でトレードBOTを作るには、仕手の対策は必須。仕手は意図的に価格操作する集団の事です。
仮想通貨のトレーダーには、仕手っていう言葉も分からないままトレードしている方も多くいます。
急上昇の後、急降下など、価格の上下が激しいんです。仮想通貨では、法定通貨よりも、大々的に大規模に、ほぼ毎日行われています。
この対策を入れないと、痛い目にあいます。これについては、こちらの記事でまとめました。
スキャルピングは一回の売買の利益が低いので複数同時に動かす
プログラムで組むと、一連の流れは
買い⇒利益が発生したら⇒売り
本当は、こんな単純じゃないけど、こういう流れです。
普通にプログラムを組むと、一度、「買い」を実施したら、「売る」まで次の「買い」は動きません。
利確を待っているタイミングは必ず発生します。
ここが問題。
売買タイミングは、常に毎秒、毎分発生しているのに、その機会を失っています。
解消するために、スレッドをいくつか動かして、同時進行で売買タイミングを図るようにしました。
そうすると、劇的に売買の回数は激増しましたし、自分の手持ち資金を限界まで使うこともできるようになりました(1万を10本みたいな)。
BOTで組む場合、注文のコンフリクト(衝突)が発生しないように、細心の注意が必要です。APIで注文を出すので、マルチスレッドでプログラムを組むと、ほぼ同時に発注する可能性があります。運営側からすると、あまり、好ましくありません。
だいぶ完成がみえてきた
このBOTでの目標は、ひとまずは1日1000円の利益(10USDT)です。
現在は試行錯誤やってますが、たまにマイナスになることもありますが、1日の利益は200〜300円(2〜3USDT)です。
もう少しだね。
損切りの数値の調整が出来たら、次は、売りから入るロジックも入れ込んで1日の売買を増やそうと思ってます。
また、ご報告します。
ご質問はコメント欄からお願いします
コメント一覧 (2件)
こんにちは。
記事のbot情報は非常に有用な情報だと思います。
bot作りの参考にさせて頂いております。
その後のbot成績はいかがでしょうか。
やはり2021年は変動具合が変わっているのでしょうか。
コメントありがとうございます。今は裁量の方に注力して、botの開発は、一時中断な感じです。変動具合というよりも、取引所によってAPIのクセが大きく違うので、調整が難しいです。今は、bitFlyerでMM系のbotを作っているのですが、注文が通らなかったり、反応が遅かったり、APIの実施回数の制限に引っかかったり、サーバーが落ちていたり国内の方がイレギュラーケースのルーチンを入れ込む事が多く、面倒な感じです。