
MT5でオリジナルのインジケーターを作っています。
つい先日まで問題なかったものが謎のエラーが発生してコンパイルできません。
対処の方法を教えてください!
エラーに番号等はなく、エラーの箇所も表示されません。
「code generation error」のみ表示されます。
色々調べたところ、エラーの箇所は「ExponentialMAOnBuffer」を使用している行であるということが判明しました。(この行をコメントアウトするとエラーが消えます)
ここでエラーが起きるはずがないと思い、他の普通に使えていたオリジナルインジケーターを何も編集せずに再度コンパイルしてみたところ同じ現象になりました。
おそらくバグかな?と思うのですが、インジケーターが使えず困っているので誰か対処方法お願いします。
ちなみにMT5の再インストールは試しています。
No.1ベストアンサー
- 回答日時:
「code generation error」は、MQL5プログラムが不正なコードを含んでいるために発生するエラーです。
このエラーが発生する理由はさまざまですが、インディケーターに関する場合、通常は以下のいずれかが原因です:
1.ソースコードに文法エラーが含まれている
2.バージョンの問題により、使用している関数が互換性がない
3.インディケーターがバグを持っている
今回の場合、コメントアウトした行はExponentialMAOnBuffer関数を呼び出しており、これがコンパイルエラーを引き起こしているとのことです。
ExponentialMAOnBuffer関数自体に問題がある可能性があります。または、呼び出し方やパラメーターの指定方法に誤りがあるかもしれません。
まず、関数自体を見直して、問題がある場合は修正してください。それでもエラーが続く場合は、関数の引数や呼び出し方に問題がある可能性があるため、引数や呼び出し方法を確認してください。
それでもエラーが解決しない場合は、他のバージョンのMT5を使用することや、MQL5プログラムを再構築することを検討する必要があります。
回答ありがとうございます!
色々試してなんとか解決できました。
以下解決までの道のり↓
ExponentialMAOnBuffer関数自体はMT5側で用意している関数なのと、この関数が収められているファイル(MovingAverages.mqh)をコンパイルしてみたところ正常にコンパイル出来たのでこの関数自体は大丈夫と判断。
次に呼び出し方ですが、公式にある記述と同じなので問題無し。
念のためこの関数のみを抜き出して自分のインジケーターに移してみましたがエラーは解消できず…。引数に関してはチェックしたけど問題なし。
試しにMovingAverages.mqhを使用しているインジケーターをネット上からダウンロードしてコンパイルしても同じエラーが発生。
結論:たぶんMT5側のバグ。
元のバージョンに戻そうにも方法がわからなかったため、
仕方なく関数を関数ではなく、直接OnCalculateの中に組み込みました。
そしたらコンパイルできました!
複雑な関数でなくてホント良かった…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
ファイル出力時のエラーについて
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
IOCTL_CDROM_RAW_RAEDで生デー...
-
VC++ 2008 Express EditionでWi...
-
Androidアプリ作成時、Text Siz...
-
Visual Basic でサポートされて...
-
CreateInstanceで例外発生
-
キーの自動入力
-
【VC++2005(CLR)】lzh形式で、...
-
VC++6.0 の/Zm オプションについて
-
sys/time.hのインクルードがで...
-
C++ BSTRとBSTR* の違い
-
NTLのtools.hのエラーが直りません
-
【R8C/Tinyマイコン】エラーに...
-
C++でscanfは使えない?
-
Handlesについて
-
HSP
-
フォームの作成中にエラーが発...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
visual C++ でビルドの中止がで...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
デバッグ中のエラーのことで教...
-
fortranでプログラムを実行する...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
Handlesについて
-
HEWを使用しているのですが、こ...
-
DLL関数を使ったプログラム
-
キーの自動入力
-
Visual Studioのstrcpy_sについて
-
コンパイルできません。
-
multiple definitionというエラー
-
ACCESSのDate関数のエラー表示...
-
WindowsからLinuxへの移植
おすすめ情報