EAラボラトリー::FX自動売買システムのWin-Win型研究開発サイト

2009年6月記事一覧

ぼちぼちメールが来ていまして、対応に時間が取られていますので当サイト(EAラボラトリー)研究員の募集要項、参加資格およびお願いしたい主な活動などについて書きます。当ブログの開設前からの研究員の皆様も確認のため一度読んで下さい。

①募集要項

  • 募集人数…50人(現時点ではこの人数を超えると本業に支障が出そうです)
           予定定員を超えましたが、まだキャパがあることがわかったので増員募集中です。
  • 募集期間・・・定員を満たすまで。もしくは対応キャパが限界に来たとき
  • 申請方法…フォーラムユーザー登録&申請フォーム送信

②参加資格

  • 挨拶がきちんとできること
  • モラルや良識のある人
  • PCの基本的取り扱いができること
  • MetaTraderのインストールとブローカーへの登録が済んでおり、オンライン状態にできていること
  • ④の活動を継続的にしていただける方
  • ROM型の人(見てるだけの人)や協力的で無い方はお断りします

③参加特典

  • EAラボラトリーオリジナルの、EA、インジケータ、スクリプトを配布いたします。
    配布方法は現在はメールのみの対応となっております。
  • 研究員の皆さんには特にengineeeerが得た有益な情報をメールでお知らせしたりするかもしれません。
  • フォーラム内では特別なグループに所属することになります。

④活動

  • EAのデモ・リアル試験運用、さらには可変パラメータを調整してのバックテストを行っていただきたいです。そしてその結果・評価・バグなどをフォーラムにて(場合によってはメールにて)報告して欲しいです。
  • 新たなEA開発のアイデアを出し合いましょう。engineeeerは限りある時間と脳みその範囲内でそれをEAに組み入れていきます。そのうちすごいEAができちゃったりしてね。将来EA自体を販売する必要性が出てきたりしたら何らかの形で研究員の方々にバック致しましょう。
  • engineeeerのブログにコメントを書いて下さい。正直プログラムをするのは好きですが、ブログを書くことは苦手であまり好きでありません。一方的に書くブログは書いていてつまらないです。研究員の皆さんからの何気ないコメントや励ましの一文がengineeeerのやる気のエネルギーに繋がります。emptyゲージを過ぎたらHPもろとも辞めちゃうかもしれません。まあ当然コメントを書く気になるようなブログを書かなきゃいけないですがねw
  • ブログをお持ちの方はオリジナルEAを含むEAラボラトリーを紹介してください。同志を募り続けます。勝手にリンクを張っていただいて結構です。アクセスが増えることもまたやる気のエネルギーに繋がります。

⑤参加継続資格

  • engineeeerの裁量で判断いたします。裁量とは何がどうなったらなのかというのは書けたら裁量にはならないんですが、コメントの量であったり、フォーラムへの参加状況だったり、その辺を見て毎月プログラム配布時に判断いたします。クビになっちゃった方、悪く思わないで下さいね。そういう意味でも同志だけがengineeeerのプログラムを使用してほしいのです。現在はこのサイトは趣味の色が濃いですが、開発したプログラムはそう簡単に誰にでも作れるものではないと思います。engineeeerの経験と技と汗が生んだものです。ギブアンドテイクの判っていない方の持ち逃げは許しませんってことですね。すべてのプログラムには使用制限を設けてありますが、参加審査自体無いに等しいのでさまざまなツールを無料で1ヶ月間使ってもらっている事自体太っ腹なことと思ってもらいたいです。

 

以上のようになってます。(2009.08.08現在)

 

●申請方法●※2009.08.08から変更致しました


研究員参加希望者は、まずフォーラムでユーザー登録を行ってください。
FORUMへログインすると次のトピックが現れます。
※まずはここをお読み下さい にある ”研究員申請はこちら” から先へ進んで、申請フォーム送信を行ってください。

認定者には通常3日ほどでメールをお送りいたします。また、本ブログへ認定のコメントを随時行っていきます。認定コメントがあるのにengineeeerの反応が無い場合はその旨をメール下さい。死んでいない限り無いと思いますがw 認定されなかった場合はご連絡を差し上げておりません。予めご了承願います。

クドイようですが重ねて言わせてください。ただ単にEAが欲しいからという理由で申請するのは辞めて下さい。
共に研究をしていきたいという熱い志を持った同志のみが集まって欲しいです。よろしくお願い致します。

