専門家集団 - ページ 2 123456789...11 新しいコメント Forex Trader 2005.04.15 06:51 #11 ストッパーについては、「クールダウン」(正しい呼び方がわかりません)を導入した方が良いと思います。 ピップの精度でストップをトレースすると、ブローカーは吠えてExpert Advisorを切ってしまいます :) この方がいいと思うんです。 if (MathAbs(CurrentStopLoss - NewStopLoss) > (Ask - Bid)*Koef) { // ストップロスを修正 ......................}. つまり、新しいストップが古いストップと所定のスプレッド数(1-2)だけ異なる場合、注文を修正するのです。 あなたの悩みは、ここで自動的に解決します。 Forex Trader 2005.04.15 10:08 #12 Makさん、アドバイスありがとうございます。します。 ただ、ここだけ問題が違っていて、同じ値を設定しようとするのです。つまり、このようなチェックは、エラーを回避するのではなく、その確率を下げるだけです =) Forex Trader 2005.04.15 11:23 #13 ただ、ここだけ問題が違っていて、同じ値を設定しようとするのです。つまり、このようなチェックは、エラーを回避するのではなく、その確率を下げるだけです =) EAのテキストの不具合である可能性が高いです。 似たようなのがあって、どう直したか覚えていない。 しかし、上記の例では、スクリプト内のエラーは確実に は、同じ値に設定しようとすることはありません。 Forex Trader 2005.04.15 11:50 #14 Только тут проблема в другом - оно пытается установить _на_то_же_значение_... т.е. такая проверка не спасёт от ошибки, а просто уменьшит её вероятность =) 専門家のテキストの不具合である可能性が高いです。同じようなものがあった、どうやって直したのか、覚えていない。しかし、上記の例では、スクリプトにエラーが発生しても が同じ値に設定しようとしないことを保証しています。 Makさん、そこに1行のテキストがあります =)_TrailingStop( orderticket, 50 ); このようなエラーを避けるために、正確に関数を書きました。チェックは同じですが、すべてのピップが ワークアウトされるという違いがあります。もし値が同じなら(この場合、価格からストップまでの距離は50に等しい)、トレーリングストップは機能しないはずです。しかも、ほとんどの場合うまくいかない =゜)))彡、なぜかすり抜けることも・・・。 Forex Trader 2005.04.15 12:29 #15 NormalizeDoubleの 動作が異なる場合があるのかもしれませんね。 四捨五入しているのか、捨てているのか? 一般に、浮動小数点型は等価比較しない方が良いと言われています。 唯一の例外は、 double A,B; ...... A = ......; ...... B = A; ....... if (B == A)................................................................................. そして、1行について・・・。_TrailingStopにはたくさんの行があり、 、2つでもあれば、すでにエラーの原因になっています :) Forex Trader 2005.04.15 12:46 #16 何をするのか、捨てるのか、丸めるのか。 私も気になるところです;) すでにここで一部修正しました: instead( orderstoploss == 0.0 ...... ) せいぞうif ( orderstoploss <= 0 ........................................)で、あとは問題ないようでした。....orderstoploss < ( bid - TrailingStop * point ) レナート、私はあなたに期待しているんですよ。 Forex Trader 2005.04.15 13:38 #17 週末に手伝えることがあるかどうか確認します。 Forex Trader 2005.04.15 14:37 #18 今週末に見てみて、参考にしたいと思います。ちゃんとしなきゃ...。 Forex Trader 2005.04.15 16:34 #19 きっと角度のような単純なもので、私が気づいていないだけなのでしょう......。 komposterさん、間違ってますよ :)スプーン曲げの少女が言ったように、「物事は見かけによらない」のです。 例えば、次のループは5つの数字を表示する。 for (double d = 0.1; d <= 0.5; d += 0.1) Print(d); 次のサイクルでは、バウンダリーを1.0増やして、どのくらい印刷するのでしょうか? for (double d = 1.1; d <= 1.5; d += 0.1) Print(d); 5つの数字も印刷されるかと思いきや、4(フォー)しか印刷されない。素晴らしいことだと思いませんか? ループの後にもう1行追加すると Print("d=" + d + "(d <= 1.5)=" + (d <= 1.5)); を得ることができます。 d=1.50000000 (d <= 1.5)=0 ほとんどあなたのストップ付きと同じですが、より基本的なものです :) 。この問題は、最初のコンピューターチップと同じくらい古いものです。 コンピュータは2進数、人間は10進数で計算します。丸め処理を行うと、アーチファクトが発生します。 Makが提案した "切り上げ "は、些細なバグではなく、丸め方に根本的な問題がある場合に有効です。 多くの人は、金融計算には特別な10進数演算ライブラリを使用しなければならないと考えていますが、そのようなライブラリでも、時にはエラーが発生することがあります。 というのは、時に重大な結果をもたらすことがあります。ところで、Renatさんは算術のどの実装を使っているのでしょうか? Forex Trader 2005.04.17 10:30 #20 komposter ざっと見たところ(まだ調べてませんが)、計算しているポイント リファレンスが見つかりました。 捨てる」ことを心がけ、Pointを置く。おそらくそれが問題なのでしょう(MarketInfoのポイントは、必ずしも思い通りにならないかも?) 123456789...11 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ピップの精度でストップをトレースすると、ブローカーは吠えてExpert Advisorを切ってしまいます :)
この方がいいと思うんです。
つまり、新しいストップが古いストップと所定のスプレッド数(1-2)だけ異なる場合、注文を修正するのです。
あなたの悩みは、ここで自動的に解決します。
ただ、ここだけ問題が違っていて、同じ値を設定しようとするのです。つまり、このようなチェックは、エラーを回避するのではなく、その確率を下げるだけです =)
EAのテキストの不具合である可能性が高いです。
似たようなのがあって、どう直したか覚えていない。
しかし、上記の例では、スクリプト内のエラーは確実に
は、同じ値に設定しようとすることはありません。
専門家のテキストの不具合である可能性が高いです。同じようなものがあった、どうやって直したのか、覚えていない。しかし、上記の例では、スクリプトにエラーが発生しても が同じ値に設定しようとしないことを保証しています。
Makさん、そこに1行のテキストがあります =
このようなエラーを避けるために、正確に関数を書きました。チェックは同じですが、すべてのピップが ワークアウトされるという違いがあります。もし値が同じなら(この場合、価格からストップまでの距離は50に等しい)、トレーリングストップは機能しないはずです。しかも、ほとんどの場合うまくいかない =゜)))彡、なぜかすり抜けることも・・・。
四捨五入しているのか、捨てているのか?
一般に、浮動小数点型は等価比較しない方が良いと言われています。
唯一の例外は、
.................................................................................
そして、1行について・・・。_TrailingStopにはたくさんの行があり、 、2つでもあれば、すでにエラーの原因になっています :)
すでにここで一部修正しました: instead
せいぞう
で、あとは問題ないようでした。
レナート、私はあなたに期待しているんですよ。
komposterさん、間違ってますよ :)スプーン曲げの少女が言ったように、「物事は見かけによらない」のです。
例えば、次のループは5つの数字を表示する。
次のサイクルでは、バウンダリーを1.0増やして、どのくらい印刷するのでしょうか?
5つの数字も印刷されるかと思いきや、4(フォー)しか印刷されない。素晴らしいことだと思いませんか?
ループの後にもう1行追加すると
を得ることができます。
ほとんどあなたのストップ付きと同じですが、より基本的なものです :) 。この問題は、最初のコンピューターチップと同じくらい古いものです。
コンピュータは2進数、人間は10進数で計算します。丸め処理を行うと、アーチファクトが発生します。
Makが提案した "切り上げ "は、些細なバグではなく、丸め方に根本的な問題がある場合に有効です。
多くの人は、金融計算には特別な10進数演算ライブラリを使用しなければならないと考えていますが、そのようなライブラリでも、時にはエラーが発生することがあります。
というのは、時に重大な結果をもたらすことがあります。ところで、Renatさんは算術のどの実装を使っているのでしょうか?
ざっと見たところ(まだ調べてませんが)、計算しているポイント リファレンスが見つかりました。
捨てる」ことを心がけ、Pointを置く。おそらくそれが問題なのでしょう(MarketInfoのポイントは、必ずしも思い通りにならないかも?)