EAとインジケーターの目的
人間には、チャート上の情報だけでは判断に悩む場面が多々あります。
それを一定のルールに基づいて視覚化することでトレードの補助をするツールがインジケーターです。
インジケーターはそれ以上でもそれ以下でもなく、単純に人間の補助をするためのツールです。
売買シグナルを表示するためだけのインジケーター、損切りポイントやトレンドの把握をするためだけのインジケーター、など数えだすとキリがありませんが、あくまでも補助ツールです。
一方、EAというのは、売買ルールを手順化して自動で売買するようにしたツールです。
勝てるEAと負けるEAが二分化されて、僕達の周りにあり、簡単に手に入るEAはおそらく負けるEAです。
どうして負けてしまうEAになってしまうのか?
トレードルールが間違っているからなんですね・・・
間違ったルールを手順化していても間違った結果にしかなりません。
EAの目的はいかにリスクを低く長期間に渡り資金を増やし続けるEAが勝てるEAと僕は定義しています。
と難しい事を書いているようですが、要はただの売買補助のツールであり、手順化しただけのものって事を言いたいだけです。
どんなインジケーターでも使う人のルールによっては勝つこともできるし負けることも出来る。
そして僕たちは結構簡単に負ける使い方が出来てしまう( ;∀;)
つまりルールが未完成ということなんでしょうね。
EAを出来るだけ簡素化するためのポイント
EAを作ったことがある人は誰しも経験したことがあるのが「スパゲッティコード」です。
要するに色々書きすぎて、後で見返した時にわけが分からなくなるプログラムのことです。
例えば、売買シグナルAとBとCがあり、これらの複合条件で売買をするEAがあったとします。
もちろん、EAに書いて実装してしまうことも出来てしまいますが、「if」などの条件分岐とかループ処理とか処理がネストしてくるとかなり読みづらくなります。
自分で書いたコードなので読みづらくても誰に迷惑をかける訳でもないので、問題はないのですが、後で読み返した時にわかりにくいコードってのはどこかバグを産みやすいんです。
さらに、コードの修正にかなり弱く、チョッろ修正しただけで、テスト結果がガラッと変わったりしてコードの修正によるロジックへの影響がかなり大きくて扱い辛いんです。
では、どうするか。
僕はEAをを作る時にこんなイメージで作ります。
3個のシグナルがあったとして、それらを独立したインジケーターにします。
そして、EAからその独立したインジケーターを呼び出してシグナルだけをEAで使う感じですね。
コレをすることによって何が嬉しいのかというと、修正が超ラクチンで、EAに影響があまり無く、実装コードも少なくなるので簡素ができて読みやすくなります。
今はどうか分かりませんが、オブジェクト指向という開発手法があって、思いっきりその時期にSEをしていたので、部品化したり依存関係を断ち切ったりするプログラムの書き方で育ってきたので、どうしてもコードを簡単にして部品化してしまう癖がついています。
インジケーターを部品化するのもその名残ですw
他のEA開発者さんはどうか分かりませんが、僕は大体いつもこんな感じやっています。
成績が悪い部品を見つけることも簡単ですし、トレードルールに問題があるのかも追求しようと思えば追求できる。
少なくともスパゲッティコードよりも原因特定にかかる時間は少なくて済むと思っています。
長く付き合うかもしれない自分の作ったコードです。
もちろんFXに取り組む時期もあれば休憩する時期もあります。
いつコードを見なおしてもすぐに読み返せるようにしておいたほうが自分のためにもいいかな〜と思う今日このごろです。
夏枯れ相場
お盆ウィークに入ってからかなり取引量が少なく、ほとんど値動きはありませんね。
商いが薄い時に、HFが仕掛けてくるとも考えられますが、直近2ヶ月で動きすぎたので、今年のお盆はまったりモードになるかもしれないですね〜。
こんな時にムキになってチャートとにらめっこしても大した利益が見込めないので、思いっきって今週は休む位の気持ちでいたほうがいいかも(´∀`*)
ちなみに最近僕はなんやかんやインジケーターやらEAをいじっています。