やっとFORUM(フォーラム)の設定を終えました。以前からメールでやり取りしていました研究員の皆様もなるべくこのフォーラムを使用してください。

現在はまだ研究員の人数も少ないのでFORUMの入場資格も作ってはいませんが、時機に設ける可能性はあります。場合によっては閲覧も制限する可能性もあります。EAの性質によってはボットの巡回を交わす可能性もあります。

基本的に、このフォーラムは同志である研究員の皆様と、engineeeerの作成するEA、インジケータ、スクリプトについて技術的な情報交換や、意見交換を行う場です。
engineeeer側からは、使い方はもちろん、推奨パラメータの紹介、バージョンアップの案内などを行います。
逆に、研究員の皆様側からは、各質問はもちろん、パラメータの提案、バグの報告、追加機能の提案などを行っていただければと思います。
さらには、新たなEA開発のネタ帳としてもengineeeerは重宝します。将来的に、研究員のみなさんとすばらしいEAが作れたらなと思います。

他には、ブローカー情報、他社有料・無料EAの評価、などもトピックで上げていただければと思います。”EALABO オリジナルPRODUCT フォーラム”以外はユーザー登録された皆さんが自由にトピックを立てることができます。

現在、閲覧は登録無しでもどなたでも全トピックを見ることができます。
書き込みは、ユーザー登録していただく必要があります。登録には特別な条件はありません。どなたでも登録いただけます。

いくつか使用上の注意点をあげます

  • ユーザー登録をしたらまず、”はじめましてのご挨拶”トピックに書き込みしてください(最低限のマナーです)
  • 以前に同じような内容のトピックが立っていないかどうか確認して下さい
  • トピックの内容から著しく外れる書き込みを行わないようにして下さい
  • 件名はわかりやすいものにしてください
  • マルチポスト(同じ内容を複数のトピックに投稿する事)は止めて下さい

モラルや良識の範囲内での使用を心がけてください。

こんにちは、engineeeerです。

最近はですね、いろいろとアイデアが浮かんできまして既に皆様に公開いたしております”Monkeyシリーズ”の多機能化に勤しんでおります。

具体的には、

  • 自在なエントリー・利食い・損切り時間設定
  • 相場状況に合わせた、トレールパラメータの変化機能
  • 決済優先順位の設定項目追加
  • テスター結果のCSVファイル自動出力

とかですね、あとは最近活気づいてきてますナンピン&マーチンゲール機能については個人的には好きではありませんが、ふと面白い原理というかファンダメンタル的な効果的要素を発見したのでそれを研究はしてみています。

engineeeerは性格上、考え付いたものは全部一つのパッケージに詰め込みたいという想いがあります。エントリーに使用するインジケーターを替えたからといって、別バージョンを出したりということは極力したくありません。
上記のようなときは、以前のインジケータも選択できるようにしたらいいじゃないですか。現在では効果のないものとして扱われてしまうものは省いていきますが、それ以外のものはどんどん詰め込んでいくと思います。
同志である研究員の皆様がいろいろテストできるようにいじってて楽しいEAというか遊びものというかツールを作っていきたいですね。

もうじき研究員の皆様に新バージョンのEAをお送りいたしますので、お待ち下さい。

engineeeerが提供する、スクリプトEA SpreadLoggerを使ってスプレッドを調べるとこのようなグラフを作ることができます。

Spread_FXCM_NY_EURGBP_2009.png

調査対象は、2009.05.07 15:00 - 24:00(UTC-4) FXCM-NY EURGBP です。
いわゆる、アジア早朝時間帯におけるユロポンのスプレッドチェックです。
ちょっと古いですが、勘弁してください。
ゴールデンウィーク前はこのブローカーもスプレッドは5くらいありました。ボストンテクノロジーへの移管が発表された時期に急にスプレッドが3くらいになりました。(当然寄り付きがひどいですがねw) でも現在、FXCM-UK & BT(ボストンテクノロジー)にサーバー変更してユロポンはさらにおかしなことになってます。この辺りはまた近いうち書きましょう。


しかし、こう見ると便利だと思いませんか?ブローカー毎にスプレッドの平均・付き方のクセが違いますので、EAのパラメータ設定の参考となります。しかもこの元データはTick毎に記録されています。皆さん活用してくださいね。

