【技術レポート】FX黒船cTraderの「美しき嘘」とプロセスデザインによる操舵輪の簒奪
■ 序論:モダンアーキテクチャへの期待と冷酷な現実
早朝、無機質なメインモニターには、深夜から稼働させ続けているPythonのバックテスト結果――すなわち無数のロジックの死骸――が冷徹に表示されている。
我々Semura Labは、長年依存してきたMT4という32bitの老朽艦(レガシーアーキテクチャ)の限界を悟り、次世代の「黒船」たるcTraderを導入した。モダンなUI、板情報(Depth of Market)の可視化、そしてC#(cAlgo)による洗練された開発環境。我々は、忌まわしいMQLの呪縛から解放され、より精緻な検証と執行が可能になると確信していた。
しかし、その工学的な期待は、稼働開始からわずか数日で「絶望と構造的欠陥の露呈」へと変わることになる。
■ 1. バックテストエンジンが生成する「幻の聖杯」
cTraderのバックテストエンジンは、確かにMT4と比較して高速かつ洗練されていた。画面上には、見事な右肩上がりの資産カーブ(いわゆる聖杯)がいとも簡単に描画された。 だが、プロセスデザインエンジニアの監査(オーディット)の目を誤魔化すことはできない。その美しいカーブは、プラットフォーム内部の仕様によって塗り固められた、何重もの「工学的な嘘」で構成されていたのである。
① ティックデータ補間という名の「未来予知(CAP)」
精緻に見える1分足の内部挙動。しかしそれは、実際の生々しい市場ノイズを反映したものではなく、システムが計算負荷を下げるために都合よく補間した「滑らかな幻」であった。現実の相場であればヒゲ先で確実に約定するはずの損切り(SL)が、テスト環境では計算上「存在しなかったこと」にされ、魔法のように利確(TP)へと到達する。これは、我々がシステム開発において最も憎む「先読みバイアス(CAP)」と同義である。
② 物理的摩擦(スプレッドとスリッページ)の隠蔽
早朝や指標発表時において、現実は数pipsに拡大するスプレッドの暴力が存在する。しかし、内部テスト上ではこの物理的な摩擦が綺麗に平滑化、あるいは過小評価されていた。0.6pipsのスプレッドと、5〜8pipsという極小の利幅(リスクリワード1:1)の狭間で血を流してきた我々からすれば、それは無菌室で作られた無価値な机上の空論である。
③ C#への翻訳プロセスで生じる「論理の変質」
我々のコアロジックは、PandasやNumPyを駆使した純粋なPython環境で構築されている。これをcTrader上で自律稼働させるにはC#への翻訳が必要となるが、このプロセスにおいて「データの丸め誤差」や「参照タイミングの微細なズレ」が必ず発生する。すなわち、プラットフォーム内部で検証されていたのは、Pythonが弾き出した純粋なロジックではなく、翻訳によって「劣化した別物」だったのである。
[■ 挿入指定:cTraderのバックテスト画面で描かれた「滑らかすぎる非現実的な右肩上がりの資産カーブ」と、Pythonでの「厳しい現実を反映した資産カーブ」を対比させる画像をここに配置]