--.

スポンサーサイト  

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

↓↓ 新サイトはこちらです ↓↓
グリッドトレード.com
グリッドトレードシステムズ

←注目記事は左のメニューに移しました。良ければあわせてどうぞ。


↓↓ 気が向いたらポチっとお願いします ↓↓
にほんブログ村 為替ブログへ

--/--/-- --:-- [edit]

category: スポンサー広告

tb: --   cm: --
以前にEAやインディケータの処理時間低減ということで記載しました。
今回は少し視点を変えます。

「iCustom関数は遅い」は本当か?

開発者なら一度は遅いと聞いたことがあるかもしれません。
私は最近iCustom関数自体を初めて使ってみたので
ついでに調査してみました。
予め断っておきます。調査方法はかなり雑です。

調査のために作成したサンプルは以下の通り。

double upper_price;
int i;
int starttime,endtime;
int try = 1000000;

// Case1
starttime = GetTickCount();
//ボリンジャーバンド関数 100万回実行
for(i = 0;i < try ; i++){upper_price = iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);}
endtime = GetTickCount();
Print("[Case1]ExecTime:" + (endtime - starttime));

// Case2
starttime = GetTickCount();
//カスタムインディケータ1回実行 iCusotm内ボジンジャーバンド関数100万回実行
upper_price = iCustom(NULL,0,"test_indicators2",0,0);
endtime = GetTickCount();
Print("[Case2]ExecTime:" + (endtime - starttime));

// Case3
starttime = GetTickCount();
//カスタムインディケータ100万回実行 iCustom内ボジンジャーバンド1回実行
for(i = 0; i < try ; i++){upper_price = iCustom(NULL,0,"test_indicators1",0,0);}
endtime = GetTickCount();
Print("[Case3]ExecTime:" + (endtime - starttime));



簡単に説明すると
(1) EAの中でボリンジャーバンドを100万回実行する
(2) EAの中でiCustomを1回実行し、iCusomの中でボリンジャーバンドを100万回実行する
(3) EAの中でiCusotmを100万回実行し、iCustomの中でボリンジャーバンドを1回実行する
というものです。

もしiCustomを呼び出す事が本当に遅いのであれば
(1)と(2)はほとんど差が出ず、(3)だけ遅い
ということになります。

実験結果です。
iCusotm処理時間

予想通りの結果が出ました。
(1)と(2)の処理時間は94ミリ秒に対し
(3)は452ミリ秒 と約5倍近くです。

だいぶ稚拙な調査ですが
iCustomが遅い噂はどうやら本当のようです。



↓↓ 新サイトはこちらです ↓↓
グリッドトレード.com
グリッドトレードシステムズ

←注目記事は左のメニューに移しました。良ければあわせてどうぞ。


↓↓ 気が向いたらポチっとお願いします ↓↓
にほんブログ村 為替ブログへ

2015/07/07 00:55 [edit]

category: 未分類

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://multipleincome.blog.fc2.com/tb.php/160-f9a052a8
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

アクセスカウンタ

自作EA&ツール

注目記事

カテゴリ

FX口座残高推移

最新記事

最新コメント

カレンダー

RSSリンクの表示

リンク

ブロとも申請フォーム

QRコード

▲Page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。