エラー、バグ、質問 - ページ 1167 1...116011611162116311641165116611671168116911701171117211731174...3185 新しいコメント Artyom Trishkin 2014.07.04 23:32 #11661 Swan: かもしれませんが、正しく送信されているようです。Global Variables ウィンドウが切り替わり、17桁の数字が表示されます。 18... Artyom Trishkin 2014.07.04 23:33 #11662 TheXpert: ユニオンカーストで救われるmql5では構造体を介しても合法です。 MQL4です。何ができるのか? Stanislav Korotky 2014.07.05 16:38 #11663 artmedia70: MQL4です。あなたは何をイメージできますか? 新型MQL4はMQL5に寄せているのでは? Victor Nikolaev 2014.07.05 16:42 #11664 marketeer: 新型MQL4はMQL5に寄せているのでは? そうではありません。Helpから判断すると、ほぼ同じですが。しかし、私たちは判断しません。その結果に注目しています。 TheXpert 2014.07.05 17:38 #11665 artmedia70: MQL4です。何ができるのか?えーと...以下は、4と5の両方で動作するように、原理を説明したスクリプトです。struct DoubleContainer { double value; }; struct LongContainer { long value; }; long ToLong(double value) { DoubleContainer d; d.value = value; LongContainer l = (LongContainer)d; return l.value; } double ToDouble(long value) { LongContainer l; l.value = value; DoubleContainer d = (DoubleContainer)l; return d.value; } void OnStart() { long l = 130462919691841406; double d1 = (double)l; long l1 = (long)d1; double d2 = ToDouble(l); long l2 = ToLong(d2); } Stanislav Korotky 2014.07.05 20:16 #11666 Vinin: そうではありません。ヘルプから判断すると、ほとんど同じものですが。しかし、私たちは判断するつもりはありません。私たちはその結果に興味があるのです。 TheXpertは、結果を出す方法を示してくれたと思います。5の構図はもう4で十分だろ。 Artyom Trishkin 2014.07.06 10:07 #11667 TheXpert:えーと...以下はその原理を記したスクリプトで、4と5で動作するはずです。これは本当におかしい...。#property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long l = 130462919691841406; //--- приведение типов double d1 = (double)l; long l1 = (long)d1; //--- преобразование типов double d2 = ToDouble(l); long l2 = ToLong(d2); //--- поглядим чё натворили Print("long-значение l = "+IntegerToString(l)); Print("long l привели к типу double d1 = "+DoubleToString(d1,Digits)); Print("double d1 привели к типу long l1 = "+IntegerToString(l1)); Print("long l преобразовали в double d2 = "+DoubleToString(d2,Digits)); Print("double d2 преобразовали в long l2 = "+IntegerToString(l2)); ToDoubleString(l); } //+------------------------------------------------------------------+ struct DoubleContainer { double value; }; //+------------------------------------------------------------------+ struct LongContainer { long value; }; //+------------------------------------------------------------------+ long ToLong(double value) { DoubleContainer d; d.value = value; LongContainer l = (LongContainer)d; return l.value; } //+------------------------------------------------------------------+ double ToDouble(long value) { LongContainer l; l.value = value; DoubleContainer d = (DoubleContainer)l; return d.value; } //+------------------------------------------------------------------+ double ToDoubleString(long long_value) { string long_value_str=IntegerToString(long_value); double double_value=StrToDouble(long_value_str); Print("long_value = "+IntegerToString(long_value)+", double_value = "+DoubleToString(double_value,Digits)); return double_value; } //+------------------------------------------------------------------+longをdoubleに変換すると0と表示されます。ただし、それ以降は通常、ダブルゼロはロングに変換し直されます。意味がわからない...。なんだ...???????????? TheXpert 2014.07.06 11:10 #11668 artmedia70: そしてデバッガーを見る?そこには、ごく小さなゼロでない値がある。まだ使える、これ以上何が必要なんだ? Artyom Trishkin 2014.07.06 18:51 #11669 TheXpert: そしてデバッガで調べる?そこには、ごく小さなゼロでない値が存在する。まだ使える、他に必要なものは?ご覧ください。窓のID(長い)を地球儀の端末(2重になっている)に送信する。任意のチャートにインストールしたインジケータ(Expert Advisorが設定する)を、コントロールするExpert AdvisorのチャートのID値を読み取り、そのデータをまさにこのチャートに送信する必要があります。Expert Advisor は、これらのデータを処理し、動作させます。グローバルターミナルに0と表示され、インジケータが目的のチャートの必要なIDを受信し、そこにデータを送信するのかどうか、あまり自信がありません。ゼロを見る。また、Expert Advisorが動作するチャートのIDとは一致しません。確認が必要です。 うまく変換 できない場合は、csvファイルを使用することになります。しかし、損失なくデータ変換ができるように解決したい。そして、損失はなく、真値に2が加算される。文字列に変換しようとしたところ、同じように、送信された値が2つ増え、130462919691841406となりました。//+------------------------------------------------------------------+ void ToDoubleString(long long_value) { string long_value_str=IntegerToString(long_value); double double_value=StrToDouble(long_value_str); Print("long_value = "+long_value_str+", double_value = "+DoubleToString(double_value,Digits)); } //+------------------------------------------------------------------+の結果です。2014.07.07 00:45:08.513 LongToDouble EURUSD,H4: long_value = 130462919691841406, double_value = 130462919691841408.00000よくわからないけど... TheXpert 2014.07.06 19:03 #11670 タ・マァー...転送前のロングからダブルを入れる必要があります。グローバル 変数の場合。1.34*e-307もあれば、4.29*e+120もある、長いビットがあるからです。送信後、ダブりからロングに解凍してください。 それだけです。 1...116011611162116311641165116611671168116911701171117211731174...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
かもしれませんが、正しく送信されているようです。Global Variables ウィンドウが切り替わり、17桁の数字が表示されます。
ユニオンカーストで救われるmql5では構造体を介しても合法です。
MQL4です。あなたは何をイメージできますか?
新型MQL4はMQL5に寄せているのでは?
MQL4です。何ができるのか?
えーと...
以下は、4と5の両方で動作するように、原理を説明したスクリプトです。
そうではありません。ヘルプから判断すると、ほとんど同じものですが。しかし、私たちは判断するつもりはありません。私たちはその結果に興味があるのです。
えーと...
以下はその原理を記したスクリプトで、4と5で動作するはずです。
これは本当におかしい...。
longをdoubleに変換すると0と表示されます。ただし、それ以降は通常、ダブルゼロはロングに変換し直されます。意味がわからない...。
なんだ...????????????
そしてデバッガで調べる?そこには、ごく小さなゼロでない値が存在する。まだ使える、他に必要なものは?
ご覧ください。窓のID(長い)を地球儀の端末(2重になっている)に送信する。任意のチャートにインストールしたインジケータ(Expert Advisorが設定する)を、コントロールするExpert AdvisorのチャートのID値を読み取り、そのデータをまさにこのチャートに送信する必要があります。Expert Advisor は、これらのデータを処理し、動作させます。グローバルターミナルに0と表示され、インジケータが目的のチャートの必要なIDを受信し、そこにデータを送信するのかどうか、あまり自信がありません。ゼロを見る。また、Expert Advisorが動作するチャートのIDとは一致しません。確認が必要です。
うまく変換 できない場合は、csvファイルを使用することになります。しかし、損失なくデータ変換ができるように解決したい。そして、損失はなく、真値に2が加算される。
文字列に変換しようとしたところ、同じように、送信された値が2つ増え、130462919691841406となりました。
の結果です。
よくわからないけど...
タ・マァー...
転送前のロングからダブルを入れる必要があります。グローバル 変数の場合。1.34*e-307もあれば、4.29*e+120もある、長いビットがあるからです。
送信後、ダブりからロングに解凍してください。
それだけです。