【永久保存版】爆速で結果の出るロジックの作り方教えます

【永久保存版】爆速で結果の出るロジックの作り方教えます

今回は、「最適化」について話をしていきます。

 

「最適化」、これは簡単な言葉に置き換えるのであれば、「手法のブラッシュアップ」ということになると思います。

トレードの手法の中に、変更可能な数字がある時に、「この値をどういう値にしていったら良いのか」っていうのを決めるのは結構大変な作業ですよね。

例えば、

・利益確定の幅をどのくらいにするのか

・損切りの幅をどのくらいにするのか

・インジケーターのパラメーターの値をどのくらいにするのか

…そういったことを決めていくのは、トレーダー自身ですね。

 

インジケーターって様々で、例えば一目均衡表とか、あるいはアリゲーターとか、いろいろこれまで検証してきたインジケーターの中に、こういった、パラメーターに初期値が設定されているようなインジケーターであれば、「その値をどうするか」ってことについて悩むことも無いんですけど、例えば移動平均線とか、エンベロープとかね。

ああいったもの…移動平均線であれば、その「取る期間をどのくらいにするのか」というのは完全にトレーダー自身の裁量に任されていますし、エンベロープの幅、これを「何%にするのか」というのはやっぱりトレーダー自身で決めていかないと、何も決められない・使うことが出来ない、ということになってしまうので。

こういったものをどういう数字にするかっていうのは、凄く迷うところですよね。

 

最初から、こうドンピシャで何か値を決めることが出来るのであれば、それは全然苦労は無いんですけど、全く見当もつかない時にどうしたら良いか。

これは、1つの方法として、

「全部試す」「総当たり的に試す」

…っていうことが方法として有り得るわけですね。

 

これについての賛否両論は多分あると思います。あると思うんですけど、方法として1つある、というのを知っているか・知らないか、というのは凄く大事なことです。

・「知らないからやらない」のか

・「知っているけどやらない」のか

これは大きな違いですよね。

 

今回は、今後皆さんがこれを使うかどうかは分からない、分からないんだけど、もしこの総当たり的に調べる最適化という機能、これ実は凄く簡単に出来ます。

「総当たり的に調べる」っていうのは本当に手軽に出来るので、
この「手軽に出来る」っていうことを知った上で、今後皆さんがこれを使うか・使わないかってことを考えてもらいたい。

あるいは、使うのであれば使う上で、いろんな…ここもまた使い方は腕の見せ所というか、人によって技術の高い・低いは分かれるところですから。

その「使う」っていうことであれば、「使う中でどういう風にやっていくのが良いのか」っていうこと、もうこれから、今日は全部は話せないと思うんですけど、今後別の動画とかでシェアしていきたいと思うので、今回、そのための前提知識として、入り口の知識として、

「こういう最適化という機能があって、総当たり的にパラメーターを試すことが出来るんだよ」

というその一連の流れ、イメージっていうものを掴んでほしいな、と思います。

この動画では、そこまでをやっていきたいと思っています。

 

先程、「この最適化という作業は手軽にやることが出来ますよ」という話をずっとしているんですけど、これを手軽に出来るようにしてくれている、助けになってくれているツールというのが、いつも僕が使っている、このMT4というソフトです。

このMT4というソフトを使うと、なかなか決定するのに今まで困っていたパラメーターの値だとか、それから利益確定の幅、損切りの幅みたいな、そういった値を全部、総当たり的に試すことが出来るんです。それを自動でやってくれるわけですね。

それをこれから、「どういう風にやるか」っていうのを一緒に画面を見ながら説明しようと思いますので、ではここから先は一緒にモニターを見て話をしますので、是非付いてきてください。

最適化作業を全てお見せします

はい、それでは最適化の作業をどういう風にやっていくか、という操作説明ですね。「MT4上でどういう風にやっていくか」というのをこれから話をしていきます。

バックテストを普段やっていますね。あれのやり方にひと手間加えることによって、この最適化をやることが出来ます。

まず、ここでいつも、…これ、「ストラテジーテスター」っていう場所なんですけど、ここでテストをする点に関しては同じです。

これを行う時に…あ、これはエンベロープのEAですね、順張りのテストをしたEA、覚えていますでしょうか? あれを使って、ちょっと最適化をやっていきたいな、と思うんですけど…。

 

まず、最適化をしたい時には、「最適化」というところにチェックを入れます、ここですね。ここに「最適化」というのがあるので、ここにチェックを入れる、と。

この上で、EAにはいろんな変数というのが用意されています。その変数を「パラメーター」と呼ぶんですけれども、このパラメーターを、このエキスパート設定の中で変えていくことが出来るんですね。

多分、システムを自分で書いている人は「こんなの知ってるよ」っていう人ばっかりだと思うんですけど、例えばこういったところで、ロットだったりとか、スリッページだったりとか、こういったものは多分基本的に変えることが出来る値ですよね。