使用上、いくつか注意があります。
このスクリプトEAを走らせっぱなしにしておくと、どんどんファイルが溜まって、いつの間にかHDDがいっぱいに・・・なんてことに注意してください。
もう一つ、EXCELなどの表計算で集計するとき、表計算ソフトの取り扱い限界行に注意してください。engineeeerもEXCEL 2003を使用していまして、65535行までしか取り扱いできません。当然データを分けて扱うことになります。

Strategy Tester Report(ストラテジーテスターレポート)日本語訳すると、運用試験報告。

今回はバックテスト結果であるこのストラテジーテスターレポートの見方と、それを利用した効率の良いEAのOptimize(オプティマイズ)最適化について書こうと思います。間違った解釈をしている方が多いですのできちんと抑えておきましょう。また、ここを頭に入れておくことで使えるEAと使えないEAの区別ができるようになっていただければ幸いです。ネット上で安全に使えるEAというのはなかなかお目にかかれませんよ。

Strategy_setsumei.jpg

 

これは今開発検証中の、Monkeyシリーズのポン円Verのあるテスト結果です。パラメータはすべて削除してあります。注文ロットは固定で0.1ロットです。
まずは各項目の説明です。

  1. Bars in test ・・・ テストをしたBarの数
  2. Tick modeled ・・・ テストで使用したティック数
  3. Modelling quality ・・・ テストで利用したティックの割合
  4. Mismatched charts errors ・・・ 試験時間足と測定に使用に使用した時間足データとの相違数
  5. Initial deposit ・・・ 初期準備額
  6. Total net profit ・・・ 総純損益(純利益-純損失)
  7. Gross profit ・・・ 純利益
  8. Gross loss ・・・ 純損失
  9. Profit factor ・・・ プロフィットファクター(総利益/総損失)
  10. Expected payoff ・・・ 1トレード当たりの期待損益(総純損益/総トレード数)
  11. Absolute drawdown ・・・ 初期投資額からのドローダウン
  12. Maximal drawdown ・・・ 最大ドローダウン(最大金額)
  13. Relative drawdown ・・・ 相対ドローダウン(最大比率)
  14. Total trades ・・・ 総トレード数
  15. Short positions (won %) ・・・ 売りトレード数(勝率)
  16. Long positions (won %) ・・・ 買いトレード数(勝率)
  17. Profit trades (% of total) ・・・ 勝ちトレード数(率)
  18. Loss trades (% of total) ・・・ 負けトレード数(率)
  19. Largest profit trade ・・・ 1トレード当たりの最大利益
  20. Largest loss trade ・・・ 1トレード当たりの最大損失
  21. Average profit trade ・・・ 勝ちトレードの平均利益
  22. Average loss trade ・・・ 負けトレードの平均損失
  23. Maximum consecutive wins ・・・ 最大連続勝ちトレード数(利益)
  24. Maximal consecutive losses ・・・ 最大連続負けトレード数(損失)
  25. Maximal consecutive profit ・・・ 最大連続利益(勝ちトレード数)
  26. Maximal consecutive loss ・・・ 最大連続損失(負けトレード数)
  27. Average consecutive wins ・・・ 平均連続勝ちトレード数
  28. Average consecutive loss ・・・ 平均連続負けトレード数

 

のようになります。とても便利ですよね。

さてここで、このテスト結果のいくつかのパラメータに注目して、EAの最適化をしていくことを考えます。
あくまで、engineeeerのやり方でもありますがまあ見て下さい。基本的に重要であるのが、

9.  Profit factor ・・・ プロフィットファクター(総利益/総損失)
12.  Maximal drawdown ・・・ 最大ドローダウン(最大金額)
13.  Relative drawdown ・・・ 相対ドローダウン(最大比率)
14.  Total trades ・・・ 総トレード数

になります。目標の目安ですが、

 

Profit factor は、一般的に2.0以上あれば優秀であると言われています。engineeeerもそう思います。というか、3.0やそれ以上のPFをたたき出すEAにはろくなものなありませんし、ろくな結末がありません。この辺は後で説明します。

 


Maximal drawdownRelative drawdownですが、これが一番大事です。かつ、皆さんとらえ違えているところだと思います。説明します、
前者はレポート画像のの場所にあたります。後者はの場所にあたります。どちらも山の頂上から谷の最下点以下までの金額差になります。
ここで今、最下点以下と書きました。そうです、その通りなんです。グラフを見ると青と緑の折れ線グラフがあるのが分かりますね?青はBalance(口座残高)、緑はEquity(純資産)を表します。こう書くとわかりにくいですが、

