2013年9月3日火曜日

ダメEAを向上させよう!~最適化よりもストラテジー向上~ (1)

昨日はADP雇用統計に参加してたので、あんまり検証を行ってません。
TAの収支はというと、、、
せっかく25pips取れたのに往復ビンタしようとしてバチバチビンタを喰らってしまいました。

結局4pipsしか残ってないし。。。
身の程知らずもいいところですねぇ。

-------------------------------

今日はEAを磨く方法を考えたいと思います。

EA作ってて、みなさんは「作っても作っても勝てるEAばっかりだよー!」という方はいらっしゃるでしょうか。
そりゃむりだ!って話ですよね。
もしいらっしゃったら、失礼しました!!声を大にして謝ります。
そしてTAに作り方を教えて下さい(笑

では、どうやってEAを磨いていけばいいのでしょうか。
パラメータの最適化?
まだやっちゃダメでしょ。
パラメータの最適化は最後の最後ですよ。
ストラテジーを向上させた方がナンボもいいEAが作れます!(TAの乏しい経験上ですが…)

では、ストラテジーはどう向上すればいいのでしょうか。

ここで、サイコロの話をちょっと。

あなたはサイコロを5回振りました。
そうしたら、1が5連続出ました。
次にもう一回サイコロを振ったときの1が出る確率はどんなモンでしょう??

高校のときに何だかよく聞いた台詞ですね!!
答えは「1/6」。
サイコロのどの目が出るかは「同様に確からしい」から答えは1/6になります。
「同様に確からしい」懐かしい響きですねぇ。
「独立事象」なんていったりもするし、簡単に「等確率」なんて言ったりもします。

言葉なんてどうでもいいですね、はい。
ストラテジーを向上させる、とは、「同様に確からし」くないポイントを見つけて、お得な動きをEAに入れ込むこと、とTAは解釈してます。

今回も例としてTypeB君に登場してもらいましょう。
(固定0.1ロットでトレードした結果を使用して以降お話します。)

さてさて、このTypeB君、15$以上勝ったトレードが393回あって、その次のトレードで平均-1.02$負けてるんです。
さっきのサイコロの話とおんなじように考えると、15$以上勝ったトレードの後でも、それ以下でも次の勝ち額の期待値は一緒のはずです。
でも、平均で-1.02$負けてるんです。
ちなみに、393回のトレードの平均なので、合計402.65$負けてます。
全12037トレードでの利益が5666.77$なので、実に7%に当ります。

ちょっと整理しましょう。



トレード回数トータル利益平均利益
全トレード120375666.770.47
15$以上勝ち後のトレード393-402.65-1.02


これを見て、「7%の損失を削れるんだったらカットカット!」と言って削ってしまうんだったら今日のコラムの意味が無いってもんです。
こいつがまぐれで抽出されたものなのか、それとも、「同様に確からしくない」優位性を持っているポイ ントを抽出できているのかを確認してから削らなければ、「パラメータの最適化」をしているのと大して変わらず、投資用語の世界で言う「カーブフィッティン グ」って奴になってしまいかねません。

じゃあ、このフィルターが優位性があるのかの検証をしてみましょう。

今回はt検定って奴を使ってみます。
もしかしたら、理学部物理学科や薬学部を出てる人なんかは聞いたことがあるかもしれません。
今日も理屈は抜きに計算の仕方を見てみましょう。

15$以上勝ち後のトレードと、全トレードからそのトレードを除いたものとについて、トレード回数、平均、分散を求めます。
分散ってなんだよっ!って方は、EXCELでVARPっていう関数を使ってトレードごとの収支を選択してもらえれば簡単に計算できます。


トレード回数平均分散
全トレードから下のトレードを除いたもの(A)116440.5213217106.9980
15$以上勝ち後のトレード(B)393-1.024555312.8947



で、「推定母分散」って奴を求めます。
まぁ、あんまり気にせず式に数字を突っ込んじゃってください。

   V = {(A)の分散 × (A)のトレード回数 + (B)の分散 × (B)のトレード回数}
      / {(A)のトレード回数 + (B)のトレード回数 - 2}

今回の場合を計算してみると、113.7393になります。

次に、検定の名前にも付いている「t」って奴を求めます。

   t = {(A)の平均 - (B)の平均}/√[V × {(1/(A)のトレード回数) + (1/(B)のトレード回数)}]

ルートの計算はEXCELでSQRTってのを使えばOKです。
今回の場合を計算してみると、2.826232となりました。

なんだか意味わかんねーよ!意味教えろよ!!って方は「t検定」とググッってみてもらえれば詳しく載ってるサイトがいっぱいありますよ♪

じゃあ、最後に求めた数字の意味を見てみましょう。

  http://www2.vmas.kitasato-u.ac.jp/lecture0/statistics/ttest.pdf

を見てみてください。
なんだか数字が並んでますね。
表の自由度fってところをまず見るのですが、これは「全トレード回数-2」のところを見ます。
今回のケースでは、トレード回数が1万回を越えているので、無限大のところを見てみます。
表を横に見てみると、

0.10.050.020.01
1.6451.9602.3262.576


となっています。
上の、0.1とか0.05とかが「このフィルターが意味無いであろう確率」です。
さっき求めたtより下の数字の方が大きいところを見ればその確率が分かります。
今回のケースでは、t=2.826232だったので、0.01の列の2.576を超えているため、「15$以上取れた後にシグナルが発生してもトレードをしないというフィルターが意味無い確率は1%以下」ということになります。

ということは、余程のことが無い限り、このフィルターは機能すると確率論的に言えるわけです。

-------------------------------

今日のブログは数字ばっかりで数字嫌いな方はちょっとつまらなかったかもしれませんが、TAの趣味と言うことでお許し下さい。
というか、数字が嫌いならチャート見れないっしょ!と言ってみたり。

今日も気付いたらこんな時間!
せっかくいいフィルターができたのにEA組むのはちょっとシンドイです。
明日は結婚お祝いの飲み会だしなぁ。
雇用統計の日に飲み会を入れること自体「FX本気でやってんの!?」って突っ込まれそうです。
なんもいえねーっ!

0 件のコメント:

コメントを投稿