あとは、作る人によって、「何をパラメーター化して自分で変えられるようにするか」っていうのはコードの書き方によって変えられたりするんですけど、書ける人はもうそんなことは知っていると思うので、いちいち説明はしないです。

もし、書かないけど、誰かが書いたものを使う機会がある、とか、市販のEAを使っている…なんて人は、この「エキスパート設定」というところからパラメーターを変える画面を見てみてもらいたいです。

 

今回は、エンベロープのバンドの幅だけ変えられるように、ここにパラメーター化しておきました。

「rate」っていう変数として用意したんですけど、この「rate」っていうものを総当たり的に調べたい、っていう風に考えています。

そういう時は、この「rate」に対してチェックを入れて、「どこからどこまでの値をテストするか」というのを考えます。

0.1から0.5%までの値を、0.05刻みでテストする1例

今回は例えば「0.1から0.5%までの値を、0.05刻みでテストしたいよ」っていうのをやってみたいと思います。

0.1、0.15、0.2。0.25、0.3、0.35、0.4、0.45、0.5まで、テストをするということです。

それぞれについて同じ期間・同じロジックでテストをしていった時にそれぞれどういう成績になるのか、というのを総当たり的に調べる、というのがこの「最適化」機能ですね。

これのやり方については…これは操作の意味の「やり方」なんですけど、いろいろ本当は最適化を上手に行うためのコツというかポイントというのがあったりするんですけど、それに関してはまた改めて別の動画で話しをしようと思います。

 

とりあえずどんな感じになるか見てもらいたいので、進めていきますね。

ここ、設定して…今やったのはチェック入れて、どの範囲で・どのぐらいの刻みでテストを繰り返していくか、というのを今指定したので、これが出来たところで「OK」をクリックします。スタートを押すと、テストが始まっていくんですね。

 

最適化の結果っていうところの、下にタブで出ているので、ここをクリックするといろいろテストがされた結果が下に出て来るんですけど…。

「このパラメーターで行った時はこの値」「このパラメーターで行った時はこの値」っていうのが、ここにこうやって出て来るんですね。一覧みたいな感じです。

 

この時に、成績がプラスにならなかったもの、利益で終われなかったものっていうのは、その最適化結果の中に出てこないです。

恐らく…恐らくですけれども、例えば0.1っていう幅でエンベロープを使った手法というのは、恐らく利益が出ないと思うんですね。分からないですけど。

そういったもの、その3年間のテストの結果、プラスで終われなかったものに関しては、そもそもここに表示されないです。

ここに表示されるのは、同じ期間でテスト結果がプラスになったものが、最終的に良い順に上から順番に並ぶ、というような感じになります。結構時間掛かるんですけどね。

 

今、それで、9通りあるんですよね、パラメーターが。

さっき、0.1、0.15…ってやったんですけど、あれ数が9通りあるんですけど、今、9分の2までやったよ、っていうのがここに表示されています。

今9分の3ですよ、という風に出ているんですけど、この段階で…あ、プラスのやつのやつが出ていますね。

これはレートが0.2ですね。エンベロープの幅を0.2%にした時に初めて利益が出たので、これが1つ、表示されているということです。

他にも利益の出るパラメーターが見付かった時には、ここに追加で出て来る…っていうようなイメージですね。

あ、出ましたね、これは0.25の時ですね。0.25の時は1,265ドル利益が出ていて、パラメーターが0.2の時には612ドル利益が出ているよ、ということが出ています。

 

その隣に総取引数ですね、取引の回数。それから、プロフィットファクタ。これが期待値ですね、1回トレードあたりの期待値。これが、最大ドローダウンを金額ベースで表示した時のもの、こっちが最大ドローダウンを%表示したものですね。10%の最大ドローダウンですよ、という感じです。

 

まあ、0.3に関してはこの前テストした時に利益が出ていたのは知っているので、0.3がここに出て来るのは分かっていたんですけど、0.3より0.25の方がちょっと成績が良いみたいですね。0.35でも利益が…。

 

結構、バンドの幅は大きい方が良いんですね。バンド幅が狭過ぎると、多分ちゃぶついちゃうんだと思うんですけど。

まあ、そんなことで、0.2を越えたぐらいから、このロジックは利益が出せるようになってきている、ってことなんですね。

これがあまり大きくなると、今度これ、ブレイクアウトの手法なので、エントリーが遅くなり過ぎて、あるいは勝てるようなところで入れない、っていうことも出て来るので、これ、バンドの幅が大きくなればなるほど取引の回数は減っていく傾向にありますよね。

まあそれは当然ですよね、ブレイクする割合が減ってくるのでトレードの回数は減っていく、ということになります。

 

この最適化って、皆知っているのかと思っていたんですけど、結構知らない人が多くて。バックテストする時に何か1回1回パラメーターの欄を開いて…。

…あ、終わった。まあいいや、言い始めちゃったので最後まで言うと…。

パラメーターのさっきの設定画面をいちいち開いてテストして、またパラメーターの欄を開いて変更してテストして、終わったらまたパラメーターの欄を開いて変更してテストして…みたいなことをやっている人がいたので…。

