*

ビットコインスキャルピングの自動売買システムの作り方

「アービトラージあるからいいじゃん」ってずっと思ってたのですが、(今でも思ってる)スキャルピングに関する問い合わせが止まらないので、一応作り方を解説します。(PHP)

この記事にピンポイントで飛んでくる方が多いみたいなので一応先に言っておくと、ビットコインのAPI処理については過去記事を読んできた方を対象としています。この記事だけをいきなり読んで開発できるということはないと思うので、適宜過去記事を参照してください。

アービトラージと比較すると、取引所はどこか1社で良いので、プログラミングは楽です。問題は如何にして過去レートを引っ張ってくるかということになります。

これまでにもチラッと言及した記憶があるのですが、基本的には日本の取引所は過去レートを引っ張ってくることはできません。そのため、海外の取引所を使うことになりますが、海外の取引所のベース通貨は米ドルのため、ドルで条件付けを行います。

例によってPOLONIEXを使うので、POLONIEXのAPIについてはこれまでの記事を参照してください。

MT4/MT5などと違いPOLONIEXのAPIでは過去レートの取得に際して、UNIXタイムスタンプを使います。

UNIXタイムスタンプで指定しているのだから1秒ごとにデータを記録していてくれても良いのですが、リクエストするときにはある程度の時間幅を持たせてあげます。

おそらくですが、これはヒストリカルデータの保存方式に由来するものだと考えられます。
秒や分単位による時間ベースではなく、レートが変化したタイミングで更新情報を逐次保存しているため、このようなリクエストになっていると思います。

上の例では安全のため30秒の幅を持たせていますが、もっとシビアにしたい場合は時間幅を狭くしてください。ただし、あまり狭くし過ぎるとレートが返ってこなくなります。

さて、
現在レートは上の関数で現在時刻のタイムスタンプを引数に渡せば取得できるので、これである一定時間前のレートと現在レートが取得できます。

スキャルピングをするということは、現物取引ではなく信用取引ということなので、信用取引用のエントリーの関数と決済の関数を用意します。(現物取引でスキャもできないことはないですが、ちょっと意味合いが変わってくると思います。)

例:コインチェック
ZAIF,bitFlyerは過去記事を見てください。

エントリー関数

決済処理

決済処理をするためには現在の建玉のIDを参照する関数を先に呼び出しておく必要があります。
決済に必要なポジションの情報は取引所によって異なるので、それぞれの取引所APIのドキュメントの決済処理を一応参照してください。

ポジション情報の取得は一覧ででるのですが、めんどくさいので、
1ポジションしかとらないという希望的観測の元、適当な関数を作ります。

少し戻って、エントリー関数の引数にオーダーレートの指定がありますが、
念のためpublicAPIでレートを取得して渡してもいいですし、
成行注文の場合はそもそも関係ないので適当な数字を入れてもOKです。

あとのエントリーの条件文ですが、ドルベースなので、
ドルの値幅の間隔になれていない日本人はそのまま比較しない方が賢明です。

つまり、
(現在のビットコイン価格($))ー (一定時間前のビットコイン価格($)) > 100ドル

とするよりも
(現在のビットコイン価格($)) / (一定時間前のビットコイン価格($)) > 1%
とパーセンテージで比較した方が良いと思います。

これなら1ビットコインが10万円でも100万円でも対応できます。

決済条件については、かんたんのため固定SL/TPで勘弁してください。

こんな感じです。

建玉情報は

こんな感じで取れば、

このように連想配列で取得できます。

あとはお好きなようにこれらの関数を使って平文に条件文を書けばOKです。
基本的な構成はMQLと同じにした方が良いと思います。

ひとつ注意して欲しいのは、
ZAIFはサーバーが不安定なので、サーバーダウンや取引停止やアクセス一時停止が頻発しています。

bitFlyerは決済処理が反対売買なのですが、オーダー送信後にその約定が反映されないことがあるので、
決済しようとしてもポジション情報が取得できないことがあります。
(問い合わせて確認済みです。取引所も不具合として認めています。)

まぁ、スキャルピングするならMT4/MT5のCFDチャートでもいいような気はしますけどね。

ちなみに、
そもそも論ですが、ビットコイン単体でスキャルピングをするよりも、アルトコインを含めた”順張りイナゴ型スキャルピング”の方が現時点では戦略的に優位だと思います。

ただ、アルトコインはAPIで処理できないので、”お金を増やす”というシンプルな目標に対して最適解をとるのであれば、今は自動化には目をつぶった方が良いと思います。

もちろん、これまでに紹介したように、IEオブジェクトを使ったマクロで自動化することも不可能ではありませんけどね。(いろいろ、めんどうじゃん)

Message

メールアドレスが公開されることはありません。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

ZAIFでAPIを使ってオーダーを出す 仮想通貨の自動売買開発⑥

公開:2017/7/10 今回はWEB APIを使って取引注文を出します。 ここまではコイン

記事を読む

仮想通貨取引所のチャット音声自動読み上げシステムを作る3 AJAXでリアルタイム表示させる

前回はbitFlyerのAPIから最新のチャットを取得するところまでやったので、 今回はそれをリア

記事を読む

BitFlyerに自動ログインする【UWSC】

BitFlyerは国内最大手の仮想通貨取引所とうたっていますが、取引高を第三者のサイトなどで調べると

記事を読む

no image

2018年中盤~の仮想通貨(ビットコイン)アービトラージの相場について

ちょくちょく「最近、ビットコインのアービトラージどうですか」という質問をいただくので、ここ最近のアー

記事を読む

一回の演算で複数のリクエストを送る 仮想通貨の自動売買⑪

公開:2017/9/4 基本的にjson形式でAPIをたたく場合、nounceにUNIXタイム

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。
バイナリーオプションで特定の手法が勝てるかどうか検証する方法

バイナリーオプションの場合、 リアルタイムの自動売買開発と過去検証の

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑩

今回はリバーストレードができるように改良します。 端的に言うと、コピ

【一覧】シンプルに稼働するコピートレードツールを作る。

MT4以外のソフトを使わずに、DLLも使わずに、同一コンピュータ上で高

自動売買プログラム他 無料プレゼント 2019年2月

口座開設プレゼント企画 下記のリンクより口座開設していただいた方にお

MT4/MT5対応のFX/仮想通貨 業者 一覧

MT4とEAが利用可能な業者一覧 .brokers{

→もっと見る

PAGE TOP ↑