MT4のEA開発の世界
今日は5月31日。
5月も終わりですね。
早いものですね〜。
ここ最近はMT4のEA開発にばかり時間を割いていますが、開発をメインに仕事をしているとアッという間に時間が経ちますね(^-^;
開発の仕事自体は非常に好きなので、好きな事をしているからか時間が過ぎるのが早く感じるんでしょうかね〜。
EA開発を初めてすぐは
「チャート上でシグナルどうりに売買できた!」
という事だけでも楽しいですし嬉しかったのですが、そのうち普通に投資手法のロジックを組めるようになってくると
「自動売買はできるけど、利益の出るプログラムが書けない・・・」
というEA開発の壁というか肝にぶつかります(^-^;
MT4のEA開発って「きれいなプログラムコードを書ける」事にほとんど意味なんてなくて(メンテナンスを考えるときれいに越した事はないですが)、『稼げるプログラムを書けるか?』こそが正しいというか正義というか。
稼げないEAのプログラムコードを幾らたくさん書いたところで誰も評価してくれない世界。
それがEA開発の世界です。
作ったEA達
稼げるコードを書く必要が分かったところで、
「じゃあそんな簡単に稼げるコードって書けるの?」
という疑問が出てきますが、答えとしては
「そんな簡単に稼げるコードが書けるなら、みんな自動売買やってるわ!」
という感じです(^-^;
色んなテクニカル指標がEA上では簡単に呼び出すことが出来ますので、よくFXの本に載っている移動平均線、ボリンジャーバンド、RSI、RCI、MACDを組み合わせてエントリーシグナルを出して成行でポジションを持ったり、逆指し値で両建てしてみたりといった事を試します。
でもですねぇ、なかなか利益でないんですよ(^o^;
FXの書籍にはよく載っているじゃないですか。
「長期移動平均線を短期移動平均線がクロスして追い越したら買い(売り)!」
とかって。
ゴールデンクロスですよね。
でも、ゴールデンクロスのタイミングで自動売買しても利益なんか出ません。
他にも
「RSIが下から30を上回る時に買い、上から70を下回る時に売り」
とかってよく書籍に載っているじゃないですか。
でもですね、これも普通に利益出ません(^-^;
「じゃあ複数のテクニカル指標を組み合わせて、全部がシグナルを出している時だけ売買すれば良いんじゃないの?」
という思いが出てきます。
このアイデアはFX投資手法募集の方にも応募して頂きましたが、これもダメです。
利益は出ませんでした(-_-;
何でしょうね〜。
FXの書籍で紹介されている
「このテクニカル指標は効果あり!」
と謳われているテクニカル指標がことごとく、自動売買においては効果を発揮しません。
これは自動売買のプログラム開発に取り組んでみて得た成果の1つかもしれません。
色々なテクニカル指標の出してくれるシグナルをそのまま使っても効果が出ないんです。
ついつい大した検証もせずに、色々な書籍のFXの投資手法をリアルトレードで試していた過去の自分に言ってやりたいです。
「テクニカル指標を鵜呑みにしたトレードはやめとけ!損ばっかりだぞ!!!」
と、大きな声で。
まぁ、もちろんFX書籍もテクニカル指標が示すシグナルどおりに売買せよとは言っていなくて、経済指標発表時は避けた方が良いですとか、大きな市場の流れ(好景気・不景気など)も加味してトレードせよと言っているので、まぁテクニカル指標ばかりに走ってトレードする自動売買がイマイチという部分もありますが。
EAで損小にするコツ
そんなEA開発を続ける中で、色々なアイデアが頭をよぎります。
もちろん思いついた投資アイデアはすぐに実装してバックテストをかけます。
大抵はきれいな右肩下がりの投資資金推移が出てきます(笑)。
こないだ作ったEAもそうですね。
自作EAでTickが10連騰したら「買い」、10連続下落したら「売り」というTick順張りEAを作ってみました。
記事はこちら。
ブログで公開していないEAも含めると、既に50本くらいのEAを作りました(^-^;
作っては捨て、作っては捨て、みたいなスクラップアンドビルドを一人でやっている感じです。
まぁ幸いなのはソースコードを捨てるだけで、実際のゴミは出てこないところがIT開発の良いところですか。
で、日々EA開発を行っていく中で色んなアイデアが閃くのですが、そんな中で
「これは勝てるようになるんじゃないか!?」
と思えたロジックを閃きました!
すぐに組んでみます。
・・・
できた!
バックテストを走らせます・・・
ババン!
キター(*^_^*)!!!
投資資金推移のグラフが右肩下がりではなくて、ちょっと減っては増えて、ちょっと減っては増えてを繰り返しているのが分かるかと思います。
利益の増減に浮き沈みがありますけども、当初投資金額よりは増えています(^-^)v
他のEAにも取り入れてみましょう!
・・・
できた!
ちょっと下げた時期もありますが、割と右肩上がりに(^^)v
よーし、こうなったら割と自分の最良トレードに近いロジックにぶち込んでみよう!
・・・
でけた!!
こちらは10年間のトレード結果になります。
おぉ!
結構増えている!!!
もちろん、これはデモ口座でのバックテスト結果なので、リアルトレードでEAを稼働させた時にはもう少し悪い結果になるかもしれませんが、いずれにしても希望の光が見えてきました!
これまでは作っても作っても右肩下がりだったのが、今回閃いたロジックを入れただけで負けなくなってきましたからね〜。
投資では勝つことも大事ですが、それ以上に負けないことがもっと大事です。
負けないこと。
それは言い換えると、損失を出来る限り最小限に抑えること。
言葉で言うと簡単に聞こえますが、実際のトレードでこれを実行するのは至難の業です(-_-;
多くのトレーダーが損失を最小限に抑える事が出来ずに、損失を最大限に大きくして敗退していきます。
先日は最近人気のブロガーさんが日経225の先物取引で追証を重ね重ねして損失を極限まで大きくして負けてしまいました(>_<)
損失は小さくすべきなのです、そんなの皆、頭では分かっています。
しかし、自分のポジションの損失が大きくなってくると途端に
「いや、もう少し耐えたら反転するだろう。プラ転するまで耐えてみよう」
とかってなってしまいます(^-^;
冷静な判断なんて吹き飛んで、自分の保有しているポジションに固執してしまいます・・・。
そうならないガードが必要なんです。
で、今回の閃いたロジックではこのガードを掛ける事が出来ます(^-^)v
どんなロジック
ちょうど閃いたロジックの解説をしてくれているブログ記事があったので紹介させて頂きます。
ゆきひろ (id:yukihiro0201) さんのブログ記事です。
2.時間による損切り
これは以下のブログの8番目に出てくる損切り方法です。
参考:FXの損切り方法10選まとめ!自分に合ったロスカットを探す
このFX手法ではエントリーから1時間経った段階で決済を考えます。
たとえば1時間後、ポジションがマイナスならその時点で損切りをしますし・・・
ポジションがプラス(しかし利食いポイントまで行っていない)なら、損切りラインを建値にズラすのです。
と、上記で紹介されている損切り移動である
ポジションがプラスに転じたら、損切りラインを建値にズラすのを行っています。
ここを外部パラメーターで細かい調整はできるようにした上で、トレイリングストップで徐々に損切りラインを切り上げていって、損切りラインを建値の2pips上くらいで止まる様にしました。
たったこれだけの事を行っただけではあるのですが、自動売買の結果が大きく改善されました!
投資の鉄則である『損小利大』の内の、損小を地でいくロジックです。
今回は自動売買のEAに取り入れましたが、裁量トレーダーの方もこの損小ロジックだけを実行するEAを使えば、負ける回数を減らす、引いてはトレードの試行回数を増やす事ができると思います。
ご要望が多ければ、裁量トレーダーの方向けに機能限定の損切りガードロジックEAを公開させて頂きますので、皆さんのご意見・ご感想をお寄せ下さい。
よろしくお願いします。