お金にまつわる日常のブログ

妻と息子を持つ40代後半の一般的なサラリーマンのお金にまつわる日常の記録です。
日々の家計管理から、不動産や株式・FXなどの投資について綴っていきます。

gnuplotを使った損益グラフ

gnuplotを使った損益グラフの作り方を紹介します。gnuplotはオープンソースのグラフ描画ソフトです。Windows版は以下のURLから、gp505-win32-mingw.exeというファイルをダウンロードしてください。
http://sourceforge.net/project/showfiles.php?group_id=2055


まずEAから以下のように取引日時や損益などをファイル(Plot.dat)に書き出します。


1 2016.10.24 01:27:23 -194.33 -194.33
2 2016.10.24 09:32:13 -388.92 -194.59
3 2016.10.24 10:58:08 -583.28 -194.36
4 2016.10.24 13:13:10 -575.58 7.7
5 2016.10.25 18:21:26 467.85 1043.43


それを以下のようなスクリプト(Plot_by_date.plt)を呼び出してグラフを描画します。


set title "Profit graph by date(Tester)"
set xlabel "Date"
set timefmt "%Y.%m.%d %H:%M:%S"
set xdata time
set grid
set yrange [*<0:]
plot "Plot.dat" using 2:4 t 'Profit' w l


描画結果は以下のようになります。"set xdata time"と指定しているので、横軸(x軸)は時間軸になっています。



このグラフはトレンドを狙う自作EAのバックテスト結果ですが、10,000USDの投資金から3カ月で14,000USDの利益を獲得しています。

もちろん以下のように横軸(x軸)を取引数にすることもできます。



私はEAの終了(deinit)時にこの処理を入れており、バックテストが終わるとグラフが表示されるようにしています。StrategyTesterで最適化するときはMT4上には損益グラフが出ないので、gnuplotのグラフが重宝します。またバックテストだけでなく、実際の取引の損益グラフを表示するスクリプトも用意しています。こちらは期間を今月・今年・全期間のように指定することができます。


EAからgnuplotの呼び出し方法については、以下の関連記事を参考にしてください。


(関連記事)
MT4のShellExecuteW()エラー - お金にまつわる日常のブログ


×

非ログインユーザーとして返信する

あと 2000文字

※は必須項目です。