
EAの品質について考える|開発者と購入者の間にある埋められない溝とは?
EAとはExpertAdvisorの略称で、MT4/MT5という世界標準となったFX個人投資家向けのプラットフォームで動く自動売買プログラムです。
今回はEAの品質について考えていきたいと思います。
最初に結論から。
💡EAの品質に対する考え方は開発者と購入者で違ってくる
💡EAの品質は「狭義の品質」と「広義の品質」の2つに別れる
1.EAの品質に対する考え方は開発者と購入者の違い
(1)品質に対する考えの違い
EA開発者は、
『品質=バグのないプログラムコード』
『品質=仕様通りに動作すること』
と考えている方が多いです。
一方、EA購入者は、
『品質=EAの実績(フォワードがバックテストとニアになること)』
と考えます。
(2)なぜ品質に対する考え方が違ってくるのか?
EA開発者は、
バグなく仕様通りに動くことが品質であり、フォワードがバックテストとニアになるのは運要素が強いと考えるため、EAの品質とは考えない傾向があります。
⚠️EA開発者がリアルフォワードを公開しない理由の1つでもあります
EA購入者は、
EAの品質は「実績」であり「バックテストとフォワードが乖離が少ないこと」になります。なぜそうなるかは明確で、EA購入者にとってEAは、プログラムコードが見えないブラックボックスだからです。
故に、EA開発者がどんなに「バグのないコード」「高速動作するコード」「綺麗なコード」を訴求しても、ピンとくることはありません。
だって自分の目にはそれは見えないですから。
例え見えたとしても、何が良いコードなのかわかりませんから。
良いコードを理解するには、悪いコードも知り・理解する必要があります。そんな事はかなりな物好きじゃないとしないはずです。
あと、「バグのないコード」「高速動作するコード」「綺麗なコード」は、そんなのお金取ってるんだから当りまえでしょ。という感覚なはずです。

2.「狭義の品質」と「広義の品質」
これは一般的なソフトウェア開発と同じだと思います。
(1)狭義の品質(プログラマーの視点)
EAがバグなく動作すること
EAが仕様通りに動作すること(機能要件、非機能要件)
▶機能要件 :決められた条件でオープン、クローズする等
▶非機能要件:受信したTick全てでイベント動作できること等
(2)広義の品質(顧客の視点)
EAのフォワードがバックテストとの乖離が少ないこと
※つまり勝てること
(3)「顧客の視点」にフォーカス
顧客視点の前提として
顧客はEAのプログラムコードが見えないブラックボックス
顧客はEAのプログラムコードを見ても良し悪しはわからない
よって顧客のEA品質に対する優先順位は(シンプルに2軸に絞る)
①勝てる、バグなし
②勝てる、バグあるけど爆発せず
③勝てる、バグあって爆発したけどトータルで勝てる
➍勝てない、バグなし
➎勝てない、バグあり
つまり、勝てないEAの場合、バグがあろうと、なかろうと顧客にとっては低品質になります。高速動作、綺麗なコードについても同様です。

商材屋に突き付けられる厳しい現実
つまり、どんなに時間をかけて、動作検証して、試行錯誤を繰り返して開発したEAだとしても、フォワードで勝てないEAは顧客にとって低品質なEAなのです。
私も1人の商材屋として、厳しい・・・そう感じます。
リアルフォワードを公開しない商材屋さんの気持ちもわかります。
しかし物を売る者として、顧客の視点は最重視しなければなりません。
「広義の品質」から目を背けないようにしていきたいですね。