mt5ストラテジーテスターのティック - ページ 11

 
RaptorUK:

コントロールされた条件下でテスト(Strategy Tester)を繰り返すために、使用するHistory Dataをコントロールできるようにしたいのです。

どのような条件で制御 するのですか?

ありがとうございます。

 
WhooDoo22:

制御された条件とは?

ありがとうございます

私が選んだ条件であり、ブローカーが選んだ条件ではありません。 他にどのようなテスト方法があるのですか? テストごとにランダムな条件を設定するのですか?
 
RaptorUK:
私が選んだ条件は、私のブローカーが選んだ条件ではありません。 他にどのようにテストすることを提案しますか? 各テストのためのランダムな条件セット?しかし、話題を逸らさないでください。

理解しました。

ありがとうございました。

 
angevoyageur:

私のリンクやRaptorUKのリンクを読めば、もっとはっきりするはずです。そうでない場合は、もう一度読んでください :-D

1.000000000006551e-005は、0.00001000000000006551の別の表記に過ぎません。

こんにちは、angevoyageurさん。

1.000000000006551e-005

0.00001000000000006551

2つ目のdoubleの 小数点以下は5回左に移動しています。 しかし、doubleが返す値は小数点以下16桁(有効数字)までなので、この形式ではテスターで返すことはできません。



モデレーター
1651
angevoyageur 2013.04.14 09:39 .
WhooDoo22 です。

こんにちはMQL5コミュニティです。

https://www.mql5.com/en/docs/common/comment

"double 型のデータは、小数点以下16桁までの精度で出力さ れ、どの表記がよりコンパクトになるかによって、伝統的なフォーマットでも科学的なフォーマット でも出力することができます。float型のデータは、小数点以下5桁で 出力されます。別の精度やあらかじめ定義された形式で実数を出力する場合は、DoubleToString() 関数を使用します。"

98.370のUSDJPYの価格表現は float型(小数点以下5桁で出力)のデータです。

USDJPYの価格表現-0.00199999995339は、double型、従来の形式(小数点以下16桁までで出力)のデータです。

doubleの出力は小数点以下16桁までしかないのに、なぜdouble -0.0019999999533[9] は小数点以下18桁 を返すのでしょうか?

ありがとうございます。

価格は常にdoubleで、98.370はdoubleです。 有効数字は16です ゼロは重要では ありません。


もしゼロが重要でないなら、なぜ テスターでは1.000000000006551e-005ではなく、0.0000100000006551という 値を返すことができなかったのでしょうか?私は0.00001000000000006551の フォーマットで計算する方が好きです

ありがとうございます。

 
WhooDoo22:


もしゼロが重要でないなら、なぜ テスターでは1.000000000006551e-005の代わりに0.0000100000006551という 値を返せなかったのでしょうか?私は0.00001000000000006551の フォーマットで計算する方が好きなんです!

浮動小数点数(double)は、常に このフォーマットで内部保持されます ... 1.000000000006551e-005, あなたは与えられたリンクの情報を読み、理解しましたか?

ここから:浮動小数点数

「IEEE-754の浮動小数点(4バイト)または倍精度(8バイト)は、3つの要素(IEEE-854の96ビット拡張精度フォーマットもある)を持っています:数が正か負かを示す符号ビット、数の大きさを示す指数、数の実際の桁数を示す仮数です。単精度の浮動小数点を例にとると、次のようなビット配置になります。"

3つの部分

符号仮数指数
+1.000000000006551-005

0.00001000000000xyz を表示したい場合は、DoubleToStr() を使って好みの出力にフォーマットします。

Articles - Understanding Floating Point Number Representation - Cprogramming.com
Articles - Understanding Floating Point Number Representation - Cprogramming.com
  • www.cprogramming.com
Floating point representations vary from machine to machine, as I've implied. Fortunately one is by far the most common these days: the IEEE-754 standard. This standard is prevalent enough that it's worthwhile to look at it in depth; chances are good you'd be able to use this information on your platform (look for ieee754.h). An IEEE-754...
 
