MT5への願い - ページ 45

 
開発者の皆様へ。C/C++のデータ型「long double」を導入するのはどうでしょうか?それはとても便利ですね。実を言うと、"倍 "型の精度が計算には足りないということに遭遇したことがあります。あるいは、任意に定義された精度を持つ演算のための特別なクラスを作る。それをどう見るか。
Документация по MQL5: Основы языка / Типы данных
Документация по MQL5: Основы языка / Типы данных
  • www.mql5.com
Основы языка / Типы данных - Документация по MQL5
 
-Alexey-:
開発者の皆様へ。C/C++から「long double」データ 型を導入することについて、どう思いますか?とても便利だと思います。実は、"ダブル "型の精度は、計算には不十分なんです。あるいは、任意に定義された精度を持つ演算のための特別なクラスを作る。それについてどう思いますか?

お邪魔してすみませんが、宇宙へロケットを打ち上げるのですか?アルゴリズムの最適化とか考えた方がいいのでは?

そのような精度が必要とされる例を教えてください。

 
例えば、正規分布の分位数の数値計算では、P>.9の依存性は水平方向にあり、確率変動の機械ゼロでは2-3符号以上の精度は得られず、P>.99ではさらに悪いので、少なくとも4-5符号の精度で計算する必要があります。といった具合に。数値は少し違うかもしれません、あくまで例です、配分を変えて作業しなければならないので。でも考え方は同じです。なんというロケットなんだ :)
 
また、精度の低さも問題になっています。状況は次のとおりです。価格別に10000件の値の分布関数を作っています。ある区間では関数の値が小さくなり、10000で割った値になります。1*10e-6のオーダーの値が得られ、その差の2乗を求め、1*10e-13のオーダーの値を得る必要がある(その後、そのような値を数千個合計する必要がある)、データは壊滅的に失われる。そして、10000は、実を言うとそれほどでもないのです。だからこそ、開発者には改めて「ロングダブル」の導入をお願いしたい。私の理解では、金融分野では大きなサンプルを使った統計作業は頻繁に要求される作業である。そうでなければ、MQL5に熱中していたのに、C++に乗り換えなければならないことになります。
 
-Alexey-:
精度の低さについては、もう一つ問題があります。状況は次のとおりです。10,000個の値に対して、価格別の分布関数を構築しています。ある区間では、関数の値が小さくなり、10000で割った値になります。1*10e-6のオーダーの値が得られ、その差の2乗を定義すると1*10e-13のオーダーの値が得られ(その後数千の値を合計する必要がある)、データは壊滅的に失われてしまうのだ。そして、10000というのは、実を言うとそれほど多くない。だからこそ、開発者には改めて「ロングダブル」の導入をお願いしたい。私の理解では、金融分野では大きなサンプルを使った統計作業は頻繁に要求される作業である。そうでなければ、せっかくMQL5で盛り上がったのに、C++に切り替えなければならないことが判明します。

mql5のdouble型は、仮数が16桁で、+-10e-307から+-10e307の範囲の数値を扱うことができます。ですから、あなたがおっしゃるような問題はありません。

宣言された仮数では不十分な場合は,仮数を32桁にするなどの高精度クラスを開発する.それはあなたの権利です。

しかし、開発者の大勢は仮数16桁で十分であり、なぜわざわざそんな面倒なことをするのか。

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 
Urain:

mql5のdouble型は、仮数が16桁で、+-10e-307から+-10e307の範囲の数値を扱うことができます。ですから、あなたがおっしゃるような問題はありません。

宣言された仮数では不十分な場合は,仮数を32桁にするなどの高精度クラスを開発する.それはあなたの権利です。

多くの開発者は、16文字の仮数で十分なので、わざわざ仮数をつける必要はないでしょう。

以下はその例です(10000x10000グリッド)。

double x1=0.0011;

double y1=x1/10000;

double x2=0.0012;
double y2=x2/10000;

double c=y1-y2;
double d=MathPow(c,2);


printf(文字列(d));

результат: 9.999999999999968e-017

では、この結果を受けて、どうすればいいのか。他の結果との比較は?DBL_EPSILON=2.2204460492503131e-016.最後の2ケタ以外に、ほらね。それも、たった2回の操作で。そして、このようなオペレーションを増やしています。そして、この情報は、後に何らかの操作でデータを復元するために使用されなければならない。損失が増える。私はC言語のような言語でプログラミングを学んでいるところなので、このようなクラスは私には作るのが難しい(というか方法がわからない)です。これは本格的な作品です。ところで、ひょっとして、そんな授業があるのでしょうか?そして開発者は、みんなのために一気に改善することができます。10万×10万のグリッドを作ることも可能でしょう。すでに多かれ少なかれ代表的なサンプルを入手することができるだろうが、これでも十分とは言えないほど多い。あと、任意精度のクラスも作ってくれたらもっといいんですけどね :)ただのデータ型です。存在するということは、そこに理由があり、必要を満たしているということです。要は、開発者にとって難しいかどうかがわからないということです。難しくて高いなら......私もそう思います。なぜ、私の問題を相手に転嫁するのか。でも、難しくないのなら--なぜやらないのか。ここでもまた、高精度の取引計算を行うための強力な開発環境ということで、競争力がありますね :) 。だから、それについてどう思うかを聞いているんです。
 
-Alexey-:
ここでもまた、高精度の取引計算を行うための強力な開発環境ということで、競争力がありますね :) 。

これはあくまで、あなたから見た場合ですが...。99.9999%は必要ない

専用のソフトを使用する...。

 
AlexSTAL:

これはあくまで、あなたから見た場合ですが...。99.9999%は必要ない

専用のソフトを使用する...。

それが、MTは金融計算に特化した製品なんです。財務計算は、統計的手法の活用と密接な関係がある。また、新しい製品を使いこなす必要もありません。このような対応や種類との戦いよりも、一つの取引環境でTSを開発したいのです。しかも、MQL5のカウントは本当に速いようです。
 
-Alexey-:
そこがポイントで、MTは金融計算に特化した製品なんです。そして、財務計算は統計的手法の活用と密接な関係がある。また、新しい製品を使いこなす必要もありません。このような対応や種類との戦いよりも、一つの取引環境でTSを開発したいのです。しかも、MQL5は本当に速いようです。

どんな開発者でも、必ず何かが足りないということを理解しているのですね......。

500人のプログラマーが10個ずつ願いを書いたら、ビルのようなオフィスが必要になってしまう......。

ファンタジーを実現するために...。

 
AlexSTAL:

どんな開発者でも、必ず何かが足りないということを理解しているのですね......。

500人のプログラマーが10個ずつ願いを書いたら、ビルのようなオフィスが必要になってしまう......。

ファンタジーを実現するために...。

ファンタジーはまったく関係ない。私の疑問は、最も 一般的な分析方法を実施することが可能かどうかということでした。つまり、トレンドとサイクルを取り除いた後に残る行で作業しているのです。この方法は、金融統計の教科書や大学の教材に例外なく書かれている。これは空想ではなく、分析の正統な アプローチの一つです。そして、特化した環境には、このアプローチを実現する手段があるはずだ--どうだろう?