著書のご紹介
![]() |
▼高機能ソフトが切り開く! 「FXメタトレーダー入門」 うわさの高性能オールインワンFXソフトを徹底紹介。ようこそ“メタトレーダー”の世界へ! |
![]() |
▼MT4開発過程を段階的に学ぶ 「FXメタトレーダー実践プログラミング」 FXメタトレーダー入門の続編としてプログラミング機能をできるだけ多く紹介 |
2012年05月15日(火)
売買システムの最適化(2) [MetaTrader4]
「売買システムの最適化」というテーマを選んだものの、実はこのテーマ、深くて重いのでした。
どこまで踏み込めるかわかりませんが、今回はとりあえず、浅くて軽いものを・・・
システムの最適化としてすぐに思い付くのは、売買ルールの中で使われる各種テクニカル指標などのパラメータの最適化でしょう。
例えば、売買ルールとして移動平均を使っていれば、その期間を変える、などです。
MetaTrader4(MT4)やMetaTrader5(MT5)では、売買システムのパラメータを簡単に変えることができるようになっています。
例えば、
int MAperiod = 20;
として、変数MAperiodを宣言した場合、このプログラムをコンパイルすると、MAperiodという変数には初期値として必ず20が代入されてしまい、この初期値を後から変えることはできません。
ところがMT4の場合、宣言の前に「extern」というキーワードをつけると、プログラム実行時にその初期値を変更することができます。
extern int MAperiod=20; // 移動平均の期間
またバックテストの際も、ストラテジーテスター画面の右上のボタン「Expert properties」を押すと
のような画面が出てきます。ここで、パラメータを変更したり、最適化させるパラメータの範囲を指定したりします。
MT5の場合も同じなのですが、キーワードが「extern」ではなく、「input」に変わっています。
「extern」というキーワードはC言語にもあるのですが、これと用法が違うので、混同しないようにキーワードを変えたのではないかと思います。
input int MAPeriod = 20; // 移動平均の期間
このように input を付けて宣言したパラメータは実行時に変更することができるし、ストラテジーテスターの画面では、パラメータというタブを押すと、
のようにパラメータを入力したり、最適化の範囲を決めたりすることができます。
ただ、MT5の場合、変数名のところが実際の変数の名前ではなく、変数を宣言したときに付けたコメントになっています。もちろんコメントを付けなければ、変数名が表示されます。
変数名は英数文字だけだとわかりにくいので、コメントでわかりやすい説明を付けておけば、どのパラメータがどういう役割なのかが一目でわかります。
ちょっとしたことですが、パラメータの数が多くなってくると、重宝するのではないかと思います。
但し、この場合、コメントを間違って書いてしまうと、変更したくないパラメータを変更してしまうことにもなりかねません。コメントを間違ってもエラーにはなりませんので、くれぐれも注意してください。
システムのパラメータは何でもかんでも変えればいいということではありませんが、決めれらない場合は、とりあえずextern やinput を付けた変数として宣言しておくとよいでしょう。
Posted at 13時28分 パーマリンク
2012年05月08日(火)
売買システムの最適化(1) [システムトレード]
GWも終わったので、また連載記事を始めたいと思います。今回のテーマは「売買システムの最適化」です。
「最適化・・・」いい響きですね。何か完璧なシステムができるっていうイメージがありますね。
私もシステムトレードを始めた頃、最適化を極めれば聖杯ができるかも、なんて幻想を抱いていたものです。
まあ、それが幻想だとわかってからが、システムトレードの本当のスタートですけどね・・・。
さて、「最適化」というのは、数学的な用語としては、評価関数を最大化、あるいは最小化するためのパラメータを求めるということで、非常にシンプルな考え方です。
また最適化は実用的にも重要で、ソフトでもハードでも実際のモノづくりには欠かせないものです。
ところが、システムトレードにおいては、そういう最適化はカーブフィッティング、あるいは、オーバーフィッティングと呼ばれ、忌み嫌われます。つまり、最適化を行った期間でしか有効でないシステムになってしまい、それ以外の期間では全く機能しないものになってしまうからです。
では、最適化は悪者かというと、そういうわけでもありません。売買システムを作成する過程で、パラメータを変えたり、テクニカル指標の種類を変えたり、とやってるのは、最適化をやっているようなものです。最適化は避けては通れません。
結局、システムトレードにおける最適化というのは、「諸刃の剣」なわけです。使い方によっては、メリットにもなるし、デメリットにもなるということです。
なので、売買システムの最適化は、「カーブフィッティングにならない程度に」という、なんとも曖昧な表現になってしまうことが多いのです。
今回の連載記事では、売買システムの最適化はこうすべき、と断言しにくいところもあるので、私自身がシステムの最適化の基礎に戻ってみたいと思っています。初心に戻って、敢えてカーブフィッティングをさせてみる、など実験的な記事も考えています。
もちろん、MetaTrader4やMetaTrader5のストラテジーテスターの機能も使いながら説明していきますよ。
ただ、例によって、連載の全体構成はできていないので、その場の流れで、記事が進んでいくこともあるかと思います。実際のシステムトレードには参考にならない方向に行ってしまうかもしれませんので、その点は悪しからず、ご了承ください。
Posted at 17時45分 パーマリンク
2012年05月01日(火)
トレーダー向けの出版物について [シストレ一般]
プログラミングの記事が続いたので、今回はプログラムコードの出てこないお話を。
最近、日本でもシステムトレードは一般に知られるようになってきました。システムトレードに関する書籍や、雑誌も書店に並んでいます。
ただ、システムトレードに関して詳しく調べようとすると、パンローリング社から出版されている海外の投資本の日本語訳や、海外の情報そのものに頼らざるを得ないというのが現状です。
もちろん、日本でトレーダー向けの良書がないわけではありませんが、絶対数が圧倒的に少ないのだと思います。
ところで、海外ではトレーダー向けの雑誌の一つに「Active Trader」というのがあります。米国では一般の雑誌と並んでニューススタンドで売られており、かなりポピュラーなもののようです。
この雑誌、システムトレードに関する記事も豊富です。そんなに難しい理論分析はされていないのですが、明らかに初心者向けではなく、中級者以上向けの内容となっています。
残念ながら、この雑誌はオンラインベースでは提供しておらず、印刷物のみなので、日本で購読するには郵送料などが必要となります。
ちなみに、以前にこのブログで紹介したことのある、FX関連の無料オンラインマガジン「Currency Trader Magazine」もActive Trader Magazine から出版されています。こちらはオンラインなので簡単に入手できます。
日本でもこのレベルの雑誌が出ないかなと思っているのですが、まだ自分で売買システムを構築するトレーダーの数が少ないのでしょうね。
このままだと、システムトレードに関しても、日本はガラパゴス化するのではないかなと思います。
Posted at 14時46分 パーマリンク
【 過去の記事へ 】












