MQL5の未来はMQL5+、あるいはMQL6だ - ページ 8

 
Karputov Vladimir:

複数のTFでの同時 テストがどういうものかわからないが、少なくともテスト後に他のTFに切り替えられないというのは良くないと思う。まあ、ビジュアルテスト 中の切り替えはすごいと思いますけど。
 

未来は...これはこれは"ありがとう、面白い"(C)。



 
最適化の際、「Result」欄に表示される数値ではなく、実行結果をパーセンテージで表示させたい。また、バックテストでは、"Net profit "の結果に利益が%で表示されると良いですね。
 
Rinat Tukaev:
最適化の際、「Result」欄に表示される数値ではなく、実行結果をパーセンテージで表示させたい。また、バックテストでは、「純利益」の結果に利益が%で表示されると良いですね。
OnTester()イベントハンドラに計算式を挿入して、必要な結果を確認してください。
 
Yury Reshetov:
OnTester()イベントハンドラに計算式を挿入して、必要な結果を確認してください。
ありがとうございます!知りませんでした)
 
MQL4やMQL5では、プログラムのグローバル変数が、プラグインの変数やパラメータとかぶらないようにすることを提案します。Expert Advisorで変数'point'を宣言したら、次のようなメッセージがたくさん出てきました。「ファイル 'expert.mq4' の 153 行目 ChartObject.mqh 154 39 で 'point' の宣言がグローバル宣言を非表示にしています".あるモジュール、プログラムの中で、他のモジュールのパラメータにある変数を宣言できないときは恐ろしいです。ChartObject.mqh が明示的に宣言していないのに、なぜ ChartObject.mqh モジュールが私の Expert Advisor である expert.mq4 を参照する必要があるのでしょうか?
 
Mihail Matkovskij:
MQL4やMQL5では、プログラムのグローバル変数が、プラグインの変数やパラメータとかぶらないようにすることを提案します。Expert Advisorで変数'point'を宣言したら、次のようなメッセージがたくさん出てきました。「ファイル 'expert.mq4' の 153 行目 ChartObject.mqh 154 39 で 'point' の宣言がグローバル宣言を非表示にしています".あるモジュール、プログラムの中で、他のモジュールのパラメータにある変数を宣言できないときは恐ろしいです。ChartObject.mqh が明示的に宣言していないのに、なぜ ChartObject.mqh モジュールが私の Expert Advisor である expert.mq4 を参照する必要があるのでしょうか?
明らかにあなたを助けるでしょう
#property strict
 
Igor Volodin:
明らかに役に立ちます。
はい、私のEAにはこの行がありますが、ChartObject.mqhモジュールにはありません。そのために標準モジュールを全部書き換えるのはちょっと...。
 
Mihail Matkovskij:
はい、私のExpert Advisorにこの行がありますが、ChartObject.mqhモジュールにはありません。そのために標準モジュールを全部書き換えるのはちょっと...。


了解です。その場合は、グローバル変 数を作らないようにしましょう。なくても大丈夫です。そうでなければ、どんな偶然でも、例えば、非常に一般的な名前でも。

int i;

グローバルに宣言されたものは、ローカルに宣言されたもので上書きされます。これが注意喚起の内容です。

また、プラグインは独自のスコープを持たず、モジュールでもなく、includeを 書いたところに挿入されるコード片に過ぎない。

 
Igor Volodin:


了解です。それなら、グローバル変 数を作らないでください。なくても大丈夫です。

作らないってどういうこと?どんなプログラミング言語でも、グローバル変数は自由に使えるので大丈夫なのですが、コンパイラが悪態をつきます。このエラーは決定的なものではありませんが、それでも不便なものです。

double point = MarketInfo(EA_Symbol(), MODE_POINT);

可変ポイントは、1ポイントの価格を報告し、標準ポイントの代用となるものです。MarketInfo(EA_Symbol(), MODE_POINT)関数は、任意のシンボルの1ポイント分の価格を表示します。さらに、変数pointは、もちろんグローバル変数であれば、EA本体で、どの関数でも使用することができます。このようなケースで不都合が生じることはよくあることだと思います(MQLプログラミングの経験がある方であれば)。そして、それを回避することはできるのですが、他の現代言語にはそのような問題がないにもかかわらず、なぜなのかという疑問があります。