スポンサーサイト

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

バックテストのビジュアルモードでトレードの練習ができるツール

少し手が空いたのでタイトルのようなツールを作ってみた。

ビジュアルモードの再生中に「Buy」ボタンを押すと、その場で規定ロットにて成行買注文を行う。

また、「Close」ボタンを押すと、その場で決済を行う。

VisualModeTradeEA

VisualModeTradeEA2

もちろん、任意のインジゲータを表示させることも可能。

ちょっとしたトレード練習にはいいかもしれない。


スポンサーサイト

バックテストにHyper-Threadingは有効か?

管理人の開発環境では、CPUに「Intel Core-i7 2600k」を使用しています。このCPUはコアを4つ搭載しています。また、「Hyper-Threading」を有効にすると最大8つのスレッドを同時に実行出来ます。

そこで疑問に思ったのですが、この「Hyper-Threading」を有効にした場合と無効にした場合では、バックテストの処理時間に差が生じるのか?

色々な所でCPUのベンチマークテストの結果を掲載しているのを見るのですが、バックテストに関しては検証記事が見当たらなかったので、実際に検証してみました。

○検証環境
CPU   : Intel Core-i7 2600k
Memory : 4GB * 4
OS    : Windows 7 Ultimate

EA        : Moving Average
通貨ペア    : USDJPY
時間足     : M5
期間       : 2012/01/01 - 2012/03/30
データ精度   : 全ティック
オプティマイズ : 完全アルゴリズム Balance max
ステップ数   : 1000

○結果
Hyper-Threading 有効 : 18m00s
Hyper-Threading 無効 : 18m23s

「Hyper-Threading」を無効にしたほうが、2%程遅い結果となりました。ですが、これは実行環境による誤差の範囲内のような気がします。

「Hyper-Threading」を無効にした場合、実行されるスレッド数は4つになるので、バックテストで使用されるリソース(RAMDISKの容量)が「Hyper-Threading」を有効にした場合よりも半分で済みます。

なので、「Hyper-Threading」は無効にしたほうがメリットが大きいと思いました。


テーマ : MT4自動売買
ジャンル : 株式・投資・マネー

MT5のバックテストを高速化する方法②

前回の記事では、RAMDISKを利用したバックテストの高速化方法を紹介しました。

今回は、ちょっとしたおまけ記事です。

前回の記事の方法でバックテストをしていると、RAMDISKの容量が足りなくなる事があります。特に複数のスレッド処理が可能な最新CPUでは、各スレッド毎に作業領域が必要になるため、すぐに足りなくなってしまいます。

RAMDISKの容量が足りない状態のままでバックテストを行った場合、正しい結果が表示されません。しかも、ログにはエラーらしき内容も表示されません。

そこで、RAMDISKの容量を節約する小技です。といっても単純なのですが、フォルダの圧縮機能を利用します。

RAMDISKに作成されている[tester]フォルダのプロパティを開いて、[全般]タブの[詳細設定]をクリックします。

tester1.jpg

[内容を圧縮してディスク領域を節約する]にチェックを入れます。

tester2.jpg

[OK]をクリックして、プロパティウィンドウを閉じます。

[tester]フォルダの文字の色が青色になっていれば、OKです。

ちなみに、この方法は、RAMDISKがNTFSでフォーマットされていないと出来ないので注意です。

※ 上記の内容による損害等については一切責任を負いませんので、自己責任でお願いします。

テーマ : システムトレード
ジャンル : 株式・投資・マネー

MT5のバックテストを高速化する方法

①CPUを交換する

MetaTrader5(MT5)でバックテストを行う場合、使用するPCのスレッド数が多ければ多い程、テストに費やす時間が短縮されます。これは、同時に行うテストパターン数=PCのスレッド数だからです。

というわけで、手っ取り早いのは、バックテストで使用するPCのCPUを新しいものに交換する事です。



②RAMDISKを導入する

バックテストを実行する時にボトルネックになっているのが、HDDのアクセスです。これは、特に全ティックでバックテストを行う場合に顕著になります。
そこで、アクセス速度が速いRAMDISKを導入することでHDDのアクセスを最小限に減らします。



RAMDISKにはいくつかの種類があります。有名なのは、GavotteRamdiskでしょう。無料ですが、導入に少し手間がかかるので、ここでは割愛します。

RAMDISKを導入したら、MT5の設定をします。MT5のフォルダを丸ごとRAMDISKにコピーしてしまっても構わないのですが、もっと効率的な方法を紹介します。

それは、シンボリック・リンクという機能を使います。具体的には、バックテストで使用するフォルダのみをRAMDISKに割り当ててしまおうというワケです。

MT5がインストールされているフォルダ内に、[tester]というフォルダがあります。このフォルダをRAMDISKに割り当てます。

最初に、RAMDISK内に[tester]フォルダを丸ごとコピーします。

MT5がインストールされているフォルダ内の[tester]フォルダを適当な名前にリネームします。

コマンドプロンプトで、以下のコマンドを実行します。(Windows 7の場合)

mklink "C:\Program Files\MetaTrader 5\tester" "R:\tester"

※ MT5が[C:\Program Files\MetaTrader 5]以外にインストールされている場合は、適宜変更して下さい。
※ RAMDISKのドライブレターが[R:]以外の場合は、適宜変更して下さい。

これで、MT5がインストールされているフォルダ配下に[tester]のショートカットのようなものが作成されていればOKです。

mklink.jpg

実際にバックテストを実行し、RAMDISKにアクセスされているかを確認してみて下さい。

※ 上記の内容による損害等については一切責任を負いませんので、自己責任でお願いします。

テーマ : MT4自動売買
ジャンル : 株式・投資・マネー

MQL5 cloud networkで稼げるのか?

前回は、MQL5クラウドネットワークに登録してみました。

このクラウドネットワークでは、自分のPCリソースを他の人に貸し出すことが出来ます。

借りる人は、利用した時間分のクレジットを支払います。そのクレジットが、貸した人のアカウントに振り込まれる仕組みです。

ここで気になるのが、どのくらいのクレジットが貰えるのか?

ここの書き込みを見た限りでは、

AgentPRが100の時、1時間貸し出すと$0.01が貰える。

と書いてあります。ちなみにAgentPRというのは、貸し出すPCの性能と考えていいと思います。数値が大きい程、処理能力が高くなります。

ちなみに、管理人のPCを24時間貸し出したらどのくらい稼げるのか計算してみました。

AgentPR = 150(Core i7-2600k)とすると、

150(AgentPR) ÷ 100(AgentPR) × 8(スレッド数) × 24(時間) × 0.01($) = $2.88

1日貸し出しても$2.88しか稼げない...orz

しかもこの計算式では、常に全てのコアが最大の処理を行った場合の結果だそうで、実際のコアの稼動率はもっと低いはずです。

そうなると、電気代さえも稼げないような...。


テーマ : システムトレード
ジャンル : 株式・投資・マネー

アクセスカウンター
プロフィール

大和

Author:大和
フリーランスのプログラマーです。

EA作成代行承ります
最新記事
カテゴリ
広告
最新コメント
最新トラックバック
月別アーカイブ
リンク
メールフォーム

名前:
メール:
件名:
本文:

ランキング参加中
応援よろしくお願いします。
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

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