https://keichang.hatenadiary.jp/archive

0から始めるFX自動売買

(ほぼ)放ったらかしで月利3%を目指します。

EA開発ができるようになるまで(私の場合)

EA開発をコツコツやっている今日このごろですが、最近、ブログやTwitterでカワセ係長のEA開発塾をオススメしてる人がたくさん出てきたので、カワセ係長の開発塾どうなの?というのを「今、私が開発を始めたタイミングなら入るかな~どうかな~」と考えたので、自分の体験も絡めて、外野からコメントを残しておきます。別に悪意はなく、この記事のほとんどは、「私がどうやってEA開発を学んだか(学んでいるか)」についての紹介です。

カワセ係長のEA開発塾ってどうなの?

といっても、実際に受講したわけではないので、カワセ係長のEA開発塾のレビューがかけるわけではありません。ただ、EA塾の価格がいくらだったか忘れましたが、私の記憶だと、かなり高額だったように思います。10万だったか、30万だったか、忘れましたが、そういう単位だったと記憶してます。

別に、批判するつもりもないですし、入る方を止めようとも思いません。そもそも中身も知りません。なんなら値段もよく知りません。知ってる人がいたら教えてください。ただ、この記事では、そんなに高額を払わなくても、EA開発を学ぶ方法は他にもありますよー、ということを紹介したいと思います。

カワセ係長のEA開発塾については、なんとも言えないんですが、アフィリエイト報酬が多いという噂を聞いたことがあります。Angelシリーズ開発者のからぶすさんだったかな?Twitterで、カワセ係長アフィ案件で何百万を稼いだって言ってたような気がします。なので、あまりにEA開発塾をプッシュしてる人は、、アフィ狙いを疑ったほうがいいかもしれません。いや、別にそれはそれでいいと思うし、批判する意図はないのですが、高額アフィリエイトというのは、一般的にそういう性質があるものです。ま、高い金額を払ったんだから、頑張らざる得ない!みたいな、ライザップ方式的な要素もあるので、人によっては高額であることがいいプレッシャーになるのかもしれませんし、単純に値段が高いから悪いということはないと思います。私は高いの嫌いだけど。。

あ、僕も係長のメルマガのアフィはっとこー笑 開発塾のアフィは知らんです。。