Balance(青)は、オーダーを出しても減りません、そしてオーダーが決済されて始めて増減されます。
Equity(緑)は、オーダー時にブローカーに預ける証拠金分がすぐ引かれます、そして当然オーダーが決済されるとロスカットで無い限りもちろん証拠金は口座に戻ってきますのでその分元に戻ります。

金額差と書いたのもこの辺を分かってもらうためにあえてあいまいな言葉を使いました。
ということは・・・、私たちが最悪の事態を想定して考えなければならない、余剰証拠金の推移がグラフに出ていないのです!

テスターレポートの金額差(ドローダウン)は、余剰証拠金の高低の金額差です。

そして、なぜ Maximal drawdownRelative drawdown が違うドローダウンの場所になっているかです。ここも捉え違えている人が多いです。金額と割合を入れ替えただけとか言っている人もいます。違いますよ^^; これは、金額と割合のどちらに注目しているかで取り扱うポイントが違うからです。
 

 

 

Relative drawdown は、テスト期間中に起きたドローダウンの中で、上記の割合が最大になったときのドローダウンの割合を算出しています。その括弧内の金額は、そのドローダウン額です。

グラフの横軸は決済したオーダーの順番です。その最中に他にいくつのオーダーがあって、それらがどれだけ損失を抱えているかはグラフからは分かりません。しかし、グラフには出ていなくても、数値としては Maximal drawdownRelative drawdown として算出されているのです。EA視点で言いますと、よくあるナンピンをフル活用してマネーマネジメントしているEA(ナンピンは使い方を間違わなければ効果バツグンです。数学的に考えての話です。)は、ストラテジーのグラフで見るときれいな右肩上がりの一直線を出します。でも実際の口座内の動きは恐ろしいものです。そんなときこのRelative drawdown をチェックしてください。

もう一度話を戻します。

上の画像での、
Maximal drawdown) 4684.64(12.90%) は、
最大ドローダウン額=4684.64$
最大ドローダウン額/ドローダウンが起きる前の口座残高×100=最大ドローダウン率(%) ですので、
4,684.64/36,315.04×100=12.90% となります。

Relative drawdown) 27.86%(2876.39)は、
ドローダウン額=2876.39$
ドローダウン額/ドローダウンが起きる前の口座残高×100=ドローダウン率(%) ですので、
2876.39/10324.44×100=27.86% となります。(初期投資額より324.44$多いのは、一瞬プラス損益が出たからでしょう。)

このデータから推測しなければならないことは、このテストの注文ロットは固定で0.1ロットですので、グラフのどの位置の事象もどこでも起き得ると考えなければなりません。ですので、
最大ドローダウンがもし、EAスタート直後に起きたらどうなるかを考えなければなりません。テストの期間を①の直前からに設定してテストしてみると分かります。Relative drawdown 50% になります。スタートしていきなり口座資金が半分になります。

また、Maximal drawdownRelative drawdown の両方が小さい数値を出しいてる場合は、初期投資額を見てみてください。グラフの縦軸の最下段は0ではありません。ストラテジーの結果で自動調節されています。
どうでしょう? 50000$とかになっていませんか?500万円ですよ?大金スタートですねぇ。それならドローダウンの値が小さくなるのは当然です。

ここまで来て初めて、投資計画を考えます。そのままのEAのパラメータで取引を行うなら、テストから算出される最大ドローダウンの十倍くらいの資金を用意しましょう。でなければ、パラメータを変更して、最大ドローダウンが小さくなるようにしましょう。小さくならなければそのEAはあなたに適していません。破産する前にしかも1銭も市場にお金をさらさずに判明してよかったですね。(有料EAならEA購入代金分は損しちゃいますけどね)

 

次に、総トレード数ですね。

これはですね、2つの点から考えます。
投資心理面 と 統計学的見解 です。

PFもDDもバッチリだけど、取引は1回/月程度・・・ ってどうですか?
engineeeerはイヤです。両方の見方からです。月一回の取引のために、PCを24時間フル稼働ですか?なら、ここぞとばかしの指標発表時にスキャルを一回やったほうがいいのではないでしょうか?投資という枠から外れるような気がします。でももっと納得がいかないのは、統計学的見解からのことです。
1回/月ってことは、過去5年のバックテストを行っても、60回の取引データしかないことになります。たった60回のバックテストによる統計を信じる気ですか・・・。