RaptorUK:

浮動小数点数(double)は、内部では常に この形式で保持されています ... 1.000000000006551e-005, リンク先の情報を読んで理解できましたか?

ここから:浮動小数点数

「IEEE-754の浮動小数点(4バイト)または倍精度(8バイト)は、3つの要素(IEEE-854の96ビット拡張精度フォーマットもある)を持っています:数が正か負かを示す符号ビット、数の大きさを示す指数、数の実際の桁数を示す仮数です。単精度の浮動小数点を例にとると、次のようなビット配置になります。"

3つの部分

符号仮数指数
+1.000000000006551-005

0.00001000000000xyz を表示したい場合は、DoubleToStr() を使って好みの出力にフォーマットします。

はい、提供されたリンクをすべて読み、有用であることがわかりました、提供していただき、再度感謝します。私の好みは、DoubleToStringを組み込み、DoubleToStringの2番目のパラメータとして、doubleの最後から2番目の場所の値(例:CADJPY 95.9[5]9)を選択することです。この「can price!=price」問題は、それほど難しい問題ではないと思うのですが!あなたはこれに何を言うのですか?

ありがとうございました。

 
WhooDoo22:

はい、提供されたリンクをすべて読み、有用であることがわかりました。私の好みは、DoubleToStringを組み込み、DoubleToStringの2番目のパラメータとして、doubleの最後から2番目の場所の値(例:CADJPY 95.9[5]9)を選択することです。この「can price!=price」問題は、それほど難しい問題ではないと思うのですが!これに対して、あなたはどう言いますか?

つまり、次のようなことですか?

double value = 95.959;

Print("Value: ", DoubleToStr(value, _Digits - 1) );

この問題は、解決することはできませんが、まず、何が問題かを理解する必要があります。

 
RaptorUK:

つまり、次のようなことですか?

Can price != price は、別の問題ですが、少し関係があります。 これは、本当に解決することはできません。まず、何が問題かを理解し、それを回避することが必要です。

double value=95.959;

Print("value returns ",DoubleToString(value,2));//value's expected print return is 95.95.

この "can price != price "の問題は何だとお考えですか?

ありがとうございました。

 

WhooDoo22:

...

値段は常に2倍、98.370は2倍。 有効数字は16桁です ゼロは重要では ありません。

もし ゼロが重要でないなら、 なぜ テスターでは 1.000000000006551e-005ではなく、0.0000100000006551という 値を返すことができなかったのでしょうか?私は0.00001000000000006551の フォーマットで計算する方が好きです

ありがとうございます。

それは可能性があります、それは唯一の書式設定の出力値の選択です。

すべての等価物
0.00001000000000006551
0.0001000000000006551e-001
0.001000000000006551e-002
0.01000000000006551e-003
0.1000000000006551e-004
1.000000000006551e-005

まさに ゼロが 意味を なさないから です

WhooDoo22 です。

はい、提供されたリンクをすべて読み、有用であることがわかりました、提供していただきありがとうございます。私の好みとしては、DoubleToStringを組み込んで、DoubleToStringの第2パラメータとしてdoubleの最後から2番目の値(例:CADJPY 95.9[5]9)を選択 することでしょうか。この「can price!=price」問題は、それほど難しい問題ではないと思うのですが!あなたはこれに何を言うのですか?

ありがとうございます。

申し訳ありませんが、私はこの文章を理解することはできません。
 
angevoyageur:

それはあり得る、それはフォーマットの出力値の選択だけです。

すべての等価物
0.00001000000000006551
0.0001000000000006551e-001
0.001000000000006551e-002
0.01000000000006551e-003
0.1000000000006551e-004
1.000000000006551e-005

まさにゼロが 意味を なさないからこそ

申し訳ありませんが、私はこの文章を理解していない。

"申し訳ありませんが、この文章は理解できません。"

double value=95.959;

Print("value returns ",DoubleToString(value,2));//value's expected print return is 95.95.

ありがとうございます。

理由: