第3章【後編】:血迷った右手と、自作への決意
七、MetaEditorの闇と、果てしないエラーのモグラ叩き
86万円の爆損という激痛を通過し、生き残りへの覚悟を胸に刻んだ私は、PCの前に座り直した。
画面の中央に立ち上がったのは、MT4に標準搭載されているプログラム開発環境「MetaEditor」。 目に飛び込んでくるのは、漆黒の背景に並ぶ英単語と記号の羅列だ。
本業の営業回りを終え、家族が寝静まった深夜。 私は入門書や海外の開発者フォーラムを穴があくほど見つめながら、震える手でキーボードを叩き始めた。
C++
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnTick()
{
// ここに相場の波を受け止める防衛ロジックを刻む
}
これまでの人生でプログラミングなど一度も触れたことがない。 変数の型宣言、関数のスコープ、配列の概念……。 1行コードを書き加えるたびに、画面下部のツールボックスには容赦なく赤い「Compile Error」の警告がずらりと並ぶ。
'(' - semicolon expected
'OrderSend' - wrong parameters count
'}' - unbalanced parentheses
「セミコロンが足りない? カッコの数が合わない? ……どこが間違っているんだ!?」
深夜一時。画面を睨みつけ、タイピングミスを1文字ずつ探すモグラ叩きのような作業が続く。 日中の営業活動で疲労困憊した頭に、容赦なくコードの壁が立ち塞がる。
≪外注すれば数万円で誰かに作ってもらえるかもしれない。 しかし、他人に頼っている限り、相場の嵐が来た時に自分の恐怖に負けて手動介入してしまう。 『自分で1行1行書き、その仕組みの隅々まで知り尽くしたコードでなければ、本物の信頼は宿らない』
睡魔で重くなる瞼を冷水で洗い、私はエラーと格闘し続けた。
八、午前二時の産声 — 「Hello World」の感動 —
何日目かの格闘の末、その瞬間は訪れた。
画面右上の「Compile」ボタンをクリックした瞬間、画面下のログ欄に表示された文字列。
Plaintext
0 errors, 0 warnings
「……通った」
赤い警告が消え、エラーがゼロになった。 私はバックテストウィンドウを開き、自分が書いた最小限のスクリプトをチャートへドラッグ&ドロップした。
操作履歴のタブに、青い文字で静かに出力された一行。
2022.06.28 02:15:00 GoldenWheatReaper USDHPY,M5: Hello World! 我が不沈艦、ここに誕生す。
「動いた……!」
1円も利益を生み出していない。ただ画面に文字を出力させただけの、プログラミングの世界では誰もが通る「Hello World」。 だが、私にとっては、自分の意志と命令が初めてコンピューターの血肉となって動き出した、かけがえのない最初の産声だった。
机の上で握りしめた拳に、じわりと熱いものが込み上げる。 他人の作ったシステムを恐る恐る動かすのでもなく、自分の血迷った右手でギャンブルをするのでもない。 家族の未来を守り抜くための「完全自作の不沈艦」が、今、この暗闇の中で産声を上げたのだ。
九、胸ポケットの手帳と、耕される設計図
その日から、私の日常は完全に変化した。
会社員の営業として街を歩く合間、ふと相場のアイデアが浮かべば、自分のスマートフォンを取り出してメモ帳に書き溜める。
『急激なトレンドを1つのロジックで受け止めようとするから破綻するのではないか?』 『逆張りと順張りを別のレイヤーで非同期に走らせたらどうなる?』 『同じ価格帯でポジションが密集するのを防ぐコードはどう書く?』
かつては「どうやって一攫千金を狙うか」ばかりを考えていた私の頭は、「いかに相場のあらゆるショックを耐え抜き、絶対に沈まない構造を作るか」という防衛思想で埋め尽くされていた。
目先の爆益を狙う焼き畑農業ではなく、何年先も豊かな作物を実らせるために、荒れた大地を深く耕すようにコードを書き進める。
それは、ネットのコードを寄せ集めた「コピーバンド」を脱却し、「真のオリジナル曲」を完成させるための、泥臭くも確かな航海の始まりだった。