というわけで、engineeeerの作るEAも最低でも月20回は取引できるようにしています。なら平均1日1回は取引を見れるでしょう?

 

これらをTotalで見て、もう一度PF(プロフィットファクター)を考えます。すると、不思議ですね~。やっぱり年間ベースでPF3.0を超えたりすることはなかなかないです。engineeeerがまだ未熟で作れていないだけかもしれません。作れている人がいたら是非教えてください。w(教えてくれるわけはないでしょうがねw)

そして、仮に偶然ではなく作れたりしたとします。そのようなものは、engineeeerは攻略法的EAだと思っていますので、誰かに知られれば、すぐさま連鎖的に広がっていきます。そしてなんらかの対策が打たれ終焉を迎えます。最近のユロポンのようにですね。
そう、出る杭は打たれるんです。私も本職でそんな経験をいっぱいしてきました。
この研究所発のEAが将来出たとしたら、努力した私たち研究員だけで使っていきたいですね。そうできるように、アルゴリズムがばれたりしないようengineeeerは頑張ります。

 

Maximal drawdown は、テスト期間中に起きたドローダウンで最大の金額差になったところを指し、その金額を算出してます。その括弧内の割合は、そのドローダウンが起きる直前の余剰証拠金の最大額を100%としたときのドローダウンの割合です。

 

MetaTraderの新バージョン、MetaTrader5が今年中にリリースされるようです。フォーラムに情報がありました。

forum.mql4.com/22700

MT5_client_terminal.png

トレード画面を見ると、さらに使い勝手が良くなってそうですね。楽しみですね。

しかし、今現在のMetaTrader4でも、かなりの頻度でバージョンアップがされているところを見ると、この新バージョンの安定稼動は、もう少し先のことになるでしょうかね。ブローカーさんの対応にも注目ですね。

プログラムの観点からかき集めた情報では、MetaTrader4に比べてかなりプログラムしやすくなっていそうです。今回はちゃんとしたデバッガも付いているよう。オブジェクト指向がフルで使用できそうです。engineeeerの対応が急がれますねw
でも大丈夫です。以前からこの情報は得ていましたので、すぐ移行できるようにプログラムを整えてあります。非常に楽しみです。

前回に続き、バックテストの豆知識というかお得情報を書きます。

MetaTraderはバックテスト時、スタートを押した瞬間のサーバーのスプレッドに準じてAskデータが作られ、固定スプレッドとしてテストが行われます。
これがとても肝心なところです。知らない方、また困っている方が多数いらっしゃることと思います。
そうなんです。MetaTraderはAsk(買い)のデータが保存されていないのです。そしてだからこそ当然、変動スプレッド制を採用しているブローカーが多い中、スプレッドが固定されてバックテストが行われます。

さらに言うと、週末市場がお休みのときに、バックテストをしようとすると金曜の深夜市場がクローズしたときのスプレッドでしかバックテストができません。

短期トレードでは、スプレッドの影響が大ですよね。それなのに、スプレッドの状況がこのようにリアルと全く違うことはバックテスト結果の信頼性とは相反する要素です。

そこで、
engineeeerは、この問題を打開すべくMetaTraderのスクリプトを同志には無料配布しています。
このスクリプトは指定通貨ペアのスプレッドを自在に変化させることができるすぐれものです。サーバーオフライン中でも関係ありません。よく他の方が実践されている、『スプレッドの数値がバックテストしたい値になった瞬間にマウスをクリック』なんてする必要はありません。

最近変動スプレッド制を採用しているブローカーが増えてますよね。普段はスプレッド1でも急な値動きがあったり、逆に取引が薄い時間帯になるとスプレッドが大きくなります。そういった事象に耐えうるEAのパラメータ設定はこのスクリプトが大変役に立ちます。是非ご活用下さい。

バックテスト方法は、ODLさんのHPで詳しく書かれていますのでそちらを参考にしてください。
www.odls-manual.jp/mt4/07/01.php

重要かつもっと掘り下げた説明を何点かしていきたいと思います。バックテストの基本ロジックを理解して、効率のいいバックテストを行えるようになりましょう。

今回はテストモデルに関してお話いたします。
テストモデルとは以下の画像の、”モデル”の部分のことですね。

tester.jpg

 モデルは現時点で3種類あります。

  • Open prices only
  • Control points
  • Every tick

