"ダミー "からの質問 - ページ 79

 
Rosh:
はい、一人で。原理的には、MQL5で計算するコードを掲載すればいいのですが。
ありがたいことです。 作業の一部が簡略化されますから。
 

Doubleの比較(== < >)を正しく行う方法を教えてください。ノーマライゼーションが必要なのか?例えば、MT4にはそのような機能がありました。

CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true)。
else return(false);
}

また、一般に、NormalizeDouble()関数の 近似的なアルゴリズムはどのようなものですか?

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
220Volt:

Doubleの比較(== < >)を正しく行う方法を教えてください。ノーマライゼーションが必要なのか?例えば、MT4ではそのような機能がありました。

CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true)。
else return(false);
}

ハンドブックに推薦文が掲載されています。ご覧ください。
 
220Volt:

Doubleの比較(== < >)を正しく行う方法を教えてください。ノーマライゼーションが必要なのか?例えば、MT4にはそのような機能がありました。

CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true)。
else return(false);
}

また、一般に、NormalizeDouble()関数の 近似的なアルゴリズムはどのようなものですか?

一般に、2つの数値を比較する場合、その差をとり、許容される閾値と比較することが推奨されます。しかし、私は通常、直接比較します。特に問題があったことはありません。
 

グラフの冒頭で履歴が正しくないことは分かっているので、「なぜ正しくないのか」という疑問は生じない。

また、不正な履歴データが続く境界をどのようにプログラム的に決定すればよいのかという疑問も出てきます。

赤い縦線が境界線を示しています。

 
joo:

グラフの冒頭で履歴が正しくないことは分かっているので、「なぜ正しくないのか」という疑問は生じない。

また、不正な履歴データが続く境界をどのようにプログラム的に決定すればよいのかという疑問も出てきます。

赤い縦線が境界線を示しています。


隙間の頻度から試行錯誤する方法はないのでしょうか?一定期間のギャップを数える。
 
tol64:
隙間の頻度でなんとなく判断してみるのもいいかもしれませんね。一定期間のギャップをカウントする。

ひねりの効いた方法がたくさんあるんです。でも、本当に信頼できるものはないですね。なぜなら、一軒一軒のバーの「真贋」を判断する本当の基準がないからです。

すべてのチャートは分単位で表示されます。適切な時間枠を正しく構築できる期日まで、プログラム的に計算することができる。しかし、ここにも「しかし」があるのです。しかし、微小なTFも全歴史の深さまで正しいわけではありません。

IMHOでは、このような制限を識別するための通常のメカニズムが必要です。

int Correct_Boundary_of_Timeframe
(
string symbol_name,       // имя символа
ENUM_TIMEFRAMES timeframe  // период
);

-要求されたTFの要求されたシンボルの最後の有効なバーのインデックスを返します。

 
joo:

IMHOでは、そのような制限を定義するための社内メカニズムが必要だと考えています。

-要求されたTFの、要求された商品の、最後の有効なバーのインデックスを返します。

理想的なことだと思います。ところで、この壊れたデータは何のために提供されているのでしょうか?
 
joo:

-要求されたTFの、要求された商品の、最後の有効なバーのインデックスを返します。

私も欲しいです。
 
joo:

ひねりの効いた方法がたくさんあるんです。でも、本当に信頼できるものはないですね。なぜなら、それぞれのバーデータの「真偽」を判断する本当の基準がないからです。

すべてのチャートは分単位で表示されます。適切な時間枠を正しく構築できる期日までプログラム的に計算することができる。しかし、ここにも「しかし」があるのです。しかし、ミニッツTFも歴史の深さまで正しいとは言えません。

そのような制限を定義するための特別なメカニズムが必要だと思うのですが、どうでしょう?

-要求されたTFの、要求されたシンボルの最後の正しいバーのインデックスを返します。

ですから、すべての歴史を過去に読み替えても構わないというのであれば、問題はないと思います。各バーの開始と終了の時刻を調べ、これらのバー内レンジの秒数を調べます。予想より少ない場合は、「偽」バーを書く。これが転機となり、それ以後は他のすべてのバーが不完全なものとなってしまう。これ以上、探しても仕方がない。