*

仮想通貨取引所のアクセス拒否との死闘と解決策

これまで取引所とさまざまな悪戦苦闘を繰り広げてきましたが、
良いアイディアが思いついたので、一回まとめたいと思います。

【これまでの経緯】
取引所にAPIのアクセス拒否される

プロキシを経由してIPアドレスを分散

一つのプロキシだと止まってしまうことがあるので複数のプロキシを使う

プロキシサーバーで停止するとレスポンス待ちになって自サーバーのCPUがパンクして止まる

プロキシ接続にタイムアウトを設定し、プロキシサーバーが止まった場合は次の別のプロキシを使う

取引所でオーダーが通ってレスポンスが返ってくる途中でプロキシサーバーが止まった場合、
オーダーが2重3重で発注される

とここまで来たのですが、
実にシンプルな解決策を思いつきました。

APIにPrivateアクセスする場合、
どの取引所でも「アクセスごとに増加しなければならない数字」(通常はUNIXタイムスタンプ)を
ハッシュに含めます。

これが増加していない場合はエラーになるので、それを逆に利用します。

つまり、今までは
プロキシを繰り返し送信するfor文の中で都度タイムスタンプを発行していたのですが、
それをfor文の前に変数に入れることによって、
2重3重にオーダーが通りそうな場合はエラーを発生させることで約定を防ぐことができます。

つまり、

これを

こうすればよかっただけです。(コードについては前の投稿を見てください。)

こんな簡単なことに気付かなかったなんて、頭がいい人に見られたらバカにされても文句は言えないですね。

ちなみに今のPHPではマルチタスクもできるので、
オーダーの部分だけマルチタスクにしても良いかもしれません。

しかし、そんなモチベーションはないので、
極めたい人は試してみてください。

ちなみに、アクセス拒否は取引所側の手違いということで、
現在はプロキシを通さずに生IPでやれています。

今回のプロキシ云々が影響するのは、よっぽど大量アクセスをしている人に限られるでしょう。

Message

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

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

関連記事

ビットコインの業者間アービトラージでわかったこと

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

記事を読む

ビットコインでアービトラージ 現物/信用どっちがいいか

一口にアービトラージといっても取引の方法には2通りあります。 1回(交換)の取引で終了する現物

記事を読む

How to create BTC trading systems with bitFlyer’s API(get rate, account info and trade)

As you may know, bitFlyer is one of the most popul

記事を読む

APIでCoinCheckのアカウント情報を取得する 仮想通貨の自動売買開発③

前回はPUBLIC APIでしたが、今回はPrivateAPIを触ります。 まず、コインチェッ

記事を読む

BinanceとPoloniexの自動アービトラージシステムを作る2

BinanceのプライベートAPIにちょっと他の取引所とは違うクセがあったので、今回はそれを紹介しま

記事を読む

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

    "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 ↑