タイトルの通り「”EAの名前”is not expert and cannnot be executed」というエラーでハマりかけました!
ぅおおおおおおお!とギリギリのところで解決できましたので、本日は解決法をシェアしたいと思います。
何か関数を追加してないか確認
何か新たな関数を追加してないか思い出してみてください。
もしかしたらその関数が悪さをしているかもしれません。
僕は「OnStart()」という関数をただの好奇心で追加してましたw
ちなみにEAでOnStart()使っちゃうとこうなります。
”ChikenRabbit ”は僕のEAの名前です。
“EAの名前” is not expert and cannnot be executed.
「それはEAじゃねえよ。動かねえよ」
ゥおおおおおおほんとに動かねえええエエエ!!!
ヒントをくれたのはこちらのサイトです。
Don’t use a function OnStart() or start().
ヒントと言うか、僕の場合まんまズバリだったんですけれどもね。
英語なので「ぉお?!」と怯んでしまうかもしれませんが、やはり英語がわかると今回のように手に入る情報も格段に多くなります。
Mql4と、英語もちょっと一緒にがんばりましょうみなさま!
上の英文は、
OnStart()とか、start()関数を使っちゃダメだよ
という意味です。
原因究明時の注意点
やっかいなのは、OnStart()など不適切な関数を追加しても、MT4を再起動するまではエラーにならずにプログラムが動いちゃうってとこです。
試しにOnStart()追加して、なんだ何も起きねえじゃねえかってそのままにして、それからOnTick()の中を散々こねくり回して、
Mql4のお作法にボコボコにされて、今日はこのくらいにしといてやるかなんて一眠りして、夕方モソモソ起き出して、にんにく注射撃ってさあ昨日の続きをなんてEA動かしてみたら件のエラー!
なんて状態なわけですから、ほんとに泥沼パターン一歩手前でした。
ちなみにOnStart()やstart()を使っていけないのは、これらの関数がスクリプト用の関数だからです。
なんのこっちゃ?な方もいるかと思いますが、まあ実は僕もなんのこっちゃなうちの1人なんですが、
大雑把に言うと「EA開発時には使えない関数だ」ということだけ覚えておけば今のとこは支障ないです。
「スクリプト」なるものを使うようになったときに、そういやOnStart()とかstart()みたいなイベント関数があったなあ、と思い出せればよいでしょう。
まとめ
●追加した関数をチェック
●OnStart()とか、start()あたりを疑ってみる
●その他好奇心で追加してみた関数を疑ってみる
Mql4を極めてEAをグルングルンぶん回して、文化的で洗練されたFX自動売買ライフを送りましょうね!
以上、”EAの名前”is not expert and cannnot be executedエラーで泣きそうになったらOnStartを探してみよう!でした。
ぼくも同じエラーがでいます。
start()の中で売買の条件を書いている時は、代わりにどこに記述すればいいですかね?