自分の不便を解決するために MQL4 を学んだ話 ― 道具開発者としての歩み

自分の不便を解決するために MQL4 を学んだ話 ― 道具開発者としての歩み アイキャッチ画像 MT4 開発記

FX を始めて数年は、トレードのたびに、ちょっとした不便を我慢し続けていました。

分析は TradingView、執行は MT4。この二刀流が、地味にストレスだったのです。

私の本業は、建築業界でシステムエンジニアとして開発に従事しています。コードを書くのは、仕事で毎日やっています。それなら ― 「ないなら、自分で作ればいい」。そう考えて、MQL4(MT4 のプログラミング言語)を独学で学び始めました。今日は、その”道具開発者”としての歩みを書いてみます。

TradingView と MT4、二刀流の不便

当時の私は、トレンド分析を TradingView で行い、実際の発注は MT4 でやっていました。TradingView は描画ツールが優秀で、思考を素早く線にできる。一方、執行環境としては使い慣れた MT4 を手放せない。

結果、「TradingView で引いた線を、もう一度 MT4 で引き直す」ような二度手間が、毎日のように発生していました。

そして、いちばん地味に効いていたのが、TradingView と MT4 の画面を行ったり来たりする、その切り替えそのものでした。分析画面と執行画面を何度も往復するうちに、思考が途切れる。一回ずつは些細でも、毎日積み重なると、想像以上のストレスになります。

特にもどかしかったのは、TradingView でできる自由な描画が、MT4 では驚くほど手間がかかったことです。

「ないなら作る」― MQL4 を独学で

「この不便、コードで解決できないか?」

エンジニアの職業病かもしれません。気づいたら、MQL4 のマニュアルを開いていました。

幸い、学生時代に C 言語をかじっていたので、MQLプログラミングそのものへの抵抗はありませんでした。つまずいたのは、MQL4 ならではのクセのほうです。

特にハマったのが、「インジケーターで使える関数」と「EA やスクリプトでしか使えない関数」の切り分けでした。当初はその違いを知らず、本来 EA 用の関数をインジケーターで必死に実装しては「なぜか思った通りに動かない」とデバッグを繰り返す。ふとドキュメントを読み返して、そもそもインジケーターでは使えない関数だったと気づいたときは、軽くショックを受けたものです。

マニュアルとにらめっこしながら、自分が欲しい機能を一つずつ実装していく。それでも、自分の手で不便が一つ消えるたびに、トレードのストレスが軽くなっていく。この感覚が、開発を続ける原動力になりました。

ScenarioPen の誕生 ― TradingView の操作感を MT4 で

最初に形になったのが、描画支援インジケーター「ScenarioPen」です。2021年に集中して開発しました。

きっかけは、TradingView でできていたことを、MT4 でも実現したかったから。主に2つ。

ひとつは、波形で描く感覚。私はシナリオを立てるとき、ZigZag のような「波」でこの先の動きを描きたい。けれど MT4 標準では、トレンドラインを何本も継ぎ足すしかなく、これが本当に面倒でした。ScenarioPen では、キー一発で素早く波を描けるようにしました。

この「波を描きたい」には、はっきりした原点があります。YouTube で、TradingView を使ってシナリオを組み立てる解説を見て、自分の環境認識や分析をもとに、見よう見まねで練習していました。精度はまだ低いと自覚しつつ、「TradingView でシナリオ分析 → MT4 で執行」を続けるなかで、どうしても MT4 上だけで完結させたくなったのです。

ところが、TradingView のパスのような波形を MT4 で描くのは一苦労でした。いくつか波を描いたあと、形を少し直そうとすると、山と谷を構成するトレンドライン2本を、それぞれ別々に調整しなければならない。「これをまとめて直せたらいいのに……」― その小さな願いが、ScenarioPen の出発点でした。

もうひとつは、水平線やトレンドラインへのアラート設定。引いた水平線やトレンドラインにタッチもしくは確定足がクロスしたら通知が来る。これで「シナリオが整うまでチャートに張り付かない」スタイルに一歩近づけます。

ScenarioPen は最終的に、10種類の描画ツール(ZigZag、垂直線、トレンドライン、水平レイ、長方形、複数チャートへの水平線、フィボナッチ、平行チャネル、フィボナッチチャネル、矢印マーク)を、キーボードから素早く呼び出せるツールになりました。キーイベントの取得には user32.dll を使っています。

作ってわかった、「道具より組み立て方」

皮肉なことに、道具を作る中で痛感したのは、「道具そのものより、トレードの組み立て方のほうが大事」ということでした。

どれだけ描画が速くなっても、立てるシナリオが甘ければ勝てません。ScenarioPen は、あくまで「シナリオを素早く形にするための道具」。主役はシナリオで、ツールは脇役です。

だからこそ、ScenarioPen は派手な新機能を足し続けるのではなく、2021年の集中開発のあとは、5年間ずっと自分のトレードで実戦運用しながら、必要なときだけ手を入れてきました。長く使い込んで十分に枯れた、という安心感があります。とはいえ、あくまで自分の必要に応じて拡張してきたツールなので、ほかのトレーダーの方から見れば物足りない部分もあるかもしれません。

もう一つの動機 ― 師匠の教えを”コード”にする

ScenarioPen が「実用性」から生まれた道具だとすれば、もう一つのツールは「思想」から生まれました。

師匠から学んだリスク管理 ―「手法より資金管理」「損失は0.5〜1%」「ナンピンではなく分割」。これを、気合いや記憶に頼らず、ツールで仕組み化したい。そう考えて2023年に設計を始め、途中で大きく作り直して再スタートしたのが、リスク管理EA「TradeShielder2」です。

こちらは ScenarioPen と違い、いまも活発に改修を続けています。まずは会社の後輩や義兄弟に使ってもらい、報告をもらっては直す。その積み重ねで、すでに150近いリビジョンを重ねました。

たとえば、こんなことがありました。会社の後輩は、水平線を「確定足でのブレイク」で通知するモードに設定していたのに、まだタッチしただけの段階で通知が飛んでしまう、と報告してくれたのです。おかげで、アラート判定のバグを一つ潰すことができました。一人で開発していると、デバッグには時間がかかりますし、どうしても見落としも出ます。利用者はまだ数えるほどですが、その使用感やバグ報告が、ツールを着実に良くしてくれています。

開発者であることの、トレード上の意味

現役のエンジニアであることは、トレードでも一つの武器になります。

不便を感じたら、我慢せずに直せる。「こういう機能があれば」を、誰かの製品を待たずに自分で実装できる。そして、使ってくれる人の声を反映して、道具をどんどん磨ける。

派手な裁量の才能はなくても、「不便を仕組みで解決する」ことなら、エンジニアの自分にもできる。これは、堅実派の私に合ったやり方だと思っています。

まとめ:これからも「自分の不便」を解決し続ける

ScenarioPen も TradeShielder2 も、出発点は同じです。「自分が困ったこと」を、自分の手で解決しただけ。

たまたまそれが、同じように困っている誰かの役に立つかもしれない。だからいま、公開の準備を進めています。

これからも、トレードの中で見つけた「小さな不便」を、コードで一つずつ消していくつもりです。その過程も、またこのサイトで書いていきます。


関連記事:
– はじめまして、co2co2 です ― 6年目のFXトレーダーが歩んだ道(/about/)
– プロ師匠から学んだリスク管理思想 ― 「派手に勝つことより、退場しないこと」
– TradingViewからMT4に戻ってきた人が困る3つの不便と解決策
– ScenarioPen でTキーで瞬時にトレンドラインを引く

タイトルとURLをコピーしました