マネー報道 MoneyReport

仮想通貨に特化した自作EAを公開中!仮想通貨FXでMT4&MT5を活用し資産運用中!

MT4バックテストのやり直し!ヒストリーデータの再取得

あとで読む スポンサーリンク

バックテストの間違い

FXの自動売買開始に向けて色々と挑戦中であります。
FXの自動売買を行うならばMT4という自動売買ツールを使い、EA(エキスパートアドバイザー)という自動売買プログラムを使ってトレードをするのが一般的です。
自動売買をやるのならば、どうせならデファクトスタンダードになっているMT4で始めるのが無難なのかな、と(^-^;

MT4を利用してEAでの自動売買を行う時には下記の様な手順が必要になります。

【MT4の自動売買開始までの手順】

  1. MT4稼働環境の検討(VPSの選定)
  2. MT4利用可能なFX業者の選定&口座開設
  3. MT4で稼働させるEAの選定
  4. 手順2のFX業者のデモ口座でEAの稼働&バックテスト ← 今ココ!
  5. 手順1のVPS契約
  6. VPS上でMT4とEAの本格稼働


手順が6個ある内の4個目まで来たので、あと一息でFXの自動売買開始できます!
さぁ、あと一歩なので頑張ります(^-^)/

で、前回の記事でMT4のバックテストを、過去のヒストリーデータをきちっと取得してテストして結果を公表しました!
しかし、すぐに開発者のid:emijaさんからクレームが(-_-;

id:emijaさん
前とパラメーター変わってません?(´~`?) ジグザグに資産が増えるからジグザグブレイクアウトって…全然違うw Zigzagインジでブレイクアウト狙ってます。ロジックはブログに書いてるhttp://tasfx.net/2015/05/03/post-5278

あら、間違ってました(^-^;

前回記事では・・・

ジグザグなグラフを描きながら、それでも右肩上がりに資産が増えていくので「ジグザグブレイクアウト」というEA名称なんですね~(^-^)v

なんて書いたのですが、そんな事はないそうです。
貼って頂いたURLを見に行くと・・・

ZigZagインジケーターとは?
何をするために開発したのかは知りませんが、たぶん直近の高値と安値を知ることとトレンドを見るために作ったのではないかと勝手に推測しています。


f:id:MoneyReport:20160608145721j:plain


赤いラインがZigZagインジケーターです。
パッと見で左は下降トレンド、それから上昇に転じているように見えます。
何度か止まっているところがあれば「サポート」「レジスタンス」として機能していると見ても良いでしょう。


ZigZagインジケーターを使ったトレード戦略(ブレイクアウト)を徹底検証 | ソフトウェアエンジニアのまったりFX研究日記

ふむふむ。
Zigzagインジケーターと呼ばれるインジケーターを使ったブレイクアウト手法のEAでした(^o^;
大変失礼致しました<(_ _)>
前回記事本文も修正致しましたm(_ _)m

再びバックテスト

という訳で、どうにも前回記事で行ったバックテスト結果はイマイチな様子。
テスト期間を変えて2016/01/01~2016/06/08でテストしてみても同様なジグザグのグラフ結果に(-_-;

「これってもしや、ヒストリーデータが悪いのかも・・・」

という結論に至り、データを取得し直し見ることに(^o^;

前回は下記の様な順番でデータを取得しました。

  1. ヒストリーデータの取得(MetaQuotes社)
  2. ヒストリーデータの取得(FXDD社)
  3. ヒストリーデータの取得(使用FX業者)


感覚的には1番目のMetaQuotes社のデータが悪さをしていて、全部を上書いている様な印象なので(^-^;
MetaQuotes社のデータは捨てて、FXDD者と使用FX業者のデータだけでテストし直してみたいと思います!

色々やってみたのですが、「EURUSD_ecn,H1」のユーロ/米ドル1時間足のデータがうまく反映出来なくて、止むを得ず15分足でバックテストをしてみる事に!

・・・(バックテスト中)・・・

少々時間が掛かりましたが15分足でのバックテストが完了しました!
f:id:MoneyReport:20160608162207j:plain

グラフがジグザグする事なく、程よく右肩上がりになりました!!!
f:id:MoneyReport:20160608162305j:plain
ie:emijaさん、本来はきっとこんなグラフで良いんですよね(^^;?

そりゃあ前回の下記の様なグラフをEAの結果だとして公開されたら怒りたくもなりますよね~(-_-;
f:id:MoneyReport:20160607134035j:plain

結果タブは下記の様になっています。
f:id:MoneyReport:20160608162820j:plain
2005/02/04~2016/06/08の11年間の期間でテストしています。

レポート結果は下記の様になっています。
f:id:MoneyReport:20160608162547j:plain
連勝11回、連敗7回、勝率57.69%、負率42.31%。
純益が10577.67となっていて、11年間でほぼ2倍になっています(^-^)v

1時間足での結果

その後も色々やっていたら、どうも「ストラテジーテスター」を選んだ時に表示される「テスター」ウインドウを閉じてから、ヒストリーデータの反映のスクリプト「Period_ConverterALL」を実行すれば反映出来た様です!
テスターを開いて1時間足を選んでいたので、MT4自身がH1の1時間足データを掴んでしまっていたようですね~(^-^;

1時間足でのバックテスト結果です。
テスト期間は2005/01/10~2016/06/08の11年間。

グラフはきれいな右肩上がりに♪
f:id:MoneyReport:20160608164311j:plain

レポート結果は下記のように。
f:id:MoneyReport:20160608164341j:plain
連勝9回、連敗11回、勝率62.09%、負率37.91%。
純益が10766.57となっていて、11年間で2倍になってますね(^-^)v

ここまで来たら、もっと投資資金を投じてハイレバレッジトレードがしてみたいです!

ケリーの公式

そして少し前の記事に、id:ikahonokahoさんがブログにて投資の「適切な掛け金」の算出方法について解説してくれました(^-^)v

システムトレードの収益最大化問題はケリーの公式でわかる
掛け金をめぐる問題は、理論上の優位性を享受するために突発的に退場させられず、かつ最大限の利益を享受できる金額をかけるにはどうしたらいいか、ということが出来そうです。

実は、この方法は数学的にはジョン・ケリーという数学者によって大昔に解明されています。


ケリーの公式
F={(R+1)P-1}/R
R:損益率
P:勝率


MT4などのシステムトレードで役立つ。資金配分を導くケリーの公式 - FX初心者向けまとめ解説(株式投資もあるよ)

ふむふむ。
ということで、ジョン・ケリーという数学者が解明してくれた「ケリーの公式」というのを使うと適切なトレード掛け金(一度のトレードに投じる資金)が分かる様です!

早速ケリーの公式を使って計算してみましょう!

【ケリーの公式】
F={(R+1)P-1}/R

R:損益率
P:勝率
F:総資金における掛け金の適正割合

また損益率は
損益率(勝ちトレードでの平均の利益÷負けトレードでの平均の損失(絶対値))

との事なので

R=(平均利益÷平均損失)

となります。

MT4のバックテストで言う所のレポート内の「平均 勝トレード」と「平均 敗トレード」の数値を入れれば良いんでしょうかね?
f:id:MoneyReport:20160608171652j:plain

今回私が購入したEAのバックテスト結果で言うと・・・
平均 勝トレード: 32.67
平均 敗トレード:-21.57

になりますか?

損益率の公式に当てはめてみると・・・
R=(平均利益÷平均損失)

R=(32.67÷21.57)
R=1.51

になります。

Pの勝率はレポート結果に出ている「勝率(%)」をそのまま引っ張れば良いのかな?
今回だと勝率は62.09%です(^^)v

この結果をケリーの公式に入れてみると・・・

F={(R+1)P-1}/R

F={(1.51+1)0.621-1}/1.51
F=63.0%

と出ました!
1度のトレードに掛ける掛け金は投資資金の63%を投じるのが良いようです!

現在デモ口座には10,000ドルが入っています。
この内63%を1度のポジションで持つとすると・・・

 10,000ドル × 63% = 6,300ドル

と算出出来まして、一度のトレードで6,000ドル(レバレッジ1倍の場合)を投じるのが良いことになります!
1万通貨単位で考えると0.6万ドルです。
レバレッジ別に算出してみると・・・

  25倍:0.6万ドル ×  25 =  15万ドル
 100倍:0.6万ドル × 100 =  60万ドル
 200倍:0.6万ドル × 200 = 120万ドル
 400倍:0.6万ドル × 400 = 240万ドル

と出ました!
私の検討しているFX業者は海外業者のためレバレッジが最大400倍までOKです(^^)v

MT4では数量はロット単位になりますので、240万ドルは24ロットになります。
 240万ドル : 24ロット

という訳で最大のリスクを取って400倍の推奨ロットでバックテストをしてみましょう!

レバレッジ400倍トレード

デモ口座なのでバンバンいきましょう!
1万ドルで400倍レバレッジでケリーの公式で算出された240万ドル、24ロットでのトレードをしてみましょう!

「UseAutoLots」をfalseにして数量の自動計算をOFFにします。
そして「Lots」を24に設定します!これで24ロット、240万ドルというとんでもない数量でのトレードです!
f:id:MoneyReport:20160608171053j:plain

いざバックテスト!
f:id:MoneyReport:20160608171208j:plain
あれ?グラフが真っ白けっけです(^o^;
どうも24ロットなんて1万ドル(110万円)程度の取引証拠金ではトレード出来ないみたいです(>_<)

10ロットのトレード

最大枚数がちょっと見えてこないので(計算していないだけ・・・)、ここは分かりやすく10ロット。
100万ドルでトレードしてみましょう(^-^;)/

トレード結果は・・・!?

ババン!
f:id:MoneyReport:20160608173136j:plain
ぬおぉ!!!!
金額が半端ないことになっています(*^▽^*)
166,613ドルになっています!

レポートも見てみましょう!
f:id:MoneyReport:20160608173416j:plain
勝率や連勝・連敗は変わらないですね~。
ただし純益が148505.40ドル!

1万ドルの証拠金で始めて2005年~2016年の11年間で14.8万ドルまで増えました!
11年間で15倍!
ヒャッホウ♪♪♪

これは楽しい結果ですね~。

もう少し自分の投資資金ベースで計算して、適切なロット数を出してやってみたいと思います(^-^)v