*

MQLとWEB APIとHashの話~MT4から仮想通貨取引所APIの取引メソッドを~

公開日: : ビットコイン自動売買 , , , ,

ビットコインの自動売買システム構築のトピックに関して、
「・・・hash_hmac(‘sha256’,…)辺りをMQLで何とかすることが出来れば、MT4からAPIで注文もできると思うのですが、可能でしょうか?」
というお便りをいただいたので、今日はそのお話をします。

結論から言うとMQL単体では困難です。

そもそもハッシュとは暗号化の一種で、第三者に見られたくない通信内容を隠すために使われるものです。

純粋な暗号化と違う点は、暗号化であれば鍵を元にしてもとのメッセージを復元できるのに対し、ハッシュの場合は復元することがそもそもできません。

そのため、データを送る側と受け取る側であらかじめ同じハッシュの取り決めを共有し、送受信されたデータが一致することによって認証を行います。

ちなみにこれは余談ですが、一般的な暗号化はRSA暗号という素数同士の掛け算による暗号を使っています。これは極端に大きな数字が素数である可能性が高く、その数字の掛け算の結果から、もとの因数を導き出すことが困難という数学上の性質から来ています。

サーマーウォーズの主人公がやっていたアレです。

それに対してブロックチェーンで使われる暗号化は楕円曲線の対数化の復号の難読性を使っています。簡単に言うと、ある数字aとnを与えられて、aをn乗してkという結果を出すのは簡単だけど、kという数字からnを導き出すのは難しいよ、っていう話を楕円曲線上でやるヤツです。

話を戻すと、
WEB APIのprivateメソッドでは、認証を行うためにハッシュ化が必要になります。PHPではハッシュ化の関数があるので、その関数にメッセージとキーとハッシュ方式を入れれば良いだけですが、MQLにはハッシュ関数がありません。

bandicam 2017-12-14 08-40-21-474

bandicam 2017-12-14 08-41-34-743

そのため、MQLから無理やりハッシュを扱うなら、
I ハッシュ化だけしてくれるサイトに投げる
II ハッシュ化をDLLに投げる
III ハッシュ化する箇所だけ他の言語体にする
しかありません。

I
技術的には超簡単です。ハッシュ化する内容をサイトに投げればいいだけなので… ただ、セキュリティは完全に失われるので、家の鍵をかけていない状態になります。トレードするには危険ですが、残高照会や取引履歴の参照だけができるAPIキーなら良いと思います。

II
bandicam 2017-12-14 08-47-11-867
C++が使えるならDLLにその処理を投げるのもありだと思います。2015年にMQL5でその依頼が$40でやっているので、誰か数学系に強い人に頼んで作ってもらった方が早いですね。

ハッシュ化の際に(うろ覚えですが)16進数表記に変換する必要があるため、それができないMQLではMQL内で独自関数を作るのはかなり長い道のりになると思います。(進数変換の関数から作らないといけない)

III
今はPHPやっている方法ですが、これが一番簡単だと思います。bitFlyer,CoinCheck,ZAIFでハッシュ化方式がSHA512だったりSHA256だったりするので、すでに組み込みの関数がある言語は便利です。

JAVAにもあったような気がします。Javascriptは標準ではなかったかな、確か。
 
 
現時点ではこれまでにやってきた方法が最善手だと思います。PHPがもし苦手であればJAVAでもC++でもその他高級言語でも良いと思いますが、MQL単体ではやっぱり難しいです。

Comment

  1. メロンパン より:

    初歩的な質問ですいません。
    mqlしか扱ったことがない初心者です。

    仮想通貨の様々な通貨の組み合わせで、kuchartを作りたいのですが、そのためには、BTCUSDTとBTC建てのペアの時系列データを常時データベース?に蓄積しなければならないと思います。

    どのような手順と言語と技術が必要になりますでしょうか?

    ご助言お願い申し上げます。

  2. kanrinin より:

    私も何となく仮想通貨の通貨強度のチャートは考えていたところでした。
    過去データを蓄積するところからやると大変なので、ヒストリーデータはPOLONIEXや海外の取引所のAPIを使うのが良いと思います。

    APIの処理は過去レートを取得するだけならMQLだけでも可能です。

    仮想通貨の場合は発行枚数が分かっているので、
    レート変位x発行枚数 = 増減した資金量
    が算出できます。

    あとはそれぞれの暗号通貨の”増減した資金量”を比較すればOKですが、
    そのままチャート上に比較すると単位がおかしくなるので、
    最大値と最小値を元にパーセント表示した方が良いと思います。

    これができれば、資金がどのコインからどのコインに流れたかが分かるので、
    イナゴトレードが捗りますね。

Message

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

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

関連記事

ビットコインアービトラージがなぜ深夜にばかり動くのか

今も細々とビットコインのアービトラージを自動で動かしているのですが、 どうやら深夜帯に動くことが多

記事を読む

BinanceとPoloniexのBTCアービトラージシステム 取引結果

システムはできたので実際に稼働させてみました。 レート差(bid-ask)10USD以上でアービト

記事を読む

APIを使ったアルトコインの自動アービトラージ

国内の取引所ではAPI取引でビットコイン以外をトレードできないため、アルトコインの自動アービトラージ

記事を読む

仮想通貨APIでコピートレード配信システムを作る

仮想通貨、暗号通貨の流行りって基本的にFXと同じ道をたどるので、 今後予想される流行の一つにコピー

記事を読む

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

今回はビットコインキャッシュのアービトラージの取引結果です。 日本時間 bid(売値)

記事を読む

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

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽物がいるらしいので偽物にご注意ください。
no image
【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その⑨

このシリーズは前回の投稿から1年以上あいている訳ですが、結構問い合わせ

no image
【一覧】外部ソフトなしで稼働するコピートレードツールを作る。

【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その1

no image
スマホから稼働中のEAを操作、チェックするアイディア【RDP以外で】

自動売買システムはVPSなどに設置することで24時間稼働させられますが

no image
【初心者向け】VPSでWebサーバー構築 (さくらVPSxUbuntu16.04)

今回はサーバーの構築について扱ってみようと思います。VPSを使った一般

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

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

→もっと見る

PAGE TOP ↑