これ、やれば1発ですよね。勝手に次の値・次の値…って調べてくれるので、この方が楽です。

全てのパラメーターが一発で最適化できる

今回はね、バンドの幅を最適化の変更するパラメーターとして指定しましたけれども、
例えば移動平均線のパラメーターでも良いですし、テイクプロフィット、ストップロスの幅でも良いですし、何でも出来るんですよね。

だから、自分が調べたいものをこうやってパラメーター化して最適化すると良いと思います。

こんな感じになりましたね。

これ、全部終わると、良い順に上から並ぶんですよね。さっきと並び順変わったの分かりますか?

最初ね、0.2っていうのが一番上にありましたよね。これが、全部調べ終わった時には、利益が出たやつだけを良い順に並べていく、ということになります。

 

正直、この前エンベロープ、テストしましたけど、あれ、値、適当だったんですよね。

ちゃんと調べて、こういうことをやって良いやつにしよう、みたいなことを全くしていなくて、適当に選んだんですけど、0.3っていうのはこの中では3番目、真ん中ぐらいの値みたいですね。

 

こういう結果を見た時に、どの値を…じゃあこのテストを受けて、どの値を実用に回すパラメーターにするか、っていうのがまた悩みどころで。

これね、大体、この回だったら、この0.25っていうのが一番良い値になっているわけですけれども、「じゃあ0.25で行こう」ってことだと上手くいかないケースが多いです。

「オーバーフィッティング」っていう現象がまたあって…これについてはまた話が長くなるので、改めてしたいな、と思うんですけど…。

 

まあとにかく今日は、やり方だけお伝えしました。

 

「こういう機能があるよ」という紹介だけしましたけれども、これ、最適化というのは諸刃の剣です。

これによって得られたデータの使い方を間違えると、結構使えないことになっちゃうんです。

バックテストで勝てたはずのものが、将来の実運用においては勝てない…みたいなことが結構起きたりするので、「あまりこの最適化を安易に用いない方が良い」ってことだけとりあえず押さえておいてください。

…「安易に用いる」というのは、「この今出ているランキングの一番良いやつをそのまま信じて使う」みたいなね、そういう使い方はしない方が良いですよ、ということです。

そのやり方については、また動画1~2本分のボリュームのある話だと思いますので、改めてしたいと思いますけれども…。

とりあえず今回はこの流れ、押さえておいてください。「こんなやり方があるよ」ということですね。

 

あと、そうだ、グラフなんかも出るんですけど、今回試した数が少ないのでこれしか点が打たれていないんですけど、0.2、0.25、0.3、0.35、0.4っていう値がポイントとして打たれているんですね。

縦軸が利益、横軸がそのパラメーターですね、パラメーターの番号ですね、インデックス番号みたいな感じ。

それぞれの利益がこの辺、この辺、この辺でしたよ、という。これ、線で繋いでくれた方が分かりやすいと思うんですけどね、ポイントだけ打たれています。

…こんなグラフも表示することが出来るよ、というのもありますね。

まあこんな機能があるよ、ということだけ今日は押さえておいてください。

…ということで、以上になります。

まとめ

はい、如何だったでしょうか。

何となくこのやり方を一緒に見てもらって、「これは便利そうだな」っていうところまで分かってもらえれば今日のところはゴールとしてOKかなと思うんですけど…。

 

先程少し言ったんですけど、最適化というのは諸刃の剣です。使い方を間違えると、結構トレードが危険な感じになります。

まあ何でもそうなんですけど、「モノは使いよう」って言葉がある通り、最適化に関しても、使いようが凄く大事で。

結構、最適化自体を否定するような向きも結構あったりするんですけど、「最適化が悪」なのではなくて、その最適化によって得られたデータをどう使うかによって、これは善にも悪にもなり得る、ってことなので、今日はそこを、「どう使ったら良くて、どう使ったら悪くて」っていうところまでは話が出来ていないんですけど、これについてはまた別の機会で、より深めた話が出来ればいいなと思っています。

 

今日のところは、その入り口として最適化という機能があるということ、その最適化は普通にアナログでやっていたら物凄く大変なんだけど、このMT4っていうツール・プラットフォームの中でやるとこんなにも手軽に出来るんだよ、というところ、これだけ分かっていただければこの動画としては大成功だと思っています。

 

ということで、今回の動画は以上になります。

今回の動画が少しでも良かった・勉強になった・役に立った、と思っていただけた方は、高評価・チャンネル登録を是非よろしくお願いします。

 

それから、ちょっと今日ね、かなり技術的な話、テクニカルな話になったと思うんですけど、何か「これが私のめちゃくちゃ得意分野です」みたいな人がこの動画を見てくれている人の中にもしいらっしゃいましたら、その最適化のやり方とか、いろんなそういうところ、関連した知識を持っている人は、是非コメント欄とかリプライ欄に寄せていただけると嬉しいと思います。

 

それでは皆さん、ごきげんよう。