enum DURATION_INTERVALS // Enumeration of named constants
{
month=1, // Interval of one month
two_months, // Two months
quarter, // Three months - quarter
halfyear=6, // Half a year
year=12, // Year - 12 months
};
input DURATION_INTERVALS HistoryDuration = month;
長さが分からないということはなく、このトピックは設計が悪いということに他ならない。
enumの長さ」ってどういう意味ですか?
ニンジンは果物ではないのかもしれないが...Xiangdong Guoの 言う「enumの長さ」の意味がまだ理解できていない。
各オプションの文字列名からの文字数?
可能なオプションの数?
オプションの数値?
デザインが悪いだけでなく、何を言っているのかよくわからない。
値の数なので、果物のあなたの例では5。
これは静的なもので、可変にはできないので、常に既知の固定値で開始されることに同意します。
しかし、Xiangdong Guo が自分で設計も作成もしていない指標をテストしていて、入力パラメータを自動的に知るか検出したい のだとしたら......。
利用可能なオプションの数を知ることがどのように役立つのかよく分かりませんが、おそらく彼は利用可能なすべてのオプションをクロステストしたいので、単に実行するテストの数を探しているのでしょうか?
利用可能なオプションの境界から変換しようとすると、enumが存在しないため、変換できないエラーが発生します。
MT4/MT5では、enumから項目を取得するためにC++/C#の関数を 使用しています。しかし、MetaQuotesはこれらの関数をMQL4/MQL5に移植していないのです。ハム...ハム...
MT4/MT5では、enumから項目を取得するためにC++/C#の関数を使用しています。しかし、MetaQuotesはこれらの関数をMQL4/MQL5に移植していないのです。ハム...ハム...
どの関数ですか?何が問題なのでしょうか?なぜenumの項目をループさせたいのですか?
MQLでできないことをしたい人がいたとしても、それは必ずしも「設計が悪い」ということではありません。
トピックの始めに:現在のMQLのバージョンでは、あなたが望むことは不可能です。
唯一の方法は、すべての項目を配列にコピーして、その配列を使ってループを作ることです。しかし、それは、コードを修正できる場合にのみ可能です。
MQLでできないことをしたい人がいたとしても、それは必ずしも「設計が悪い」ということではありません。
トピックの始めに:現在のMQLのバージョンでは、あなたが望むことは不可能です。
唯一の方法は、すべての項目を配列にコピーして、その配列を使ってループを作ることです。しかし、それはコードを修正できる場合にのみ可能です。
配列の代わりにenumを使うのは、設計が悪いのです。そうでしょうか?
配列の代わりにenumを使うのは、設計上まずい。そうではありませんか?
いいえ、enumの代わりに配列を使用するのは悪い設計です。
例を挙げましょう。例えば、ある文字列の値があるとします。そして、この文字列がenumの項目名の1つと等しいか、含まれているかを調べる(EnumToString())というタスクがあります。
あなたはこれをどのように解決しますか?