mql5言語の特徴、微妙なニュアンスとテクニック - ページ 128 1...121122123124125126127128129130131132133134135...247 新しいコメント fxsaber 2019.02.19 21:28 #1271 これは私にとって大きな啓示です// Скрипт показыает, что цены открытия/закрытия не просто не нормализованы, но и разные при схожем значении #property strict #include <MT4Orders.mqh> // Заполнение массива ценами открытия/закрытия int FillPrices( double &Prices[] ) { const int Total = OrdersHistoryTotal(); ArrayResize(Prices, Total << 1); int Amount = 0; for (int i = 0; i < Total; i++) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { Prices[Amount++] = OrderOpenPrice(); Prices[Amount++] = OrderClosePrice(); } return(ArrayResize(Prices, Amount)); } // true - нормализованная разность равна нуля, сама разность - отлична от нуля. bool IsBadPrices( const double &Price1, const double &Price2 ) { return(!NormalizeDouble(Price1 - Price2, 5) && (Price1 != Price2)); } // Находит цены открытия/закрытия, которые // с нормализацией равны друг другу, // без нормализации - не равны. int CheckPrices( const double &Prices[] ) { int Res = 0; const int Size = ArraySize(Prices); for (int i = 0; i < Size - 1; i++) { const double Price = Prices[i]; for (int j = i + 1; j < Size; j++) if (IsBadPrices(Price, Prices[j])) { Print((string)Price + " - " + (string)Prices[j] + " = " + (string)(Price - Prices[j])); // Распечатываем найденые цены Res++; } } return(Res); } void OnStart() { double Prices[]; FillPrices(Prices); Print(CheckPrices(Prices)); // Количество "несовпадающих" пар цен. } 結果 1.95562 - 1.95562 = -2.220446049250313 e-016 1.95562 - 1.95562 = -2.220446049250313 e-016 1.71599 - 1.71599 = -2.220446049250313 e-016 1.71599 - 1.71599 = -2.220446049250313 e-016 1.58028 - 1.58028 = -2.220446049250313 e-016 14.806 - 14.806 = -1.77635683940025 e-015 1.95521 - 1.95521 = -2.220446049250313 e-016 1.95521 - 1.95521 = -2.220446049250313 e-016 8 MT4で同じスクリプトを実行するとさらに落ち込みますが、そこにはもっと大きなストーリーがあります。説明しよう。 ここでは、ポジションが同じ価格でオープンされ、クローズされたことがわかります。しかし、正規化せずに比較すると、両者の価格は同じではありません ZZY Checked Tester - そこには、そのような悪意はないようです。 Alexey Navoykov 2019.02.20 00:42 #1272 Ilya Malev:タイプミスがあったようです。そこで最小スプレッドは本当なのか? もしそうなら、技術サポートに書いて修正してもらうべき(中程度に)。 そうでなければ、テスターのgrailsの ための豆知識だ。 fxsaber 2019.02.20 06:26 #1273 fxsaber:テスターで確認したところ、そのような悪意はないようです。リアルティックを除くすべてのテスターモードでは、価格は正規化されません。 // Советник выводит цены, которые не нормализованы #property strict // true - нормализованная цена не равна оригинальной bool IsBadPrice( const double &Price ) { return(NormalizeDouble(Price, 5) != Price); } #define TOSTRING(A) #A + " = " + (string)(A) + " " //const bool Init = EventSetMillisecondTimer(50); //void OnTimer() void OnTick() { for (int i = SymbolsTotal(true) - 1; i >= 0; i--) { const string Symb = SymbolName(i, true); const double PriceBid = SymbolInfoDouble(Symb, SYMBOL_BID); const double PriceAsk = SymbolInfoDouble(Symb, SYMBOL_ASK); if (IsBadPrice(PriceBid)) Print(TOSTRING(Symb) + TOSTRING(PriceBid) + TOSTRING(NormalizeDouble(PriceBid, 5) - PriceBid)); if (IsBadPrice(PriceAsk)) Print(TOSTRING(Symb) + TOSTRING(PriceAsk) + TOSTRING(NormalizeDouble(PriceAsk, 5) - PriceAsk)); } } 結果 2019.02.18 23:57:24 Symb = EURUSD PriceBid = 1.13088 NormalizeDouble(PriceBid,5)-PriceBid = -2.220446049250313 e-016 2019.02.18 23:57:26 Symb = EURUSD PriceAsk = 1.13112 NormalizeDouble(PriceAsk,5)-PriceAsk = -2.220446049250313 e-016 2019.02.18 23:57:27 Symb = EURUSD PriceBid = 1.13085 NormalizeDouble(PriceBid,5)-PriceBid = -2.220446049250313 e-016 2019.02.18 23:58:18 Symb = EURUSD PriceAsk = 1.13112 NormalizeDouble(PriceAsk,5)-PriceAsk = -2.220446049250313 e-016 大げさに言えば、これはテスターのバグです。 fxsaber 2019.02.20 13:05 #1274 アカウントにログインしようとしたときに、取引サーバーに接続できなかったとします。 また、例えば、デモ口座の有効期限が切れていて、ログインしようとすると「無効な口座です」と表示される場合。 この障害にもかかわらず、ターミナルに表示されない場合でも、すべての取引履歴を利用できます! Aleksey Vyazmikin 2019.02.20 13:31 #1275 fxsaber:アカウントにログインしようとしたときに、取引サーバーに接続できなかったとします。 また、例えば、デモ口座の有効期限が切れていて、ログインしようとすると「無効な口座です」と表示される場合。 この障害にもかかわらず、ターミナルに表示されない場合でも、すべての取引履歴を利用できます!では、その履歴はどこに保存されているのでしょうか。 Ilya Malev 2019.02.20 17:55 #1276 Alexey Navoykov:つまり、最小スプレッドが現実的に存在するのか? もしそうなら、テクニカルサポートに書いて、(中程度に)直してもらうべきです。 そうでなければ、テスターのgrailsのための豆知識です。バグ、質問 "ブランチでは、すでに何も変更されませんと公式に答えている。正確には、合理的な質問をすべて無視し、「本物のティックでテストしてください」と答えただけで、厳密には否定的な答えだと解釈しています。 不幸な自己欺瞞のための「豆知識」なのです。が、多分誰かが何らかの方法でカンニングするために商業的にそれを使用することができます(すなわち、証券会社 - 人は本当のティックに取得しない場合は、このようにスプレッド規範の誤った印象を作成し、99.9%がそうしないでしょう)。 Alexey Navoykov 2019.02.21 10:40 #1277 Ilya Malev:それは他の誰かが何とかごまかすために商業的にそれを使用することができますが(すなわち、証券会社 - 人は本物のダニに取得しない場合は、このようにスプレッド規範の誤った印象を作成し、99.9%はありません)。理論的には、サーバー上ですべてが同期されるはずです。 ティックにあるものはバーにもあるはずです。 しかし、もちろん、現実にはどうなのかはわかりません。 Artyom Trishkin 2019.02.23 09:18 #1278 このトピックに関係のないコメントは、「mql4言語の特徴、複雑さ、テクニック」に移動しました。 fxsaber 2019.03.08 07:38 #1279 MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。 大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。例えば、他のリソースのアカウントや個人アカウントのパスワードをバッファ経由で貼り付けると、現在のMEセッションの履歴に入ります。 Vitaly Muzichenko 2019.03.08 07:40 #1280 fxsaber:MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。 大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。例えば、バッファ経由でアカウントのパスワードを貼り付けると、現在のMEセッションの履歴に入ります。うわー、暗号通貨のパスワードをコピーしちゃった。それが私にとってどれだけ不利なことか。 1...121122123124125126127128129130131132133134135...247 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
結果
MT4で同じスクリプトを実行するとさらに落ち込みますが、そこにはもっと大きなストーリーがあります。説明しよう。
ここでは、ポジションが同じ価格でオープンされ、クローズされたことがわかります。しかし、正規化せずに比較すると、両者の価格は同じではありません
ZZY Checked Tester - そこには、そのような悪意はないようです。
タイプミスがあったようです。
そこで最小スプレッドは本当なのか? もしそうなら、技術サポートに書いて修正してもらうべき(中程度に)。 そうでなければ、テスターのgrailsの ための豆知識だ。
テスターで確認したところ、そのような悪意はないようです。
リアルティックを除くすべてのテスターモードでは、価格は正規化されません。
結果
大げさに言えば、これはテスターのバグです。
アカウントにログインしようとしたときに、取引サーバーに接続できなかったとします。
また、例えば、デモ口座の有効期限が切れていて、ログインしようとすると「無効な口座です」と表示される場合。
この障害にもかかわらず、ターミナルに表示されない場合でも、すべての取引履歴を利用できます!
アカウントにログインしようとしたときに、取引サーバーに接続できなかったとします。
また、例えば、デモ口座の有効期限が切れていて、ログインしようとすると「無効な口座です」と表示される場合。
この障害にもかかわらず、ターミナルに表示されない場合でも、すべての取引履歴を利用できます!
では、その履歴はどこに保存されているのでしょうか。
つまり、最小スプレッドが現実的に存在するのか? もしそうなら、テクニカルサポートに書いて、(中程度に)直してもらうべきです。 そうでなければ、テスターのgrailsのための豆知識です。
バグ、質問 "ブランチでは、すでに何も変更されませんと公式に答えている。正確には、合理的な質問をすべて無視し、「本物のティックでテストしてください」と答えただけで、厳密には否定的な答えだと解釈しています。
不幸な自己欺瞞のための「豆知識」なのです。が、多分誰かが何らかの方法でカンニングするために商業的にそれを使用することができます(すなわち、証券会社 - 人は本当のティックに取得しない場合は、このようにスプレッド規範の誤った印象を作成し、99.9%がそうしないでしょう)。それは他の誰かが何とかごまかすために商業的にそれを使用することができますが(すなわち、証券会社 - 人は本物のダニに取得しない場合は、このようにスプレッド規範の誤った印象を作成し、99.9%はありません)。
理論的には、サーバー上ですべてが同期されるはずです。 ティックにあるものはバーにもあるはずです。 しかし、もちろん、現実にはどうなのかはわかりません。
MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。
大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。例えば、他のリソースのアカウントや個人アカウントのパスワードをバッファ経由で貼り付けると、現在のMEセッションの履歴に入ります。
MEには、ALT+Vの組み合わせで、システムクリップボードの以前の値を見ることができます。ブラウザから何かをコピーして、MEがバックグラウンドで作業していたとしても、MEはそれを見て記憶しています。
大雑把に言うと、MEはあなたがコンピュータで行う多くのことを見ているのです。例えば、バッファ経由でアカウントのパスワードを貼り付けると、現在のMEセッションの履歴に入ります。
うわー、暗号通貨のパスワードをコピーしちゃった。それが私にとってどれだけ不利なことか。