*

[API]ビットコインスキャルピングの自動売買システムの作り方(Poloniex)

Originally posted 2018-11-28 18:32:14.

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

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

コインチェックのAPIの使い方[PHP] 仮想通貨の自動売買開発

ZAIFのAPIの使い方[PHP] 仮想通貨の自動売買開発

bitFlyerのAPIの使い方[PHP]と注意事項

APIでアービトラージのためのレートの比較&トレード

 

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

仮想通貨ビットコイン取引できるEAもOKな海外FX会社一覧(MT4/MT5)

[MT4]仮想通貨(ビットコイン)のシステムトレード検証

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

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

 

POLONIEXのAPIでビットコインのヒストリデータを取得するやり方

 

POLONIEXのAPIではUNIXタイムスタンプを使う

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

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

 

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

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

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

 

信用取引 x スキャルピング

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

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

エントリー関数

 

決済処理

 

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

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

 

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

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

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

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

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

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

こんな感じです。

建玉情報は

こんな感じで取れば、

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

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

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

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

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

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

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

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

 

ビットコインスキャルピングを自動売買でやってみた感想

FXがまだ下火でブームが訪れる前、急な値動きに対して順張りでスキャルピングすることで10万円を億にできる時代がありました。

今はレート操作や何やかんやあってできないのですが、
ビットコインで同じようなことができないか検証してみました。

ロジックはシンプルで、「x秒前よりもレートがy%動いたら順張りエントリー」という手法です。
もちろんAPIで自動売買です。

正確に記録したわけではないのですが、
「60秒前よりもレートが1%動いたら」の場合、
ほとんどエントリーが発生せず、トレードチャンスがありませんでした。

「600秒前よりもレートが1%動いたら」の場合、
エントリーは一日に数回発生しましたが、あまり利益は取れません。

「600秒前よりもレートが1.5%動いたら」の場合、
エントリーは上記と同じで、利益はトントンといった感じです。

FXだったら数値最適化処理をして、最適な組み合わせをバックテストから導き出すことができるのですが、
ビットコインは実際にやってみて試すしかないので、

正直なところ….

飽きてしまいました。

「今のところはアービトラージで利益が取れるから、スキャルピングまでしなくてもいいんじゃない?」
というのが正直な感想です。

ただし、アービトラージはあまり大きなロットでできないですが、スキャルピングの場合はロットが大きくても論理上耐えそうな気はするので、資金が大きい場合は検証を重ねるのもありなんじゃないかと思います。

日本の取引所の場合は過去レートを引っ張ってこれないので、POLOを使ったのですが、
結果が微妙になったのはそのせいもあるかもしれません。

少し調べてみたところ、国内の取引所でも第三者のサービスを経由することにより
過去レートが取得可能なようです。

それができれば、ビットコインのメタトレーダー的なものを作るのも面白いかもしれませんね。

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

Message

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

CAPTCHA


関連記事

ビットコインの取引所間アービトラージの特徴と性質

ちゃんと約定する FXの場合、業者間アービトラージをやろうとしても、約定拒否だったり、スリップした

記事を読む

POLONIEXのAPIでビットコインのヒストリデータを取得するやり方 仮想通貨の自動売買開発

公開:2017/9/4 国内の取引所でもAPIを発行している取引所はいくつかありますが、 ビット

記事を読む

一回の演算で複数のAPIリクエストを送るやり方 仮想通貨の自動売買開発

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

記事を読む

ビットコインアービトラージシステム※ただ使いたい人用

ここまで業者間アービトラージシステムのプログラミングの考察?をしてきましたが、 中には「中身がどう

記事を読む

[API]アルトコインのアービトラージの作り方[Poloniex Binance]

国内の取引所のAPIではアルトコインのアービトラージができない たまに「アルトコインの自動アービト

記事を読む

 
  • fxfx.work

    (↑広告です。このサイトの管理者の運営ではありません)

     


  • 横瀬兼元(ペンネーム)です。

    プロフィール
    商材を買わせようとする偽者がいるらしいのでご注意ください。
    ツイッター始めました(イマサラー)
    https://twitter.com/FxantennaC
    (埋め込みするとページ表示が極端に遅くなるので、リンクでご容赦を) 4000文字未満のトピックや話題はツイッターで発信しています。
  • fxfx.work

    (↑広告です。このサイトの管理者の運営ではありません)

Translate »
ページトップへ