*

サーバー系言語(PHP)で仮想通貨APIを処理するメリット,デメリット

Originally posted 2017-07-22 18:42:38.

Web APIは基本的にJavascriptで処理させることを想定していますが、これまでのようにPHPで処理することもできます。

一般的なツイッターAPIやGoogleAPIの場合、サーバー上で処理ができるPHPの方が有利そうですが、仮想通貨のトレード系APIの場合、ちょっとした問題が発生します。

 

PHPで書くことのデメリット

サーバーが連続アクセスに対して拒絶反応をする

一般的なサーバーはDos対策がされているので、同一IPからのアクセスは一定時間の間に上限があります。それ以上アクセスしようとすると503エラーかアクセス拒否になります。

自動売買の場合、しょっちゅう計算フラグを立てる必要があるため、ここら辺がネックになります。

MT4のティックのように更新しようとするとここらへんで引っかかります。

MT4からDosした場合、セッション、クッキーの挙動がおかしくなる

MT4から自サーバーにウェブリクエスト -> 自サーバーから取引所に送信

という方法を試しにとったのですが、この方法をとるとPHPのスーパーグローバル変数の挙動がおかしくなることがあることがわかりました。

今までMT4とセッション処理を組み合わせたことがなかったので気づきませんでしたが、MT4からウェブリクエストするとサーバー側はブラウザではないと認識して(当たり前ですが)セッションの挙動がおかしくなるようです。

セッションは別として、クッキーはブラウザに保存されるので、
当たり前と言えば当たり前ですよね。

これが何が問題なのかというと、セッション、クッキーが使えないことによって
「前にトレードした時間から何秒以内はトレードしない」
という条件文が使えなくなります。

サーバー側に値を保存したまま、ページを更新するには、セッションかクッキーかデータベースが必要です。

しかし、たったこれだけのためにデータベースを使うというのも汎用性が失われるだけだと思います。

解決策

せっかくここまで作ったので、メール送信が簡単にできるPHPを捨てるというのは比較的もったいないと感じたりします。(配布するときにはやっぱりJavascriptの方が楽なんですけどね)

そこでDosのようになってしまう解決策をかるーく考察しました。

ローカルPCでPHPを動かす

これで99割解決です。(99割はネタですよ、もちろん)

自ローカルPCでPHPを動かす環境(XAMPPとか)を整えて、そこから直接取引所にアクセスすればいいのです。

長期的な自動売買をする場合はVPS上にPHP動作環境を入れるという、ホスティング会社に誤解されかねないような
方法もありだと思います。(最近はVPSでWEBサーバーとかもあるからね、多少はね。)

まぁ、しかし、開発者=利用者のときは良いですが、ソフトを配布する際にはハードルが高くなりそうですね。

MT4によるフラグをやめてブラウザでF5を自動化する

MT4によるアクセスでPHPを連続稼働させるというのが、普通じゃないといえば普通じゃないので、
ローカルPCからブラウザ経由で処理します。

これならセッションもクッキーも使えますし、自動化もUWSCを使えばそんなに難しくありません。

欠点は、自動売買している間はそのブラウザが使えなくなるということくらいでしょうか。
(UWSC使いはIEを使うことしか頭にないですが、ChromeやFirefoxの拡張機能にはF5アタックに近いツールがあるので、それを使う方が早いですね。)

Dosツールをお持ちの方はそちらを使ってどうぞ。(なんで持ってるんですかね~)

 

PHPで書くことのメリット

PHPだからメールで取引状況を確認できる!

これ、比較的メリットだと思います。JavascriptやC#でもできないことはないでしょうが、やっぱりサーバーサイド専用の言語であるPHPにはかなわないと思います。

コーディングしているとき、「Javascriptで書いて、HTA化すれば良かったんじゃね?」と頭をよぎりましたが、このメール機能の実装によりPHPの方が良いような気がしてきました。

これで、「取引が発生したらメール送信する」といったことができるので、外出先でも確認できます。

 

コピートレードはサーバー系言語の方が有利

中にはビットコイントレードをコピートレードするシステムを開発するケースもあるかと思います。その場合は、サーバー系プログラミングの方が有利です。

というかそれ以外では開発が困難だと思います。

もちろん、すべての処理をサーバーでする訳ではありませんが、コピーするデータのやり取りはデータベースが必要になるので、その際にPHPなりPerlなりのプログラミングが必要になると思います。

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

Message

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

CAPTCHA


関連記事

BTC,BCH,ETH,LTC現物,信用アービトラージ取引結果まとめ(コインチェック,ザイフ,ビットフライヤー,バイナンス,ポロニエックス)

これまでに開発したAPIによるアービトラージシステムで実際に取引してみた結果です。 現物アービトラ

記事を読む

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

公開:2017/6/21 PHPプログラマと言っても、いろいろな分野の人がいるわけで、WEB系だか

記事を読む

[仮想通貨]現物取引のアービトラージと信用取引のアービトラージは別物

今さら~ な感じもしますが、タイトルの通りです。 仮想通貨からトレードの世界に入ってきた方の中には

記事を読む

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

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

記事を読む

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

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

記事を読む

 
  • fxfx.work

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

     


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

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

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

Translate »
ページトップへ