ですね。どんなモデル(テストロジック)なのかきちんと理解する必要があります。詳しく説明しますね。

Open prices only

選択したタイムフレーム(時間枠)の4本値のみを使用します。3つの中で一番速いバックテストですが、バーの内部の細かい値動きは全く考慮されませんので、EAによっては検証にならない可能性があります。バーの始値でエントリーするようなEAだとこのモデルでも問題ありません。

Control points

選択したタイムフレームの一つ細かいタイムフレーム(例えば4Hなら1H)までを使用します。
バーの内部の値動きがある程度は考慮されるので、Open prices onlyよりは信頼度の高いテストが行えます。

Every tick

1分足のデータを使用し、さらに仮想でTickデータを作り出しバックテストを行います。
当然、3つの中で一番遅いバックテストですが、信頼度は高いです。

 

先に書きましたとおり、MetaTraderにはTickデータのバックアップはありませんので、リアルさながらの・・・とまでのバックテストはできませんが、超最短スキャルピングEAみたいなものでなければ、Every tickでのテスト結果はなかなか信頼・期待のもてる重要参考になるのではないかと思います。とはいえ、非常に時間のかかるテストモデルですので、Control pointsで一度大まかなパラメータの枠決めをしてから、次にEvery tickでテストするといいでしょう。

前回は短期間(3ヶ月ほど)ではありますが、信頼性の高いブローカーそのもののデータ取得方法と整理について書きました。今回は、長期のデータを取得する方法について書きます。
ちょうど、前回の記事『バックテスト方法 ① (全ブローカー対応)』の方法②と読み替えてください。

②ヒストリーデータの取得

