相場のデータを取得する時の動作について(MQL4)

 
iMA()など相場のデータを取得するライブラリを使った場合には、実際にはその先でどのような処理が行われているのでしょうか?(計算方法とかではなく、どのような手順でデータを取得しているのか?)

①iMA()など時々刻々とデータが変わるものは、実際にプログラムが動いているPCからどこかにデータの問い合わせに行っていると思われる。(そのPC上にはデータはないのでネット越しにどこかのサーバーなどにアクセスしていると思われる)
②しかし、iMA()の1回の動作時間を計測してみると数十ナノ秒程度である(ネット越しにデータを取得しているとした場合には短すぎる)
③また、iMA()の動作を多数回繰り返した場合、動作させているPCのCPUには負荷がかかるが、ネット通信には負荷はかかっていない(タスクマネージャによる)

知りたい事
②③の結果からネット越しにどこかのサーバーにアクセスしているとは考えにくい。
ただ、PC上にはデータはないはず。どこからデータを取得しているのか?
なぜ、このような質問をしているかというと、不適切なプログラム(iMA()を大量に繰り返すとか)を作成してしまって、実際に動作させた場合にどこか(ネットのトラフィックや接続先サーバー)に迷惑をかけてしまうのか、それとも、単に自分のPCの負荷が増えるだけなのかが知りたいためです。
 
takotako:
iMA()など相場のデータを取得するライブラリを使った場合には、実際にはその先でどのような処理が行われているのでしょうか?(計算方法とかではなく、どのような手順でデータを取得しているのか?)

①iMA()など時々刻々とデータが変わるものは、実際にプログラムが動いているPCからどこかにデータの問い合わせに行っていると思われる。(そのPC上にはデータはないのでネット越しにどこかのサーバーなどにアクセスしていると思われる)
②しかし、iMA()の1回の動作時間を計測してみると数十ナノ秒程度である(ネット越しにデータを取得しているとした場合には短すぎる)
③また、iMA()の動作を多数回繰り返した場合、動作させているPCのCPUには負荷がかかるが、ネット通信には負荷はかかっていない(タスクマネージャによる)

知りたい事
②③の結果からネット越しにどこかのサーバーにアクセスしているとは考えにくい。
ただ、PC上にはデータはないはず。どこからデータを取得しているのか?
なぜ、このような質問をしているかというと、不適切なプログラム(iMA()を大量に繰り返すとか)を作成してしまって、実際に動作させた場合にどこか(ネットのトラフィックや接続先サーバー)に迷惑をかけてしまうのか、それとも、単に自分のPCの負荷が増えるだけなのかが知りたいためです。

>PC上にはデータはないはず

ターミナルのメニュー:ファイル>データフォルダを開く

「history」フォルダ内にレートデータはあるようです


以下のドキュメントが疑問解決になるかもしれません。


■MQL5 リファレンス>時系列と指標へのアクセス>データアクセスの整理 

https://www.mql5.com/ja/docs/series/timeseries_access


※MT5と書いてありますが、基本思想はMT4でも同じと思います


ではでは

MQL5のドキュメンテーション: 時系列と指標へのアクセス / データアクセスの整理
MQL5のドキュメンテーション: 時系列と指標へのアクセス / データアクセスの整理
  • www.mql5.com
データアクセスの整理 - 時系列と指標へのアクセス - MQL5 リファレンス - MetaTrader 5 のためのアルゴリズムの/自動化されたトレーディング言語のリファレンス