【Forex Tester】過去検証の自動化
こんにちは。ひろです。
「Forex Tester」のストラテジー機能を使用した過去検証について少し試してみました。
「Forex Tester」はFXシミュレーターとでも言えるような商品で、過去の相場データを使ってリアルタイム取引をしているような感覚を再現してくれます。また、ストラテジーと呼ばれる機能を使えば、過去数年分のトレード結果を自動的に集計させることもできます。これは一定の売買ルールを予め決めておいて、数年分のテストを自動的に実行する機能です。
ストラテジー機能とは
Forex Testerの機能としてストラテジーというものが提供されています。
簡単に表現すると、自動的に売買してくれる機能なのですが、これを使って過去数年分の売買を自動で動かすことができます。
この機能は、前もって注文する時の条件と決済する時の条件を決めておく必要があります。例えば 2010年~2020年についてストラテジーを実行させ、その10年間で獲得したpips値や金額を自動で集計することがでます。この機能を使えば、自分が考えた売買ルールのパフォーマンスがどの程度機能するのか事前に確認することができます。
どうやって使うの?
ストラテジーの使い方を調べたところ、既成のストラテジーの使い方はそこそこ見つかるのですが、自作する方法は数が少なくなかなか見つかりませんでした。
こんな感じで、当初はストラテジーの使用方法が分からず、Forex Testerのフォーラム記事ばかり読み漁っている状況でした。
そこで色々と調べたところ、DLL形式 (Windowsファイル形式のひとつ)でForex Testerに組み込む必要があることが分かりました。また、その機能を使ったサンプルソースが、Forex Testerをインストールしたフォルダーの中に存在することもわかりました。
このDLLファイルに注文する時の条件と、決済する時の条件をプログラムで書いて埋め込む必要があるみたいです。
DLLファイル作成の流れ
DLLファイルの作成にはVisual Studio(無料版)を使用しましたが、特に問題なく使用することができました。ストラテジー開発の流れを簡単に紹介すると、こんな感じです。
このDLLの作成が結構難しく、たとえば裁量で判断しているものをプログラムに落とし込む必要があり、これが思うように動いてくれないんです。
このDLLの問題さえ解決できれば、これで数年分のデータを自動で集計してくれるので検証が楽になると思ってましたが、そう簡単ではありませんでした。
簡単なストラテジーから試してみる
時間トレードはストラテジー機能と相性がいいので、まずは1日分の簡単なルールをストラテジーに落とし込むことから試してみました。
売買ルール
Forex Tester5でのテスト結果
PC環境はWindows10にForex Tester5で試しました。
早速ストラテジーを動かして、期待通りに動いているかチャートを拡大して確認してみました。
ストラテジーで指定した日の注文時間にBUY注文が入り、決済時間にSELL注文が入っています。また、決済前に大きく下落した時は損切が発生するような動きとなっており、期待通りの動きになってました。
作成したDLLファイル
「パラメータ」ダイアログには売買条件が入力できるようになってます。ここには適切な値を入れておかないとストラテジーが全く動かないので注意してください。
入力できるパラメータ
(ポジションは1ロット固定です)
免責事項
当サイトの情報を元に取った行動の結果について、当サイトは一切の責任を負いません。当サイトの利用に関連して発生した損害について、当サイトは何らの責任を負いません。
このDLLファイルはWindows10で作成しましたが、PCの環境が変わると動作しないかもしれませんので注意してください。
インストール方法 (Forex Tester5)
1.画面上部にある「ストラテジー」を選択すると「ストラテジーを追加」ボタンが見えるようになるのでそれを押す。
2.ボタンが押されると「新規ストラテジーをインストール」ダイアログが表示されるので、ダウンロードしたDLLを選択し「インストール」ボタンを押す。
3.「ストラテジーを追加」ボタンの左にある「ストラテジーを実行」スイッチを「ON」にして「ストラテジーリスト」のボタンを押す
4.ボタンが押されると「ストラテジーリスト」ダイアログが表示されるので、インストールしたストラテジーの左側の「オン/オフ」スイッチを「ON」にして右側にある歯車アイコンを押す。
5.ボタンが押されると「パラメータ」ダイアログが表示されるので、各項目をテストしたい条件に合わせて入力する。
6.画面上部にある「ホーム」を選択すると「再起動」ボタンが見えるようになるので、それを押すとバックテストが開始される。(事前にプロジェクトを作成しておく必要あります)
つづく?