Average関数とAverageFC関数の処理速度を比較してみた

EasyLanguageで移動平均線の値を計算する時などに利用するAverage関数ですが、

・通常版のAverage関数
・高速版のAverageFC関数

という2種類が存在します。

「FC系の方がメモリは多少食うが処理速度が早い」とマニュアルに記載されていたので、普段はAverageFC関数を使うようにしているのですが、実際どのくらい計算速度に差が出るのかな?とふと気になったので検証してみました。

以下のようテストコードでストラテジーを作成。

using elsystem;

Vars:
	StopWatch varSw(NULL),
	varAvg(0);
	
Once Begin
	ClearPrintLog;
	
	varSw = StopWatch.Create();
	varSw.Start();
End;

Once ( LastBarOnChartEx ) Begin
	For Value0 = 0 To 999999 Begin
		varAvg = Average( Close, 100 );
		//varAvg = AverageFC( Close, 100 );
	End;
	
	varSw.Stop();
	print( (varSw.ElapsedMilliseconds/1000).ToString(), " 秒" );
End;

適用したチャートの最終足で、Average関数もしくはAverageFC関数を100万回計算して、掛かった時間を算出するコードです。

これを適当なチャートに適用して結果を測定。毎回測定値は微妙に変わりますが、だいたい結果は以下になりました。

Average関数 4.289秒
AverageFC関数 0.029秒

かなり結果に差が出ましたね。

TradeStation付属マニュアルを見ると、AverageFC関数の方がAverage関数に比べてわずかにメモリーを使用するとの事ですが、特に気にするレベルの話でもなさそうなので今後もFC付き関数の方を使っていきたいと思います。

「株式投資 x IT」の
オンラインコミュニティに参加しませんか?

2019年5月頃から、トレステやEasyLanguageを中心とした株式投資に役立つ最新ツールやITスキルに関する情報が手に入るオンラインコミュニティを運営しています。

トレステやEasyLanguageの豊富な小ネタやサンプルコードが手に入り
チャットツール(Slack)でいつでもトレステやEasyLanguageの質問ができ
毎月開催している勉強会の収録動画がすべて視聴できて
トレステ以外にも株式投資に役立つ最新のツールやITスキルを学べる

オンライン動画講座
時系列分析用サンプルプログラム
OOELサンプルプログラム
Slackでいつでも質問可能

このように、「コンテンツ見放題」「チャット交流」という構成で、僕がが運営しているコミュニティになります。

最近トレステやEasyLanguageを始めたという方から、経験豊富な投資家・プログラマーの方まで、様々な人が集う場となっております。興味のある方はぜひ、ご参加ください。

トレードテック・オンラインの詳細を見る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です