予想&速報」から指標データを取得するために、HTMLファイルに隠されているJSONデータについて解説しました。Scriptを使ってJSON形式のデータを取得する方法を解説していきます。MetaTraderへ渡すデータ形式は?「みんかぶFX」のWebサイトからJSON形式のデータを読み取るのですが、MetaTraderへ渡すデータの形式、つまりMQLで読み取るためのデータ形式はどのようなものがよいでしょうか?MQLはチャート操作やFXトレードに関しては、とても便利な関数やライブラリがそろっているのですが、それ以外のことはあまり得意ではありません。C#やJavascriptのような汎用プログラミング言語ではないので仕方ないのですが、調べてみるとMQLでJSONを比較的簡単に操作できるライブラリがあることがわかりましたので、今後のことも考えてJSONのまま取得する方法を考えてみます。予想&速報」のHTMLに隠されているJSONを改めてみてみます。"ドイツ連邦銀行が発表。個人消費を見る上で基本的な指標。"ドイツ連邦銀行が発表。個人消費を見る上で基本的な指標。含まれていないという問題に加えて、日付データなどはMQLでは、若干扱いにくい形式です。“2017-11-27T17:30:00′′を2017、11、27、17、30、00に分解する必要があります。いったものは、Javascriptで分解するほうが楽なハズなので、サーバー側で分解しておくことにします。”@context”や”@type”は不要なので、必要のない要素もカットしてMetaTraderには返すことにします。Scriptをつかって「みんかぶFX」からJSONデータを取得して、あらたなJSONデータに再成形して出力するスクリプトを記述していきます。今回取得するJSONデータは、HTMLの中に埋め込まれている(隠されている?)ので、まずはHTMLをパースして該当箇所の要素を取得する必要があります。Scriptには、標準でHTMLをパースするライブラリが無いのでライブラリを追加します。Scriptを新規作成した後、メニューから「リソース」ー「ライブラリ」を選択します。「Parser」というHTMLをパースするライブラリを追加します。入力して選択を押してください。「Parser」が追加されると以下のような画面になります。バージョンは7にしてください。これで追加は完了です。JSONをパース元のJSONから必要な要素だけ抜き取って、シンプルな構造のJSONとして再形成して出力します。以下のような、シンプルな形のJSONにしてみます。"ドイツ連邦銀行が発表。個人消費を見る上で基本的な指標。"ドイツ連邦銀行が発表。個人消費を見る上で基本的な指標。-4}]先にも述べたように”Date”を扱いやすいように、”Year”,”Month”,”Day”,”Hour”,”Min”に分解します。重要度は”Star”、前回変動幅は”Pips”という値で格納します(スクレイピングで取得するので、次回解説します)。ライブラリから追加した「Parser」でHTMLのJSON部分を読み込み、元のJSONのパラメータを取得して、新たなJSONとして文字列に出力します。);}9〜11行目:HTML取得みんかぶFXからHTMLをテキストで取得します。Scriptには、URLを指定するとHTTP(S)のリクエストを取得できるURLFetchAppクラスが提供されていますので、それを利用しています。取得したHTMLから、JSON部分を抜き出します。追加したライブラリParseを使います。fromで指定した文字列から、toで指定した文字列を取得します。18〜20行目:DOM取得した文字列はJSON形式のデータなので、JSONクラスに渡してパースします。JSONクラスでパースした結果は、発表予定の指標の個数分配列で返却されますので、個数分の内容を解析していきます。22〜35行目:DOMで要素を抽出js.startDateのようにDOMの要素から値を取得し、新たにJSON形式でテキスト出力します。整数値として分解しておきます(27〜31行目)。JavaScriptでJSON形式を生成するのは、本当に簡単ですね。JSON.stringify()で、JSONの出力イメージ通りにコーディングすれば勝手にテキスト化されています。笑)まとめ今回は、「みんかぶFX」のHTMLからJSON形式でデータ抽出して、あらたなJSON形式のデータとして出力する部分を解説しました。スクレイピングする部分を解説します。経済指標YOU夫婦で日々FXトレード。MetaTraderで使えるEAやインジケーターを試行錯誤で開発中。*メールアドレス(公開はされません。2018-10-24LINEおくるクンのソースが全部消えました。