MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 973 1...966967968969970971972973974975976977978979980...1953 新しいコメント im-zvv 2019.09.21 09:34 #9721 こんにちは。 よろしくお願いします。単純な配列の動作確認(値の代入)を行う場合。 a[0][2]=91.49999999993754; Print("a[0][2]=",a[0][2]); H= 1/(1+exp(-a[0][2])) となる。 a[0][2]=Hとする。 Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])), " H=",H," a[0][2]=",a[0][2]) とする。 結果を得ることができる。 2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.4999999999993754 2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0 どうしてですか? Any questions from newcomers static array ? 静的配列 ? Igor Makanu 2019.09.21 09:50 #9722 im-zvv: こんにちは。 よろしくお願いします。単純な配列の動作確認(値の代入)を行う場合。 a[0][2]=91.49999999993754; Print("a[0][2]=",a[0][2]); H= 1/(1+exp(-a[0][2])) となる。 a[0][2]=Hとする。 Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])), " H=",H," a[0][2]=",a[0][2]) とする。 結果を得ることができる。 2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.4999999999993754 2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0 どうしてですか? これは再現が難しい例ですが、型変換をして いるため、期待とは異なる結果が得られるのではないでしょうか。 このコードで実験してみてください。 void OnStart() { double a; int b = 2; a = b / 5; // a = 0.0 Print("a = ",a); } を、これで。 void OnStart() { double a; int b = 2; a = b /(double) 5; // a = 0.4 Print("a = ",a); } и void OnStart() { double a; int b = 2; a = b / 5.0; // a = 0.4 Print("a = ",a); } をフォーラムで検索してください。要するに、C変換は最初ちょっと混乱します ;) im-zvv 2019.09.21 10:50 #9723 int型 変数を使った例がたくさん紹介されていますね。 私の変数はすべてダブルです。 だから、変数を同じ形式に変換してもうまくいかない。 Igor Makanu 2019.09.21 10:57 #9724 im-zvv: int型 変数を使った例がたくさん紹介されていますね。 私の変数はすべてダブルです。 だから、同じフォーマットへの変数変換はうまくいかない。 a[0][2]=91.49999999993754; Print("a[0][2]=",a[0][2]); H=1/(1+exp(-a[0][2])) となる。 a[0][2]=Hとする。 Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])), " H=",H," a[0][2]=",a[0][2]) とする。 結果を得ることができる。 2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.4999999999993754 2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0 どうしてですか? あなたは整数定数を持って いるだけでなく、例自体は再現性がありません - 変数型を持たない、よく一般的に - 私の "例の山 "は、PCなしで計算することができ、あなたの例...e^(-91.49999)は何なのか教えてください。 わかった 忘れてくれ 助けられんよ im-zvv 2019.09.21 11:18 #9725 助けられない」のは残念だが...。 問題は、e^(-91.49999)がいくらかではなく、e^(-91.49999)がいくらかです。問題は、double= H, という型の変数がなぜ間違って書かれているのか、ということです。 は、先ほど計算された double 型の数値 =0.7310585786300049 ですが、1.0 と書かれています(ちなみに double 型)。 テスターで私のコードを使ってみると、あなたのMT4も同じように表示されると思います。 もしそうなら、単純にMQL4を仕事で使うことはできないし、危険です Igor Makanu 2019.09.21 11:37 #9726 im-zvv: 残念・・・「どうしようもない」・・・。 手伝った、手伝うって言ってもやってくれないとどうせ読まないし、結果も気になるしね〜。 im-zvv。 もしそうなら、MQL4は単純に仕事には使えないし、危険です MQL4 / MQL5の数式計算の動作は、C++と同じです。 C++のフォーラムで質問していただければ、アセットが助けてくれるかもしれません。 あなたの質問は、ヘルプ/説明/教えるから、MTプラットフォームの議論に移動しました、それが好きではない、あなたはそれを無料で受け取ったのですか? ...古代、物理的なプロセスを理解していなかったために、人々はパニックに陥り、雷や地震を恐れていた。最初はパニックと憶測を引き起こし、やがて宗教が生まれた )))) im-zvv 2019.09.21 11:49 #9727 そんなに怒らなくてもいいのに。 もし、あなたの個人的な感情を傷つけてしまったのなら、心からお詫びします。 MT4の議論や判断は全くしていません。私は単にあなたが実行することを提案しました。 MT4のテスターでお送りしたコードを実行して、もしすべての変数(H、a[0][2])を実行するように申し入れただけです。 がdoubleで定義されていて、結果は私と同じなのですが、疑問があります。 何が問題なのか?あなた宛のものです。 改めて : すみません...「助けられない」...。 さようなら。 Igor Makanu 2019.09.21 11:59 #9728 im-zvv: すべての変数(H,a[0][2])が はダブルで定義されます。 もう一度言いますが、数式に定数は入っていますか?- 私の例でも、定数5 ...そして、整数の定数5を明示的にdouble型に持ってきました。 あなたの質問は、私はあなたの質問が何であるか表示されない場合がありますが、フォーラムで定期的に繰り返されている - あなたは "重い式 "と明らかではない変数を持っている - 例から不要な削除 - 配列と指数 - あなたはすべての不要な削除した場合、あなたはおそらくあなたが期待したものではない得た場所を見つけるだろうが、問題は何かわかります - 私は通常行う;)。 HH:とマイナス91.49乗に指数 - 非常に小さな数字ではありませんか? タイプダブルは、偉大な精度を持っていますが、百乗とアカウントにマイナス記号を取る - 私の意見では、この式は、精度が失われます、私はGoogleにしたくないが、最初のものは、 私はこのWikiを介してスクロール します。 im-zvv 2019.09.21 12:38 #9729 お待たせしました。 これを試してみた。 A=91.49999999993754;//a[0][2]=91.49999999993754; Print("A=",A)。 H= 1/(1+exp(-A))とする。 //A=H; Print("1/(1+exp(-A))=",1/(1+exp(-A)), " H=",H," a[0][2]=", a[0][2]). 結果 2019.09.21 16:14:17.691 2011.01.04 22:29:51 w eurusd,h4: a=91.4999999999993754 2019.09.21 16:14:17.690 2011.01.04 22:29:50 w EURUSD,H4: 1/(1+exp(-A))=1.0 H=1.0 a[0][2]=0.0 !!!!!これは、1/(1+exp(-91.499999993754))=1.0を表していますが、A=Hのコードのままだと、Printコマンドで計算が続いてしまうので、( なぜ1/(1+exp(-91.499999993754))=1.0なのか、その理由を探ってみることにします。 ご理解をお願いします。今はニューラルネットワークのチューニングとトレーニングに追われています。 コード自体が粗いので、私自身でも混乱しています... :) ネットワークがエラーを繰り返していることに気がついた。そして、主な間違いはシグモイドの計算です。にはならないはずです。 Any questions from newcomers static array ? 静的配列 ? Igor Makanu 2019.09.21 12:53 #9730 im-zvv: お待たせしました。 これを試してみた。 A=91.49999999993754;//a[0][2]=91.49999999993754; Print("A=",A)。 H= 1/(1+exp(-A))とする。 //A=H; Print("1/(1+exp(-A))=",1/(1+exp(-A)), " H=",H," a[0][2]=", a[0][2]). 結果 2019.09.21 16:14:17.691 2011.01.04 22:29:51 w eurusd,h4: a=91.4999999999993754 2019.09.21 16:14:17.690 2011.01.04 22:29:50 w EURUSD,H4: 1/(1+exp(-A))=1.0 H=1.0 a[0][2]=0.0 !!!!!これは、1/(1+exp(-91.499999993754))=1.0を表していますが、A=Hのコードのままだと、Printコマンドで計算が続いてしまいます( なぜ1/(1+exp(-91.499999993754))=1.0なのか、その理由を探ってみることにします。 ご理解をお願いします。今はニューラルネットワークのチューニングとトレーニングに追われています。 コード自体が粗いので、私自身でも混乱しています... :) ネットワークがエラーを繰り返していることに気がついた。そして、主な間違いはシグモイドの計算です。は、=1であってはならない。 だから何も見つからない、そう思ってチェックすることにしたのですが、コードのバグや不正確な部分がどこにあるのかを探さなければなりません。 void OnStart() { double a=91.49999999993754; Print("1. a = ",a); double H= 1/(1+exp(-a)); a=H; Print("2. a = ",a); Print("3. H = ",H); double e = exp(-91.49999999993754); Print("4. e = ",e); } 2019.09.21 16:53:01.516 tst_template EURUSD,H1: 4. e = 1.828331349163451e-40 2019.09.21 16:53:01.516 tst_template EURUSD,H1: 3.H = 1.0 2019.09.21 16:53:01.516 tst_template EURUSD,H1: 2. a = 1.0 2019.09.21 16:53:01.516 tst_template EURUSD,H1: 1. a = 91.49999999993754 で、ステップごとに計算して結果をプリントアウトするのですが、私見では、ステップ#4ですでに精度が落ちると思います、私の結果は次の通りです。82 × 10^(-40) - これは非常に小さな数であり、将来的にこのような小さな数字で任意の操作は、さらに多くの精度を失うことになる、これは実数で作業するときに、いわゆる "マジック" - 整数またはダブルで計算をしようとするような小さな数で精度を失わない ために、仮数番号を失うことなく - あなたは10^40で掛ける必要がある... - その後、一般的にはカウントする必要があるので、先に私は助けないでしょう行く Any questions from newcomers Weekly Winners Weekly performance 1...966967968969970971972973974975976977978979980...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
よろしくお願いします。単純な配列の動作確認(値の代入)を行う場合。
a[0][2]=91.49999999993754;
Print("a[0][2]=",a[0][2]);
H= 1/(1+exp(-a[0][2])) となる。
a[0][2]=Hとする。
Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])), " H=",H," a[0][2]=",a[0][2]) とする。
結果を得ることができる。
2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.4999999999993754
2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0
どうしてですか?
こんにちは。
よろしくお願いします。単純な配列の動作確認(値の代入)を行う場合。
a[0][2]=91.49999999993754;
Print("a[0][2]=",a[0][2]);
H= 1/(1+exp(-a[0][2])) となる。
a[0][2]=Hとする。
Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])), " H=",H," a[0][2]=",a[0][2]) とする。
結果を得ることができる。
2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.4999999999993754
2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0
どうしてですか?
これは再現が難しい例ですが、型変換をして いるため、期待とは異なる結果が得られるのではないでしょうか。
このコードで実験してみてください。
を、これで。
и
をフォーラムで検索してください。要するに、C変換は最初ちょっと混乱します ;)
int型 変数を使った例がたくさん紹介されていますね。
私の変数はすべてダブルです。
だから、変数を同じ形式に変換してもうまくいかない。
int型 変数を使った例がたくさん紹介されていますね。
私の変数はすべてダブルです。
だから、同じフォーマットへの変数変換はうまくいかない。
a[0][2]=91.49999999993754;
Print("a[0][2]=",a[0][2]);
H=1/(1+exp(-a[0][2])) となる。
a[0][2]=Hとする。
Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])), " H=",H," a[0][2]=",a[0][2]) とする。
結果を得ることができる。
2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.4999999999993754
2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0
どうしてですか?
あなたは整数定数を持って いるだけでなく、例自体は再現性がありません - 変数型を持たない、よく一般的に - 私の "例の山 "は、PCなしで計算することができ、あなたの例...e^(-91.49999)は何なのか教えてください。
わかった 忘れてくれ 助けられんよ
助けられない」のは残念だが...。
問題は、e^(-91.49999)がいくらかではなく、e^(-91.49999)がいくらかです。問題は、double= H, という型の変数がなぜ間違って書かれているのか、ということです。
は、先ほど計算された double 型の数値 =0.7310585786300049 ですが、1.0 と書かれています(ちなみに double 型)。
テスターで私のコードを使ってみると、あなたのMT4も同じように表示されると思います。
もしそうなら、単純にMQL4を仕事で使うことはできないし、危険です
残念・・・「どうしようもない」・・・。
手伝った、手伝うって言ってもやってくれないとどうせ読まないし、結果も気になるしね〜。
もしそうなら、MQL4は単純に仕事には使えないし、危険です
MQL4 / MQL5の数式計算の動作は、C++と同じです。 C++のフォーラムで質問していただければ、アセットが助けてくれるかもしれません。
あなたの質問は、ヘルプ/説明/教えるから、MTプラットフォームの議論に移動しました、それが好きではない、あなたはそれを無料で受け取ったのですか?
...古代、物理的なプロセスを理解していなかったために、人々はパニックに陥り、雷や地震を恐れていた。最初はパニックと憶測を引き起こし、やがて宗教が生まれた ))))
そんなに怒らなくてもいいのに。
もし、あなたの個人的な感情を傷つけてしまったのなら、心からお詫びします。
MT4の議論や判断は全くしていません。私は単にあなたが実行することを提案しました。
MT4のテスターでお送りしたコードを実行して、もしすべての変数(H、a[0][2])を実行するように申し入れただけです。
がdoubleで定義されていて、結果は私と同じなのですが、疑問があります。
何が問題なのか?あなた宛のものです。
改めて : すみません...「助けられない」...。
さようなら。
すべての変数(H,a[0][2])が
はダブルで定義されます。
もう一度言いますが、数式に定数は入っていますか?- 私の例でも、定数5 ...そして、整数の定数5を明示的にdouble型に持ってきました。
あなたの質問は、私はあなたの質問が何であるか表示されない場合がありますが、フォーラムで定期的に繰り返されている - あなたは "重い式 "と明らかではない変数を持っている - 例から不要な削除 - 配列と指数 - あなたはすべての不要な削除した場合、あなたはおそらくあなたが期待したものではない得た場所を見つけるだろうが、問題は何かわかります - 私は通常行う;)。
HH:とマイナス91.49乗に指数 - 非常に小さな数字ではありませんか? タイプダブルは、偉大な精度を持っていますが、百乗とアカウントにマイナス記号を取る - 私の意見では、この式は、精度が失われます、私はGoogleにしたくないが、最初のものは、 私はこのWikiを介してスクロール します。
お待たせしました。
これを試してみた。
A=91.49999999993754;//a[0][2]=91.49999999993754;
Print("A=",A)。
H= 1/(1+exp(-A))とする。
//A=H;
Print("1/(1+exp(-A))=",1/(1+exp(-A)), " H=",H," a[0][2]=", a[0][2]).
結果
2019.09.21 16:14:17.691 2011.01.04 22:29:51 w eurusd,h4: a=91.4999999999993754
2019.09.21 16:14:17.690 2011.01.04 22:29:50 w EURUSD,H4: 1/(1+exp(-A))=1.0 H=1.0 a[0][2]=0.0
なぜ1/(1+exp(-91.499999993754))=1.0なのか、その理由を探ってみることにします。
ご理解をお願いします。今はニューラルネットワークのチューニングとトレーニングに追われています。 コード自体が粗いので、私自身でも混乱しています... :)
ネットワークがエラーを繰り返していることに気がついた。そして、主な間違いはシグモイドの計算です。にはならないはずです。
お待たせしました。
これを試してみた。
A=91.49999999993754;//a[0][2]=91.49999999993754;
Print("A=",A)。
H= 1/(1+exp(-A))とする。
//A=H;
Print("1/(1+exp(-A))=",1/(1+exp(-A)), " H=",H," a[0][2]=", a[0][2]).
結果
2019.09.21 16:14:17.691 2011.01.04 22:29:51 w eurusd,h4: a=91.4999999999993754
2019.09.21 16:14:17.690 2011.01.04 22:29:50 w EURUSD,H4: 1/(1+exp(-A))=1.0 H=1.0 a[0][2]=0.0
なぜ1/(1+exp(-91.499999993754))=1.0なのか、その理由を探ってみることにします。
ご理解をお願いします。今はニューラルネットワークのチューニングとトレーニングに追われています。 コード自体が粗いので、私自身でも混乱しています... :)
ネットワークがエラーを繰り返していることに気がついた。そして、主な間違いはシグモイドの計算です。は、=1であってはならない。
だから何も見つからない、そう思ってチェックすることにしたのですが、コードのバグや不正確な部分がどこにあるのかを探さなければなりません。
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 4. e = 1.828331349163451e-40
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 3.H = 1.0
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 2. a = 1.0
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 1. a = 91.49999999993754