メルマガは無料だし、普通に参考になることが書かれてます。たまにしか読んでないですが、怪しげな儲け話が紹介されたこともあります。実際に儲かったのかどうかは知りません。あと、私はいまだに「ダブルスチール投資法」が何かは分かってません笑 でも、EAバンクにはとてもお世話になってるので、係長が嫌いということは一切ないです。(急にゴマすりモード

係長案件については、色々書きましたが、実際は知らないことだらけなので問題あればこの部分は削除します。正確な情報が気になる人は自分で調べてください!(投げやり。

私の開発力

今、私のスキル的には、まだ初心者の域を超えないとは思いますが、MQL4のコードはある程度読めますし、こんな感じで作りたい、と思えば、だいたい形にできるようになってきました。

例えば、こういう感じで、トレンドチャネルを自動描画するサポートツールも自力で作れました。結構、クセがあって苦労しましたが、そういうのもググりながらほぼ自力で解決できました。 チャネルが広がったらを自動的にチャネルを更新してくれます。

例えば、このチャネルの上N%のエリアで、RCIの形状を指定して戻り売り仕掛け、みたいなことができるツールです。

また、こんな感じの自作EAも出来上がりました。まだ調整中ですが、2014年以降はギュイーンと右肩上がりで、フォワードもいい感じで、すでに2Lot運用してます。 f:id:keiji_kc:20200515121410p:plain

このEA自体は、だいぶシンプルなロジックなので、これは開発力というより、温めていたアイデアが形になった、という感じのEAですが。

そして今、MQL4をある程度触れるようになって思うのは、MQLはクセに慣れれば、言語自体はそこまで難しくはない、ということです。

最近、プログラミングの楽しさに目覚めて、N予備校でNode.jsの触りをやってるんですが、MQLは開発環境を整える必要もないので、Node.jsと比較すると、とてもハードルが低くて、簡単です。

EAづくりのプログラミングでやることは、ほとんどが「売買価格を求める」という処理だけなので、ほとんどの処理は思ったよりは難しくありません。プログラミング入門にも最適だなーと思ったりします。(実際に、自分が作ったEAで負けると損するし、現金がかかってる分、必死になれるので、題材として優れてると思います。笑)

今だから思う、これで十分!EA開発。

私自身は、多少の紆余曲折がありましたが、今、学んでから振り返って思うう、「開発初心者がEAを作れるようになるまでのステップなこんな感じが理想的かなー」という内容をまとめておきます。

ステップ①: まずはこの本。

豊嶋さんのコレです。開発を一切やったことがない人でも、この本のコードを一つずつ真似していけば作れると思います。

この本が全ての基礎になると思います。この本だけだと、全てを実現できるわけではありませんので、2~3周やって、基本が分かればそれでOKかと思います。開発経験者であれば、もしかすると、この本だけやって、後は自分で応用して好きなものを作れるかもしれません。

この本では基本的なMQLの関数、EA開発の全体的な流れ、繰り返し処理など、今後、ずっと使える基本が学べます。

もし、この本で挫折しちゃったら、おそらく、開発は向いてないので、潔くやめればいいと思います。数十万の塾にいきなり入塾するよりも、たった1000円くらいでお試しできるんだから、こっちの方がおすすめかな、、と。。人間、得手不得手はどうしてもあるので、まずはお試しからやりましょう。 → 追記①

一つ、豊島先生の本の進め方のアドバイスをするなら、インジケーター開発より、EA開発を先に進める方が簡単だと思います。インジのところは最悪、スキップしても大丈夫です。でも、インジケーターが作れたほうが検証が楽になるので、最終的には(必要性を感じたら)勉強しましょう。

この本を進めていると、苦戦する章や理解できないところがあるかもしれませんが、この本のレベルは、どうにか理解したいところです。最悪、豊島先生のSlackグループに入れば、豊島先生(か誰か)が質問に答えてくれると思いますので、聞いてみるのも手かもしれません。独学で開発を学ぶには、そういう根性が必要だと思います。

追記

TwitterでGUNMAXさんとお話していたら、豊島本はわかりにくい、もっと簡単なのがある、とのことでした。確かに豊島先生の本は堅苦しいかもしれません。豊島先生は大学の先生なので、大学のテキストっぽい雰囲気があるのかも?

ということで、この本の方がわかりやすいようです!一応追記しておきます。

このステップが終わって、まだ座学で学びたい!という方は次のステップです。

ステップ②: EA開発セミナー

実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました!実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました! | GogoJungle

カワセ係長ほどではありませんが、少し高額です。しかし、こちらのトレーディングオフィスさんのEA開発セミナーは、初心者にとっては本当に素晴らしいです。すぐに使える朝スキャEAもソースコードがセットでついてくるので、EAを一つ買う感覚でもいいのかもしれません。(ちょっと直近は弱いので、じぶんでソースをいじる必要があるのが難なEAですが笑)

このEAのコード自体は、豊嶋さんの本を読んでいれば、きちんと理解できると思います。(逆に、事前学習なしで、いきなりこのコードだと初心者にはシンドいかもしれません。)

上の豊嶋さんのコードが、より実践的になった、という感じのコードが公開されています。

例えば、

  • ブローカーによって小数点が違う問題に対応したり、
  • 異なるGMTに対応したり、
  • サマータイムに対応したり、
  • 複数ポジを扱えるようになったり、
  • トレーリングストップを入れることが出来たり、

という具合です。小数点の調整やGMTの調整をやるということは、不特定多数に販売をすることを見越した実践的な内容かな、と思います。私もいずれ販売できるかな。。?

何より、困ったときにメールサポートで答えてくれるのが本当に助かります。個人的にはサポートで結構助けられました。

上で分かりやすい本を教えてくださった、GUNMAXさんもこのセミナーを受講したそうですが、「質問できる環境っていいね」という点で同意見でした。

個人的には、「質問するために自分がわかってること/分かってないことをまとめる作業」をすると、「あれ?実は俺わかってる?」みたいな状態になることも多かったです。ほんと、質問できる環境があるって素晴らしいです。というか、いろいろなことに共通しますが、やみくもに質問するのではなく、「分からないことを明確にして質問する」っていうことは、大事なことだな、と改めて思った次第です。

私は提示されてるコードとは全く無関係のことを質問したりして、「あのぅ~、さすがに範囲外なんですけど。。」と言われたこともありますが笑、基本的なことなら丁寧に答えてくれます。

実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました!実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました! | GogoJungle

プログラミングの才能がある人なら、このセミナーはスキップして、ネット上に落ちてるコードから学ぶこともできるかもしれませんが、初心者が最短距離を走るなら、このセミナーがオススメかな、と思います。

また、なるべく無料で、自力で学びたい人に、オススメしたいのはこのサイトですかね。私もこのサイトにも一部お世話になりました。

https://sphacker.com/trade055

あとは、下のリファレンスサイトは必須ですね。というか、検索したら必ず出てくるので知ってる人多いと思いますが。

MT4でEA自作しちゃお~[FX自動売買(システムトレード)-MQL4プログラミング入門]

にしても、この運営者のYukiさんというのは一体誰なんだ。もしかして、神か?神に違いない。神じゃなければ仏か? ほぼ全ての組み込み関数を紹介していて、それらにほぼ全て、サンプルコードを付けてくれています。

お布施として、必ず広告をクリックするように心がけましょう。笑  多分、日本のEA界のレベルアップに最も貢献してるサイトだと思います。

ここまでのステップで、だいたいのやりたいことはできるようになると思います。

その上で、もう一つオススメが次です。

2冊目の本。

豊嶋先生がいろいろな処理を単純化するライブラリーを作ってくれてます。

トレーディングオフィスのEA開発セミナーにも、簡単なライブラリー的なコードが含まれていますが、豊嶋さんの方では、さらに網羅的に、いろいろなライブラリを用意してくれています。

別にこのライブラリーを使わなくてもEAは作れるので、必須ではありませんし、ライブラリに忠実になる必要はないです。普通に一つずつ処理を書いていってもいいと思います。 ただ、豊嶋式ライブラリーに慣れれば開発が爆速になります。

さらに、この本には大量の練習問題がありますので、この本の内容を一通り写経すれば、ナンピンEAだって作れるようになるし、基本的なことで出来ないことはなくなるんじゃないでしょうか。

私はこの本、実は、EA開発セミナーを受講する前に読んだのですが、いざ自分でEAを苦労しながら作るようになったときに、このライブラリーの有り難さが身にしみてわかりました。「おー、この処理が1行だけで完結っすかー!」みたいな笑

また、まだ私はやってませんが、MT5とMT4の共通ライブラリを紹介している豊嶋本もあるそうなので、このライブラリに慣れれば、MT5への移行もスムーズにいけそうです。素晴らしいですね。将来的にはMT5で爆速バックテストをやったり3分足でスキャEAを作ったりしたいなー。

初心者のとき、他人のライブラリーを使うことに違和感があったのですが、今思うのは、こういう公開されているものは、積極的に使って然るべしです。 MQLに限らず、開発の世界で便利なライブラリーを使って開発速度を上げることは、至って普通なことです。

先日、格安で販売されていた某EAのソースコードをみたのですが、その方は(おそらく)自分で自分を楽にするために、ライブラリーを作ってましたね。豊嶋先生のライブラリーが既にあるのに!

しかも、ライブラリーの中身も公開されてるので、好きな風にカスタマイズも可能ですし、好きな自作関数を追加するのも容易です。例えば、私はRCIを呼び出す関数とかをライブラリに自分で追加してます。RCIはほんと使い所の多いオシレーターですよね~。

以上が私の思う、「これだけやれば、EAを作れるようになる」までの道のりです。最後の豊島先生の本は「開発作業が早くなるよ」というだけなので、別にスキップしてもいいと思います。

ここまでやれば、多分、ある程度のものは作れるようになります。困ったことがあっても、大抵は検索すれば解決できるようになります。「検索して、理解して、取り入れる」これが出来るようになれば、あとは、指数関数的にできることが増えてきます。

開発の勉強のその後、、、(ここからが一番大変)

ただ、実際はここからが一番大事です。実際のトレードロジックを考えるフェイズです。残念ながら、豊島先生の本にある「移動平均線がクロスしたら買う」、というだけでは、なかなか勝てません。

カワセ係長のEA開発塾でも、多分、汎用的なロジックの共有はあるかもしれませんが、最終的にオリジナルなものを作るなら、当然、自分の頭で考えないといけないはずです。

僕はロジック考案のために裁量トレードを学びました。といっても、本当にたくさん情報が転がってるので、数冊の本と、Twitterで実績を出してそうな人をフォローして、自分で仮説を作って検証したり、、と、そういう感じです。Twitterはほんと優しさと嫉妬に溢れてて好きです笑。

変なサロンとか、商材とか、買う必要ないと思います。○○式RCI!とか売ってますけど(買ってないのでこれもまた中身を知らんですが笑)RCIなんて、本当にタイミングを図るだけの道具ですからね。しかも、RCIのパターンはRCIの仕組みを知ればわかります。それよりも、もっと本質的なことを学んだ方がいいです。そして、それは本、TwitterYoutube、ネットに落ちてます。

裁量を学ぶと、相場が反転する可能性のあるところを予測できるようになります。または、●●すれば、次は××になる可能性がある、みたいなシナリオを作るようになれます。「勝負するなら、この辺だ」みたいな戦略を作れるようになります。

実際、不思議なくらい、相場は反転すべきところで反転するし、伸びるべきところで伸びます。同時に、100%そうなるということは絶対にありませんので、想定の逆に行くことも想定しながら、適切なタイミングで、適切なリスクを張るのがFXの勝負の仕方です。いや、僕はまだ全然素人のレベルですけどね。。

最近はたまにTwitterに記録を残してます。

てか、裁量トレードが少しわかってきて、逆説的ですが、裁量は無理!と思います。単純な指値で注文を入れられる戦略は、限られています。本来はもうちょっと複雑で、例えば、「この価格帯に突入した後、このインジがこういう形をしていたら、直近安値付近にSLを置いて、TPは・・・」、、みたいな戦略が必要です。このためにはチャートを常に見てないと駄目です。

損切りが50pips未満のトレードだと、本当にタイミングが超大事なので、改めて兼業には無理です。裁量を学ぶほどに、EAの必要さが分かってきた感じでもあります。ただ、EAにそういう環境認識をさせるのはすごく難しいので、半裁量、というのが一番いいのかもしれません。

そうやって得た戦略パターンを単純化して、システムに落とし込むのがEA開発です。ここまで来ると、プログラミング云々ではなく、どちらかというと左脳と右脳を使って頭の体操をする感じです。

例えば、こういうインジケーターとオシレーターを組み合わせれば、この部分だけはある程度再現できる、みたいな話です。RSIだけだとノイズが多いから、長い時間足のMAを複数使おう、みたいな話とか、もうちょっと線形にチャートを捉えてみようか、、とか。

「これならいける!」と思って、実装して、バックテスト結果が駄目で、なぜ駄目かを考えて、改善して、、、みたいな作業を愚直に繰り返せばよいわけです。

開発に向いてる人

こういう作業を「めんどーーー!早く稼がせろや!」と思う方は、多分、EA開発は向いてないです。

「こうすれば実装できる!こうすれば改善できる!」という発見が楽しい方がEA開発に向いています。今の所、私はそれが超楽しいです。「おー!こうやって書けば、このポイントで売買できるのかー!!すげー!俺天才!」みたいな感動(自己満)を味わうのが嬉しい。バックテストすると、天才でもなんでもないことがすぐ分かるわけですが笑、個人的には、楽しい趣味が見つかってよかった~という感じです。

最近は早朝のランニングをやめてEA開発やっちゃってるので、不健康になってます笑 んー、ちゃんとランニングもしよう。。

バックテストについても

ちなみに、バックテストについても考え方が変わりました。バックテスト結果は当然、超大事だけど、それより大事なのは狙っているエッジなんですよね。バックテストで結果が出てなくても、狙ってるエッジに優位性があるなら、ロジックを調整すれば成績が出るわけです。

そういう発想が出来るのも、EA開発をしてるからこそ、です。狙ってるエッジはいいけど、ちょっとずつタイミングがズレてる、みたいなEAって結構あるんじゃないでしょうかね。ほんと「タイミング」って超大事ですし。方向があってても、50pipsやら100pipsの損切りだと、タイミングがずれるだけで、ドカンドカンやられちゃいますし。

ちなみに、とある市販EAで「狙ってるエッジはいいけど、エントリーが荒っぽいよ!」と思ってるEAがあるので、そのEAのエッジをお借りしつつ、精度を高めてみようかな~みたいなことも考えています。

焦らず、諦めず、継続的にコツコツとコードを打ち続ける愚直な作業が必要になるのかなぁと思う今日このごろです。

まとめ ~MQLを学べば道は開ける?

まとめると、まずは豊島先生の本を一冊やって、それで足りなければ、トレーディングオフィスのセミナーをやって、それで足りなければ、豊島先生の2冊目の本に手を出す、という感じです。

EA開発、趣味にしちゃえば楽しいですよ!

最後に、私がMQLを学んで感じている可能性を少し。FXと関係ない部分で書いておきます。

私はMQLから初めて、N予備校に進出したことで、JavaScriptもわかってきたし、仕事にも活かせそうです。JSがわかれば、今や、GAS(GoogleのSpreadsheetとか自動化するやつ)で事務作業を自動化できるし、Node.js(JavaScriptのサーバサイド言語)までいければ、ウェブアプリの開発も(少しは)できるようになるし、その次には、Python機械学習?が待ってます。楽しみすぎますねー。N予備校最高っす。

プログラミング言語って、微妙に書き方違いますけど、だいたい似てるのでJSもすんなり理解できました。

個人的には、MyfxbookからAPIを読み込んで、EAの成績分析をするツールなんかもいつかは作ろうかなーと思ってます。結構、バックテストとフォワードテストを比較することも大事ですからね。

長くなりましたが、書きたかったことは以上です!EA開発、興味ある方は一緒にがんばりましょう~。私も駆け出しですし、できれば情報交換したいな~。

P.S. 前回、おたまじゃくしカップには自作が間に合わなかったので、6月開始のおたまカップには、自作で出場しようかな~と目論んでいます。 ただ、今は、完全自動よりも、その一歩手前の検証も兼ねた「半自動」ツールにチカラを入れようとしてるので、また出場できない可能性も。。。

んーでも、上で紹介したEA単品勝負でも、ワンチャン上位入賞ありえるので、それでいこうかしら。。

それまでに、このEAの複数通貨対応&ロジック改善を頑張ろうかな!

久々追記

一時期、EA開発熱は冷めてたのですが、再び開発しはじめました。今は、MT5で仮想通貨を狙っております。

EAを運用したことがある方は共感して頂けると思いますが、「ずっと勝ち続けるEA」というのは、ほぼ存在しない、といってよいと思います。

私のお気に入りの2年間くらいずっと右肩あがりでフォワード推移していた秘蔵っこEAが突然ワークしなくなって涙ホロホロな最近です。

これを解決するアイデアポートフォリオの最適化なのですが、それとは別に、上昇または下降のバイアスが強い相場で順張りメインで勝負するEAを作りたいと考えています。

そこで、仮想通貨です。

私は、今後、仮想通貨はさらに上を目指すと考えています。もちろん、大きく上下すると思いますが、株の比較ではないくらいのマネーが流れてくると思います。考察は別の記事にあげましたが、通貨革命が今後10年、20年というスパンで起こると考えています。

ということで、仮想通貨をメインに考えたEAを作っています。今、仮想通貨ブローカーも調査を進めています。

土日も動かせるブローカーはほぼMT5ですので、MT5で開発を進めています。

今は、MT5業界も、アカウントの取り合いで色々とキャンペーンをやっています。今の所は、以下で紹介しているBitterzがベストチョイスかな、と思います。

keichang.hatenadiary.jp

EA開発日誌も、謎な言葉だらけですが、アップしています。

keichang.hatenadiary.jp