MQL4ドキュメントに関するディスカッション - ページ 16 1...91011121314151617181920 新しいコメント Sceptic Philozoff 2007.03.20 11:04 #151 Yurixx: そして、ダブルノーマライズの必要なタイミングを明示してほしい。 その通り、ここには明らかな誤解がある。この関数のヘルプには、この関数が全く役に立たない例が示されています。 double NormalizeDouble() 倍精度、整数値) 浮動小数点値を与えられた精度で丸める。double 型の正規化された値を返す。 計算されたStopLossとTakeProfitの値、および保留中の注文の建値は、あらかじめ定義されたDigitsの 変数に格納されている値で正規化する必要があります。 パラメータ 価値 - 浮動小数点値。 すうじ - 精度形式、小数点以下の桁数(0〜8)。 サンプルです。 double var1=0.123456789; Print(DoubleToStr(NormalizeDouble(var1,5),5)); // 出力:0.12346 このダブルコンバージョンは、初めて見たとき、とても戸惑いました。実際、Expert Advisorのログにコードを出力すると Print( DoubleToStr( var1, 5 ); おそらく、いくつかの取引関数を使った例の方が、はるかに有益でしょう。つまり、正規化が本当に必要なのはそこなのです。stdlib.mq4のCompareDoubles()関数を使った例も大変参考になります(初心者が必ずと言っていいほど踏むところです)。 // Функция корректного сравнения двух переменных типа double из библиотеки stdlib.mq4 bool CompareDoubles(double number1,double number2) { if(NormalizeDouble(number1-number2,8)==0) return(true); else return(false); } レナート それは選択肢としてないんですか? PSmith 2007.03.20 11:37 #152 せっかくなので、私が以前から悩んでいたことを質問してみたいと思います。以下はサンプルコードです。 int start() { double haOpen, haHigh, haLow, haClose; if(Bars<=10) return(0); ExtCountedBars=IndicatorCounted(); //---- check for possible errors if (ExtCountedBars<0) return(-1); 1回目のリターン(0)と2回目のリターン(-1)の根本的な違いは何でしょうか? インジケーター(またはExpert Advisor)の実行にどのような影響を与えるのですか? 負の値が返された場合はどうなりますか? などと書いてもいいのでしょうか? void start() { // //... // return; } Rashid Umarov 2007.03.20 12:17 #153 戻り値は端末で解析されないので、原理的に違いはありません(現時点では)。実は、これはプログラマー自身が、この場合はstart()の非標準的な終了(値マイナス1)があることを理解しやすくするための記録スタイルなのです。 ANDREAS BOURINARIS 2007.03.20 13:58 #154 PSmith: また、 のような書き方をしてもいいのでしょうか。 void start() { // //... // return; } 例えば最近、私が書いているのはそんな感じです。:)しかも、ファイナルリターンも全く使っていない。ドキュメントのどこかに、voidのような 関数ではfinal returnは必要ない、とまで書いてあったような気がします。 Sceptic Philozoff 2007.03.20 14:12 #155 ここでもう一つ疑問があるのですが、なぜ関数 doubleiVolume() 文字列シンボル,int timeframe,int shift) は double 型の値を返すか? Rashid Umarov 2007.03.20 14:14 #156 元々はdoubleではなかったのですが、ある時突然、int型が 出来高の保存に必ずしも適していないことが判明しました(例えば、ボラティリティの高い商品の月次タイムフレームを例にとると)。 この場合、オーバーフローエラーが発生しやすくなります。 Sceptic Philozoff 2007.03.20 14:36 #157 ドキュメント(データ型)より: 整数定数は-2147483648から2147483647までの 値を取ることができます。2002年7月、EURUSD: 1ヶ月のティック数の履歴の最大値、670000。この最大ティック量でも オーバーフローするのに3000ヶ月、つまり250年かかることになる。一方で、数量はさらに増える可能性もあるので、理論的にはそれほど実現不可能な数字ではないのですが......。 Rashid Umarov 2007.03.20 14:50 #158 Mathemat: ドキュメント(データ型)より: 整数定数は-2147483648から2147483647までの 値を取ることができます。2002年7月、EURUSD: 1ヶ月のティック数の履歴の最大値、670000。この最大ティック量でもオーバーフローするのに3000ヶ月、つまり250年かかることになる。一方で、数量はさらに増える可能性もあるので、理論的にはそれほど実現不可能な数字ではないのですが......。 私自身もその質問をしたところ、まさにそのような答えが返ってきました。信じがたいことでも。しかし、株式市場からの引用をMT4に入れると・・・。 Sceptic Philozoff 2007.03.20 15:02 #159 同月に_DJI - 42228720!ああ... Yurixx 2007.03.20 15:52 #160 Rosh さん、私があなたの沈黙を正しく理解するならば、どのようなケースで、どのような式や変数の正規化が必要なのか、明確なステートメントがありません。もしそうなら、もっと簡単な質問に答えることができるかもしれない。 int StLs=25; double prc = Ask + StLs*Point; それとも、自分で実験して見つけた方がいいのでしょうか? 1...91011121314151617181920 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そして、ダブルノーマライズの必要なタイミングを明示してほしい。
計算されたStopLossとTakeProfitの値、および保留中の注文の建値は、あらかじめ定義されたDigitsの 変数に格納されている値で正規化する必要があります。
このダブルコンバージョンは、初めて見たとき、とても戸惑いました。実際、Expert Advisorのログにコードを出力すると
おそらく、いくつかの取引関数を使った例の方が、はるかに有益でしょう。つまり、正規化が本当に必要なのはそこなのです。stdlib.mq4のCompareDoubles()関数を使った例も大変参考になります(初心者が必ずと言っていいほど踏むところです)。
レナート それは選択肢としてないんですか?
1回目のリターン(0)と2回目のリターン(-1)の根本的な違いは何でしょうか?
インジケーター(またはExpert Advisor)の実行にどのような影響を与えるのですか?
負の値が返された場合はどうなりますか?
などと書いてもいいのでしょうか?
また、 のような書き方をしてもいいのでしょうか。
ドキュメント(データ型)より: 整数定数は-2147483648から2147483647までの 値を取ることができます。2002年7月、EURUSD: 1ヶ月のティック数の履歴の最大値、670000。この最大ティック量でも オーバーフローするのに3000ヶ月、つまり250年かかることになる。一方で、数量はさらに増える可能性もあるので、理論的にはそれほど実現不可能な数字ではないのですが......。
ドキュメント(データ型)より: 整数定数は-2147483648から2147483647までの 値を取ることができます。2002年7月、EURUSD: 1ヶ月のティック数の履歴の最大値、670000。この最大ティック量でもオーバーフローするのに3000ヶ月、つまり250年かかることになる。一方で、数量はさらに増える可能性もあるので、理論的にはそれほど実現不可能な数字ではないのですが......。
私自身もその質問をしたところ、まさにそのような答えが返ってきました。信じがたいことでも。しかし、株式市場からの引用をMT4に入れると・・・。
Rosh さん、私があなたの沈黙を正しく理解するならば、どのようなケースで、どのような式や変数の正規化が必要なのか、明確なステートメントがありません。もしそうなら、もっと簡単な質問に答えることができるかもしれない。
int StLs=25;
double prc = Ask + StLs*Point;
それとも、自分で実験して見つけた方がいいのでしょうか?