エラー、バグ、質問 - ページ 1814

 
Alexey Kozitsyn:

ENUM_DATATYPEインジケータ・パラメータのタイプ判定に失敗しました。

TYPE_COLOR(#6)はTYPE_DATETIME(#9)の代わりにTYPE_UINT、TYPE_FLOAT(#12)の代わりにTYPE_LONG、TYPEではなくTYPE_DOUBLEを示していることがわかる。TYPE_COLOR、TYPE_DATETIME、TYPE_FLOATの各タイプは列挙型で記述されており、独自の値を持つべきですが!

しかし、その結果には理屈が見えている。float->doubleでも説明できる。私なら、さらに出力の種類を切り捨てますね。この意味で、ENUM_DATATYPEは広すぎるように思える。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Идентификаторы типов данных - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
削除済み  
fxsaber:

しかし、その結果には理屈が見えている。float->doubleでも説明可能です。私なら、さらに出力の種類を切り捨てますね。この意味で、ENUM_DATATYPEは広すぎるように思われる。

ドキュメントにENUM_DATATYPE列挙子を明示的に記述し、各メンバーが独自の番号を持つことに何の論理性も感じないのですが、いかがでしょうか?また、float型や double型のサイズをバイト単位で見る理屈もわからない。
 
Alexey Kozitsyn:
ドキュメントにはENUM_DATATYPE列挙子が明示的に記述されており、各メンバーは独自の番号を持っているのに、このロジックは理解できない。また、float型や double型のサイズをバイト単位で見るというのも理屈に合わない。
私なら、整数型(int)と実数型(double)だけを残しますね--数字から。
削除済み  
fxsaber:
まあ、数字のint型とdouble型だけは残しておきますが......。
最も単純な例:あなたのロジックによると、変数の型はintです。このタイプの変数を作成します。そこにvalue = 2と書きたいのでしょう。しかし、実際には型はboolであった。では、どうすればいいのか?
 
Alexey Kozitsyn:
最も単純な例:自分のロジックでint型の変数を取得した場合。このタイプの変数を作成します。そこにvalue = 2と書きたいのでしょう。しかし、その値は実際にはboolである。では、どうすればいいのか?
void f( bool ) {}

void OnStart()
{
  f(2);
}
削除済み  
fxsaber:
void f( bool ) {}

void OnStart()
{
  f(2);
}
結構ですが、値1で操作することになります。見つけにくいエラーも多いでしょう。
 
Alexey Kozitsyn:
結構ですが、値1で操作することになります。見つけにくいエラーも多いでしょう。
間違いはないでしょう。作ることもできない。
削除済み  
fxsaber:
間違いはないでしょう。作ることもできない。
できないからと言って、ありえないということはない。SDの答えを待とう。
 
Alexey Kozitsyn:
できないからと言って、ありえないということはない。SDの答えを待とう。
開発者には、開発者なりの考え方があります。ただ、int&doubleのバリアントでは、本当にエラーになる事態は起こりえません。
削除済み  
初期化エラー応募番号1677278!