記事"ウェブからの債券利回りデータのスクレイピング"についてのディスカッション

 

新しい記事 ウェブからの債券利回りデータのスクレイピング はパブリッシュされました:

EAのパフォーマンスを向上させるために、金利データの収集を自動化します。

自動売買は、未来の価格行動を予測するために、過去の価格行動を使用するテクニカルインジケータにほぼ依存してます。 しかし、相場を動かしうるファンダメンタルズを無視するトレーダーは、ファンダメンタルズデータを利用するトレーダーに対して不利です。 自動的に収集されたファンダメンタルズデータに基づくインジケータは、EAのパフォーマンスを向上させることができます。 為替レートに最も影響を与えるファンダメンタルズデータは、金利です。 中央銀行の金利は変動しませんが、米国などの国債利回りは変動します。 10年国債は、世界の債券相場のすべての時間枠で変動します。 利回りは、未来の中央銀行の金利がどこに向かうのか、相場が持つ期待値感を反映します。 債券利回りは、多くの場合、金利と為替レートの主要なインジケータです。 外国為替相場では、通貨ペアに適用されるメトリックは、様々な時間枠で、金利差、特にデルタ、または金利差の変化です。 図1は、金利差の動きを基準点で表し、正の方向に、同じ方向のEUR/USD通貨ペアの動きを示すインジケータです。 この記事では、債券利回りデータを Web から収集し、金利差とデルタのデータ表現から派生させる方法について説明します。


金利差算出インジケータ

図1. 時間ごとの EUR/USD チャートの金利差分インジケータ。

作者: Steven Brown

 

script05を添付すると、このようになります。

チャートにもインジケータにも何も表示されません。

何が足りないのでしょうか?


2019.04.14 17:11:18.623 Scripts script bonds (EURUSD,Daily) loaded successfully

2019.04.14 17:11:18.984 Scripts script bonds (EURUSD,Daily)削除しました



 
jimjack:

script05を添付するとこうなる。

チャートにもインジケータにも何も表示されません。

何が足りないのでしょうか?


2019.04.14 17:11:18.623 Scripts script bonds (EURUSD,Daily) loaded successfully

2019.04.14 17:11:18.984 Scripts script bonds (EURUSD,Daily) 削除しました。



ScraperBot06.mq4はMT5で問題なく動作し、ScraperBot05.mq5と同じことを行います。違いは、ScraperBot05がWebRequest()を使用している のに対し、ScraperBot06はWinINet.dllの関数を使用しており、WebRequest()よりも信頼性が高いようです。WebRequest()を使ったScraperBot05.mq5が動作するかどうか、問題を調べてみます。

編集:ScraperBot05.mqlや他のスクリプトのWebRequest()の呼び出しは、 ウェブリクエストで指定されたサーバーが メタトレーダーのオプションで許可されている場合にのみ動作 します。 これは記事で説明されています。

 
このメッセージに添付されている ScraperBot06.mq5 は ScraperBot05.mq5 と同じですが、WebRequest() の代わりに WinINet.dll の関数を使用しています。ScraperBot06.mq5をアップロードしたのは、ScraperBot05.mq5のWebRequest()がエラーコード-1を返すようになり、その後GetLastError()がコード4014を返すようになったからです、

err_function_not_allowed

4014

関数の呼び出しが許可されていません

メタトレーダー5は、私が記事を投稿した2018年10月以降、WebRequest()の実装が変更された可能性がありますが、WebRequest()のドキュメントは変更されていません。

編集:メタトレーダーのオプションで Webサーバー「https://api.wsj.net」へのリクエストを許可したところ、私のパソコンでは問題が解決しました。どうやらメタトレーダーのアップデートでパーミッションが削除されたようです

ファイル:
 
Steven Brown:
このメッセージに添付されている ScraperBot06.mq5 は ScraperBot05.mq5 と同じですが、WebRequest() の代わりに WinINet.dll の関数を使用しています。ScraperBot06.mq5をアップロードしたのは、ScraperBot05.mq5のWebRequest()がエラーコード-1を返すようになり、その後GetLastError()がコード4014を返すようになったからです、

err_function_not_allowed

4014

関数の呼び出しが許可されていません

メタトレーダー5は、私が記事を投稿した2018年10月以降、WebRequest()の実装が変更された可能性がありますが、WebRequest()のドキュメントは変更されていません。




ご回答ありがとうございます。

コンパイルし直したところ、"型変換によりデータが失われる可能性があります "という警告が表示されました。

DLLは許可されています。

microsoftや.netなどの他のパッケージが必要なのでしょうか?


ありがとうございます。



 
重要ScraperBot04.mq5 と ScraperBot05.mq5 の WebRequest() の呼び出しは、ウェブリクエストで 指定されたサーバーがメタトレーダーのオプションで許可されている場合のみ動作します。ウェブサーバーを有効にするには、[ToolsOptions] をクリックし、表示されたダイアログボックスで、[Expert Advisors] タブをクリックします。Allow web request for listed URL "にチェックを入れ、"Add new URL "をクリックし、ウェブサーバーのベースURLを入力する。ScraperBot05の場合、そのURLは"https://api.wsj.net " である これを行わないと、WebRequest() の呼び出しは失敗し、エラーコード -1 と 4014 が報告されます。ウェブ・サーバーを特別に許可するこの必要性については、記事中の "ScraperBot04" という見出しで触れています。私は、"WebRequestを動作させるためには、サーバーのベースURL(この場合は'https://api.wsj.net')が、MetaTraderプラットフォームの "ToolsOptionsExpert Advisors "の下にある許可されたサーバーのリストに含まれている必要がある "と書いた。

私はメタトレーダー5でウェブサーバー"https://api.wsj.net " を許可していたが、メタトレーダー5の新バージョンへのアップデートでリストから削除された。これはMetaquotesによって修正されるべきバグのようです。一度許可されたウェブサーバーは、アップデート後も許可され続けるはずです。
 
jimjack:




お返事ありがとうございます。

コンパイルし直したところ、"型変換によりデータが失われる可能性がある "という警告が表示されました。

dllは許可されています。

マイクロソフトや.netなどの他のパッケージが必要なのでしょうか?


ありがとうございます。



データの損失に関するコンパイラの警告は、double型の代わりにfloat型を使用した結果なので無視できます。このアプリケーションではdouble型の精度は必要ないので、float型を使うことにしました。警告の後、コンパイルはエラーゼロで成功した。私の返信に添付したスクリプト、ScraperBot06.mq5をダウンロードしてコンパイルし、試してみましたか?これはWebRequest()の代わりにWinINet.dllを使用しています。ScraperBot05でWebRequest()の呼び出しが失敗する件ですが、メタトレーダーのオプションでウェブサーバーを有効にしていますか?以前の投稿、"IMPORTANT!" で始まる投稿をご覧ください。オプションでウェブサーバーが特別に許可されていない限り、WebRequest()は失敗すると記事に書きました。
 

うーん、

メタトレーダーを再インストールしてみると、最初からurlが許可されている。

 
とても興味深い記事をありがとう!このシステムを実際の取引で使用した結果を報告してください。
 
とても興味深い記事をありがとう!このシステムを実際の取引で使用した結果を報告してください。
 
真に収益性の高い自動売買システムを構築する真の方法。