長期のヒストリーデータの取得を行います。ここではまず、MetaTraderの開発元であるMetaquotes社のヒストリーデータの取得方法についてご紹介いたします。Metaquotes社のヒストリーデータは実際の使用ブローカーのデータとは違いがありますので、特にスキャルピングEAなど短期売買のバックテストは信頼性が欠けます。ですが質より量的な考えが該当する目的であったり、長期足のスイングトレードEAなどでは重宝するデータになることでしょう。

  1. ”ツール>History Center”を選択します。以下のダイヤログが表示されます。
  2. 通貨ペアの一覧から、取得したい通貨ペアの1分足(M1)を選択します。(
  3. ”Download”を押し、次に出てくる注意書きダイヤログ(「ご使用の実際のブローカーのデータとは違いますよ~」という内容)を”OK”で承諾してダウンロードを開始します。ダウンロードには数分~数十分かかります。

history_center.jpg

以上の作業でMetaquotes社のヒストリーデータを取得することができます。

 

次に、各ブローカーで用意されているヒストリーデータの取得方法をご紹介いたします。ブローカーによって準備のあるなしがありますのでご自身でご確認下さい。

今回はFXDDのヒストリーデータの取得方法をご紹介いたします。FXDDは以下のサイトに1分足のヒストリーデータが公開されています。
www.fxdd.com/jp/mt1m-data.html

ここからヒストリーデータをダウンロードします。ダウンロードしたファイルを解凍すると、”USDJPY.hst”(今回はドル円での説明)というファイルが確認できると思います。
このファイルを上の画面にある”インポート”(③)で選択するとMetaTraderにFXDDのヒストリーデータを取得することができます

バックテストをできる限り正確に行うためには、事前に設定とヒストリーデータの収集整理を行う必要があります。今回はその設定と、だれでも簡単にでき全ブローカーに対応したヒストリーデータの収集整理方法を紹介いたします。

 

①MetaTraderの設定

以下の設定をして、バックテストで扱うデータ量を最大化します。

  1. MetaTraderを 起動して、”ツール>オプション”(Ctrl+O)を選択してください。
  2. オプションダイアログが表示されたら、”チャート”タブを選択します。
  3. その中の、”ヒストリー内バーの最大数”9999999999と入力し、”OK”でこの画面を閉じてください。
history_setting.jpg

こうすることで最大化の設定ができます。(再びこの画面を見てみると数字が変わっているのが分かります。)

 

②ヒストリーデータの取得

次にヒストリーデータの取得を行います。今回は、全ブローカーに対応していてもっとも信頼性のある取得方法の紹介です。

  1. データを収集したい通貨ペア(今回はドル円)の1分足を表示させます。(
  2. チャートのズームを最小にします。(
  3. チャートの自動スクロール機能をOFFにします。(

history_chart_ready.jpg

あとはページスクロールが止まるまで、ひたすら”カーソルの左””ページアップ”を押し続けます。

この作業で得られるデータはおおよそ3ヶ月分くらいでしょう。今後は①で設定したデータ量になるまでずっとヒストリーデータが蓄積されていきます。言い方を変えると、3ヶ月間ほどの間MetaTraderを一度も起動せずに放置しておくと、その後データを取得しようとしたときに穴が開くことになります。注意してください。

たった3ヶ月ほどのデータですが、このデータは使用しているブローカーのサーバーデータそのものですので、信頼性が高いです。ヒストリーデータは各社違いますから。

 

③1分足のデータから他の時間足のデータを作る

②で1分足のデータを取得しました。今度はそのデータを利用して他の時間足のデータを作ります。他の時間足で②のようにしてデータを取得する方法もありますが、バックテスト時Mismatched charts errorsが多く発生する原因になりますのでお勧めしません。

  1. まず、ここで一度再起動します。
  2. 次に、”ファイル>オフラインチャート”を選択して下の画面を出します。
  3. この中から先ほど取得した、1分足のデータを選択します。(今回はドル円ですので、USDJPY,M1になりますね)
  4. choose_offlinechart.jpg
    すると、チャートが表示されます。
  5.  次は、以下の画面左下にある”ナビゲーター”内の”Scripts”にある?の”period_converter”)を選択します。すると以下のダイヤログが表示されます。
  6. ”パラメータの入力”タブにある項目、”ExtPeriodMultiplier”の値”value”)をこれから作り上げたい時間足の数値に変更します。たとえば、5分足なら"5"、15分足なら"15"、1時間足なら"60"というように、すべて分で入力します。
  7. 入力後”OK”でダイヤログを閉じると、指定の時間足データが作成されるのです。
period_converter.jpg

同様にして、すべての時間足のデータを作り上げます。(再度"period_converter"を選択すると、エラーのようなダイヤログが出ますが、そのまま”はい”を押して進んでください。)

このブログは初心者さんも見ている可能性がありますので、ちょっと詳しく説明しましょうかね。

まずスプレッドとは何か?これはまぁ買値(Ask)と売値(Bid)の差になるのですが、この差額分が業者(ブローカー)利益になります。要は早い話取引手数料になっているわけです。よくTVで「ドル円 99.60-99.63」とか言うのはこの差額の3銭がスプレッドということになりますね。

では今回は質問形式で、
「スプレッド0.5銭キャンペーン♪」

なんてのをやっているブローカーがあるとします。いったいこのブローカーはどうやって儲けているのでしょうか?

「キャンペーンだから儲けてないんだろう?」

とか思いますか? いいえ、しっかり儲けています。不思議に思いますか?

からくりはこんな感じです。ご存知の通り値付けはブローカーがそれぞれ行っています。ではたとえば、

A社:スプレッド 5銭
B社:スプレッド 1銭

の2社があるとします。ドル円のレートを観察します。
ある時、

A社:100.00 - 100.05 
B社:100.02 - 100.03

だったとします。(まあこんな時はレンジ相場のときなのですが)
この後、明らかな上昇トレンドが発生しました。すると、

A社:100.05 - 100.10 
B社:100.09 - 100.10

今度は、下降トレンドが発生しました。すると、

A社:99.90 - 99.95 
B社:99.90 - 99.91

わかりましたか?

トレンド方向に寄り付くことがわかりますね?

トレードしている側に立ってみてみましょうか?
B社を利用してる場合、トレンドの読みが当たっているときは、スプレッド1銭の恩恵をモロに受けますね。
しかし、エントリー後トレンドの読みが外れて逆方向に行ってしまった場合、一瞬にしてまるでスプレッドが4銭もあったかのようにビハインドな状態になってしまいますでもそのときにスプレッドをみてもやはり1銭ですね
また、A社を利用している場合は、トレンドに値付けが振り回されることがありませんので、落ち着いて見ていることができますが、もちろん最初から大きなスプレッド分はビハインドな状態から始まります。

結局答えは、スプレッドが小さいからといって有利とは言えませんよってことです。この例でいけば、トレンドを読んだものがどちらのブローカーを使っても勝者になるのです。そして、トレンドを読み間違ったものはどちらのブローカーを使用していても同じだけ損失を被ることになると思います。

以外と、「おお!」と思った方多いのではないでしょうか? はい、ブローカーさんはこんなことをコンピューターにやらせてうまく儲けているのですね。

そしてもう少し言うと、この値付けの寄り付きがブローカーによってクセがあります。あるブローカーはあるブローカーよりも1秒速く寄り付くとかですね。engineeeerは、あらゆるブローカーと契約してこのクセを探して、一種のアービトラージ的な取引をしていたことがあります。まだ使えると思います。でもEAを使用するようになってからは止めました。今思えばよくあんな疲れる取引を毎日していたものだと思います。ほんと疲れるんですよ。

もっと言いたいですが、辞めておきます。最近の人気EAの使用に繋がるヒントですね。

バックテストをどう考えるかについて書こうと思います。

MT4の便利な機能の一つにバックテストというものがあります。これはご存知の通り、過去のチャートのキャッシュを利用してEAを高速仮想動作させ調査結果を示してくれるものです。非常に画期的な機能ですね。

ある人は、「いくら過去でいい結果を出したって、その手法で明日も同じことが起こるはずがない」なんて言いますよね。間違ってはいないと思います。でもそれが正解でもないと思います。過去のトレード成果を元に近い未来のトレード方法を導き出すことは当たり前に皆さんがしていることだと思います。EA使いとか関係なくトレーダーなら皆、何かの過去のデータを元に「買いだ!」とか「売りだ!」とか判断しています。移動平均線とかの誰もが知っているインジケータだってそうですよね。FX以外にも人間の判断が必要な世の中のすべての出来事には、少なからずなにかの過去データが利用され、時には定義として扱われたりすることだってあるのです。100%の答えが出ているものであればもちろんですが、そうでなくとも、そういったものは必ず参照され、日々鍛錬され精度の高いものとなっていくものです。

バックテストは大事です。勝率を1%でも、収益を1円でも多くするために、バックテストをさまざまな角度から行いましょう。いろいろなパターンのバックテストをやってみると、さまざまな発見があって今後のトレードのヒントになっていきます。engineeeerも一つのEAを作るのに数十回以上のバックテストは必ずしています。

しかしバックテストは、PCの負荷もすごいですし、時間もかかりますし、プログラムを書いている時間よりずっと長いです。ちょっと専門的な話になりますが、MT4のプログラムソフトにはシュミレータやエミュレータたるものが搭載されていません。なので実際どうやって動くかはバックテストするしかないのです。ある一部分の機能を試すためにワザとありえない数値を代入してバックテストにかけたり、そういったことはもう日常茶飯事でとても大変です。逸れました、
engineeeerはこのバックテストの大半は書き留めることなく記憶に頼っています。事故で記憶が吹っ飛んだり、歳を取って記憶がどっかいってしまったらどうするんでしょうね。w 理由はですねぇ、書き込めておく時間があったらもっといろいろなバックテストをしたほうが楽しいし為になると感じるからです。というか、試したいことばかりなのです。もう一つの理由は、書き留めている間に、本来のバックテストも目的を忘れてしまったりすることがあるからですね。engineeeerは天才ではないので、自分なりに効率の良い作業方法を日々模索しています。

そんなこともあり、本職の傍らEA研究に燃えているengineeeerと共に検証していただける人がいたらなぁと思いこのブログをじわじわと作っているのです。

「このパラメータをこうしたら・・・・・」とか、
「こんなパラメータを追加したらどうでしょう・・・」とか、

私も含め、同志の皆で勝利を勝ち取り続けたいものですね。ステキな勇者が現れることを期待しています。

あ、このバックテストですがいろいろと技がありますのでそのうちブログに書きますね。

 カテゴリ

open all | close all
 ※各最新10エントリー表示

 最近の記事

 最近のコメント

 フラッシュタグクラウド

 お勧めサービス

安心国内WindowsVPS
engineeeerも利用しています♪
レンタルサーバーなら使えるねっと

最近話題の激安中古PCショップ
engineeeerも良く行きますし買います♪
激安PCショップ img

 ランキング

クリック協力よろしくお願いします。
FXランキング ブログランキング
ブログランキング 為替ランキング
FXランキング
人気ブログランキング ページビューランキング
fxランキング ranking
相互リンクとランキングプラス くる天 人気ブログランキング
外為ランキング FX

 相互リンクサイト様(50音順)

リンクして頂ける際はDLしてご使用下さい。
相互リンク用画像
TOPへ
TOPへ