*

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

「アービトラージあるからいいじゃん」ってずっと思ってたのですが、(今でも思ってる)スキャルピングに関する問い合わせが止まらないので、一応作り方を解説します。(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に公開されるので、問い合わせ等はメールでお願いします。

関連記事

ローカルPCから取引所にアクセスして、仮想通貨APIの安定性と速度を上げる

これまで開発したビットコインの自動売買では、  ローカルPC -> PHPサーバー -> 取引所サ

記事を読む

【ZAIF】Bid=買い、Ask=売り!?

タイトルは間違っていません。 以前WEBAPIの記事で「ZAIFの取引メソッドのAskとBid

記事を読む

POLONIEXのAPIでビットコインのヒストリデータを取得

国内の取引所でもAPIを発行している取引所はいくつかありますが、 ビットコインのヒストリーデータを

記事を読む

独自のビットコイン決済システムを作って手数料を0%にするやり方

オンラインショッピングなんかをやっているとビットコインで決済できた方が便利なことがあります。 pa

記事を読む

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

Zaifのログインも基本的には一般的なログインと同じです。 ただし、IPアドレスか何か不明です

記事を読む

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

    "FX"の自動売買システムに興味がある方はinfo@aiforex.infoにご連絡ください。
    担当の方が対応します

    トレード成績はこのブログに掲載しています。


    株、仮想通貨、それ以外の私に対するご連絡は
    infoあっとfxantenna.com
    まで

ビットコイン自動売買システムの作り方 一覧

今ならAPIの仕様の改良により、 CoinCheck、ZAIF、bi

ライトコインLTCのアービトラージ取引結果 binance vs poloniex

今回はライトコインのアービトラージ結果です。 最初はレート差1USD

仮想通貨アービトラージに取引所間の送金は必ずしも必要ではない

ここまで話を進めてきていまさら~な感じもするのですが、そもそものところ

BCH(ビットコインキャッシュ)のアービトラージの取引結果(Binance vs Poloniex)

今回はビットコインキャッシュのアービトラージの取引結果です。

ETH(イーサリアム)のアービトラージの取引結果(Binance vs Poloniex)

前回まででアルトコインのアービトラージの作り方や背景について説明しまし

→もっと見る

PAGE TOP ↑