こんばんは。
ようやく今週はEAラボウィークです。アセンブラの頭をCに戻して悠々と頑張ります。
来週半ばにアンケートの集計および一部公開を致しますが、パラ~っと眺めていて思うことと最近FORUMを見ていて思うことがあり、気になったので書きます。
EAラボラトリーの研究員募集では初心者さんにどんどん参加してもらうように働きかけをしています。それは初心者さんの意見・検証というのがとても重要ではないかと考えたからです。私のようにFXに半分入り浸りの人間は単純・純粋に物事を考えられなくなっている可能性がありまして、その失われていくフレッシュさとでもいいましょうか、そういうものを補う意味でも、また、MetaTraderでEAによる自動売買を行う人たちの流れというのを感じるためにも熟練者だけでEAの検証などを行っていくことは正当ではないと思っています。
そんな大切なMetaTrader初心者研究員さんのために、トレードにおいて基礎となるプロフィットファクター(PF)の考え方を書こうと思います。FXトレードを始めてまもなく、MetaTraderでの自動売買に手を付けた方が結構いらっしゃるようなので、ストラテジーテスターの結果を見て感想を述べるだけではなく、PFの計算をきちんと覚えてパラメータの設定の参考にしていただければと思います。この計算がわかっていない人は、カーブフィッティングを起こしやすくなるはずです。以前カーブフィッティングという言葉をブログで使いましたが、実感がわかなかった方もいらっしゃるのではないでしょうか?「そんなの知ってるやい!」って思う方も確認の上でも是非最後まで読んでください。
プロフィットファクター(PF) = 総利益 / 総損失
です。これは簡単ですね。得にEAの世界ではPFは2以上あると優秀と言われています。では問題です。
リミットが4pipでストップが32pipで必ずどちらかで決済するトレードの場合、PFが2になるようにするには勝率は何%必要でしょうか?
答えは約94%です。
きちんと求められますか?limitを変化させてPFが2になるような勝率を求めると以下の表になります。
limit(pips) | stop(pips) | 勝率(%) | profit | loss | 1トレードあたり期待獲得pips | PF |
1 | 32 | 98.46 | 0.98 | 0.49 | 0.49 | 2.00 |
2 | 32 | 96.97 | 1.94 | 0.97 | 0.97 | 2.00 |
3 | 32 | 95.52 | 2.87 | 1.43 | 1.43 | 2.00 |
4 | 32 | 94.12 | 3.76 | 1.88 | 1.88 | 2.00 |
5 | 32 | 92.76 | 4.64 | 2.32 | 2.32 | 2.00 |
6 | 32 | 91.43 | 5.49 | 2.74 | 2.74 | 2.00 |
PFを2出すには勝率が94%ないといけないことになります。また、「limitを2~6あたりでは勝率が90%以上あれば勝てるトレードなんだなあ?」という感じのことは読み取れますでしょうか?
ではちょっと見方を変えて、勝率94%で各limitでのPFはどうなるかを見て見るとこうなります。
limit(pips) | stop(pips) | 勝率(%) | profit | loss | 1トレードあたり期待獲得pips | PF |
1 | 32 | 94 | 0.94 | 1.92 | -0.98 | 0.49 |
2 | 32 | 94 | 1.88 | 1.92 | -0.04 | 0.98 |
3 | 32 | 94 | 2.82 | 1.92 | 0.90 | 1.47 |
4 | 32 | 94 | 3.76 | 1.92 | 1.84 | 1.96 |
5 | 32 | 94 | 4.70 | 1.92 | 2.78 | 2.45 |
6 | 32 | 94 | 5.64 | 1.92 | 3.72 | 2.94 |
どうですか?limitを1減らしただけで、同じ勝率でトレードを考えたらPFは1.5足らずになってしまうのです。
そして2以下では負けになってしまいます。
もうお気づきの方もいらっしゃると思いますが、limit=4,stop=32 というのは、Clab_EURGBPのデフォルト設定です。
このEAの対象通貨ペアである、EURGBPとEURCHFはスプレッドが非常に重要です。毎日チャートを眺めていれば limit=4というのがどうなのかいろいろ考察できると思います。
また、EAラボラトリーのEAにはTPが2種類あります。VirtualTPとHiddenTPですね。特にClab_EURGBPは、一瞬の乖離を狙うEAですのでエントリー後のTP方向への戻りもまた一瞬です。そして大きいのが普通です。表現が間違っていると思いますが、勢い余ってTP以上のprofitが望める場合も少なくありません。そんなときのために2種類あります。
以前も書きましたが、HiddenTPは注文時にLimitを打つものであります。そして、VirtualTPはTick毎に監視して決済を図るものであります。ブローカーに合わせて是非有効活用して下さい。
engineeeerのTP設定は多くがVirtualTP=3,HiddenTP=5です。
このようにPFの計算をきちんと頭に入れておくことで、バックテストもきちんと行えますし、テスターを走らせ無くても目処がたちますので、検証の時間短縮にもなります。あまり重要視してい方がいらっしゃいましたら参考にして下さい。
今朝FORUMで、これに関連するような書き込みがたろー研究員によってありました。
www.ea-labo.com/support/viewtopic.php
いい考察だと私は思います。面白いことにengineeeerのリアル使用でのSLも50にしてあります。いろいろ試して見るべきですね。そのときも当然パラメータを変化させる意味というのをよく考えて弄ってください。ただ、PFをあげることはただのカーブフィッティングになってしまいます。フォワードテストでは無意味になります。
また、「50はちょっと大きいな~」と思う方。engineeeerと同じですね。そういう心理が邪魔をする裁量判断は大DDや塵が積もって気づけばもったいないDDを生みます。バックテスト結果に忠実にパラメータをセットしてあとはEAに全て任せます。そうすることが出来るようになってから負け組から脱出することが出来ました。いまではもう全く裁量をトレードをする気がおきません。
今回はPFを題材に取り上げました。
EAの公開パラメータは全体のごく一部のパラメータですが、トレードにおいて基礎でありいろいろと検証する必要があると思います。是非いろいろな視点での考察をお待ちいたしております。
engineeeer様、みなさん、こんばんわ。
PFについての記事とても勉強になりました。
2年前まではインディケータによる裁量トレードでしたが、ここ1年位はEAによるトレードでなんとなくPF2以上であれば、優秀なEAという感じでしたが、もっと深く勉強せねばダメですね。
これからもengineeeer様、みなさん宜しくお願いします!!
engineeeer様おはようございます♪
酔いどれnamiです!
非常に分かりやすいPFの記事ありがとう御座います!!
実はいまいち理解出来ていませんでした(TωT)
おバカなnamiでもピーンときちゃいました(*゚ロ゚)ハッ!!
検証の仕方も悩んでいたのでヒント頂きました♪♪
またFORUMに検証報告しにきますっv( ̄∇ ̄)v
こんにちは。参考にしていただけたことをうれしく思います。たまにはこんな感じで初心者の方へもEAに入り込みやすいようにブログを書いて見ますね。
こんにちは。いえいえどういたしまして。FORUMでのご活躍を楽しみにいたしております。初心者の方が大勢いらっしゃいますので、たいしたことではないと思うことでも是非書き込みして下さいね。きっとだれかのお役に立つはずです。ギブアンドテイクですよ。
こんばんは。
面白い話、ありがとうございます。
プロフィットファクターとパラメータの関係から
カーブフィッティングへ落とし込む話を、
ここまで定量的にできる方は流石だと思います。
・・・話としてはセミナーでも出ますが、ここまで
具体的には言いませんね。商売上の戦略かもしれませんが。
ちなみに私は、今までリスク管理を主眼に、
ドローダウンからレバレッジのコントロールに、
重点を置いていましたので、実はプロフィットファクター
は全く気にしていませんでしたので、結構参考になります。
O'Shoさん、こんばんは。
デフォルトパラメータでもだいたいの安定は図れているとは思うのですが、あまりにデフォルト使用の方が多いのと、パラメータを変更しての検証などが少ないので、これでは検証の意味が無いなと思いブログ記事にしてみました。
また、便利なシステムトレードと言えども、プログラムの基本は裁量トレードの基本で成り立っているものなので、大事なPFの考え方というものを確認して頂こうと思ったこともその理由であります。
ところでO'Shoさん、研究員申請は受理しておりまして仮認定状態です。アカウントネームのお返事をもらっておりませんので認定完了に至っておりませんがそのままでよろしいのでしょうか?
engineeeer様
>ところでO'Shoさん、研究員申請は受理しておりまして仮認定状態です。アカウントネームのお返事をもらっておりませんので認定完了に至っておりませんがそのままでよろしいのでしょうか?
すみません。
自分のロジックのメンテナンス方が忙しく、現在、ご協力できる状態ではなさそうです。申し訳ありませんが、現状のままでよろしいでしょうか?
了解いたしました。