エラー、バグ、質問 - ページ 3031 1...302430253026302730283029303030313032303330343035303630373038...3185 新しいコメント Andrey Dik 2021.05.28 16:08 #30301 Igor Makanu:私のコードは、あなたが書いたインジケータ#1だけが「すべてのティックに ハンマーで叩く」ことになります。これにより、端末が独自に「より高い時間軸」を構築することが可能になります。私にとっては、インジケータ1の完全な再計算を行うよりも「安上がり」です。これは、「高いTF」で履歴を同期するときにコードで発生します。 はい、しかし、なぜプリフォールトリセットが下位TFにあるのでしょうか? mktr8591 2021.05.28 16:10 #30302 Andrey Dik:はい、しかし、なぜ下位のTFでは、prev kalkがリセットされるのでしょうか? は0を返すからです。 Igor Makanu 2021.05.28 16:15 #30303 Andrey Dik:そうなんですが、なぜTFが低いとプリクラがリセットされるのでしょうか? 多くのバリエーションがあり、実装は不明です 昨年、MT4について同じような議論があり、開発者の一人(Slavaと思う)が、「古いTF」にアクセスするたびに、必要であればデータの同期を 開始すると言っていました...。 MT5でも必要に応じて端末が勝手にTFを構築していたと思うのですが、ネットワークの遅延があったのか・・・実装は不明です・・・。そして、ターミナルは、シニアTFのインジケータにデータを与える前に、サーバーと履歴データを同期させる、それが瞬時に起こるとき、そして、おそらく長い時間がかかるとき、それはおそらくpre_calculated = 0になるときです。 Andrei Trukhanovich 2021.05.28 16:19 #30304 Igor Makanu:選択肢は多く、実装はわからない。 ダウンロードで安値TFのヒストリカルデータが変更されると、安値TFのカウンターは端末によって強制的にゼロにされるので、いきなり問題を起こさないこと Alexey Viktorov 2021.05.28 16:19 #30305 Andrey Dik:同志よ、あなたは私の主張を証明しています。 私は、コーダーとは...同志ではありません。確認ではなく、ヒントです、0を返してはいけません、それで全ての問題が解決します。あなた自身が、インジケーターの完全な再計算を引き起こしているのです。 Igor Makanu 2021.05.28 16:21 #30306 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム バグ、バグ、質問 アンドレイ・ディク 2021.05.28 17:26 Pre_calculatedは、次のバーで1増加しない。 prev_calculatedは実際には増加せず,常に計算終了時と同じ値になる return(rates_total); つまり、OnCalculated()の終了時に戻ってきたものが、次のティックでprev_calculatedに返されます(prev_calculated == 0以外、インジケータの起動時やTFの同期時に端末が行います............)。 Andrei Trukhanovich:ダウンロードでローローTFの履歴データを変更すると、ローTFのカウンタが端末で強制的にゼロになるので、いきなりトラブルを起こさないこと 私は二日目のために彼に書いてきた - Mladenから指標を取ると、それらを勉強する - 彼らは仕事、そしてTF間の任意の複雑な同期せずに、ここで...端末にTFを形成させず、リソースを節約しています。 Alexey Viktorov 2021.05.28 16:26 #30307 Andrei Trukhanovich:取り替えるまでとテストしてください。 どうせ信じてもらえないんだから・・・。 Andrey Dik 2021.05.28 16:27 #30308 Alexey Viktorov:私は......コーダーの味方ではありません。これは確認ではなく、ヒントです。0を返してはいけません。それがすべての問題の原因です。あなた自身が、インジケーターの完全な再計算を引き起こしているのです。 ヒントを出すのはバカでも、理解し説明するのは誰でもできることではありません。 Andrey Dik 2021.05.28 16:29 #30309 Andrei Trukhanovich:取り替えるまでとテストしてください。 アンドレイさん、ありがとうございます。その問いを完全に突き詰めているのは、あなただけです。 2021.05.28 21:22:54.394 LitTF (EURUSD,M2) 期間3の指標はまだ計算されていません。 2021.05.28 21:22:54.396 LitTF (EURUSD,M2) 期間3に関する指標はまだ算出されていない。 2021.05.28 21:22:54.397 OldTF (EURUSD,M3) 0.000262 sec, 50046 bars calculated, total 50046 bars 2021.05.28 21:22:55.796 LitTF (EURUSD,M2) 0.007693 sec, 50000 bars calculated, 50000 total bars 2021.05.28 21:24:02.286 LitTF (EURUSD,M2) 期間3に関する指標は未計算 2021.05.28 21:24:02.286 OldTF (EURUSD,M3) 0.000000 sec, 1 bar calculated, 50047 bars total 2021.05.28 21:24:03.017 LitTF (EURUSD,M2) 0.000015 sec, calculated 1 bars, total bars 50001 2021.05.28 21:26:03.898 LitTF (EURUSD,M2) 0.000007 sec, calculated 1 bars, total bars 50002 指標は最初の1回だけ計算され、その後は各バーにつき1回だけ計算されます。 2つ目のインジケータの最終的なコードですが、どなたかのお役に立てれば幸いです。 int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { ulong t = GetMicrosecondCount (); if (rates_total == prev_calculated) return rates_total; if (SeriesInfoInteger (Symbol (), OldTF, SERIES_SYNCHRONIZED)) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return prev_calculated; } } else { Print ("Период ", OldTF, " не синхронизирован."); return prev_calculated; } ArraySetAsSeries (high, true); ArraySetAsSeries (time, true); int limit = rates_total - prev_calculated - 1; double buff []; int ind = 0; for (int i = limit; i >= 0; i--) { ind = iBarShift (Symbol (), OldTF, time [i], false); if (CopyBuffer (Handle, 0, ind, 1, buff) != -1) { IBuffer [i] = buff [0]; } else { Print ("Ошибка копирования буфера ", GetLastError ()); return 0; } } //---------------------------------------------------------------- double e = (GetMicrosecondCount () - t) / 1000000.0; Print (DoubleToString (e, 6), " sec, расcчитано ", rates_total - prev_calculated, " баров, всего баров ", rates_total); return(rates_total); } Errors, bugs, questions New EA Automated Trading Championship 2010 Alexey Viktorov 2021.05.28 16:32 #30310 Andrey Dik:どんなバカでもヒントを与えてくれるが、細かく理解して助けてくれる人はそういない。 何人の馬鹿が忠告しているか数えてみてください・・・ただ一人の賢い男は誰の声も聞かず頑固に・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。 あなたは自分で問題を作り出し、あなたの...コードをmqlのバグとして提示しようとしています。 1...302430253026302730283029303030313032303330343035303630373038...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私のコードは、あなたが書いたインジケータ#1だけが「すべてのティックに ハンマーで叩く」ことになります。
これにより、端末が独自に「より高い時間軸」を構築することが可能になります。
私にとっては、インジケータ1の完全な再計算を行うよりも「安上がり」です。これは、「高いTF」で履歴を同期するときにコードで発生します。
はい、しかし、なぜプリフォールトリセットが下位TFにあるのでしょうか?
はい、しかし、なぜ下位のTFでは、prev kalkがリセットされるのでしょうか?
そうなんですが、なぜTFが低いとプリクラがリセットされるのでしょうか?
多くのバリエーションがあり、実装は不明です
昨年、MT4について同じような議論があり、開発者の一人(Slavaと思う)が、「古いTF」にアクセスするたびに、必要であればデータの同期を 開始すると言っていました...。
MT5でも必要に応じて端末が勝手にTFを構築していたと思うのですが、ネットワークの遅延があったのか・・・実装は不明です・・・。そして、ターミナルは、シニアTFのインジケータにデータを与える前に、サーバーと履歴データを同期させる、それが瞬時に起こるとき、そして、おそらく長い時間がかかるとき、それはおそらくpre_calculated = 0になるときです。
選択肢は多く、実装はわからない。
ダウンロードで安値TFのヒストリカルデータが変更されると、安値TFのカウンターは端末によって強制的にゼロにされるので、いきなり問題を起こさないこと
同志よ、あなたは私の主張を証明しています。
私は、コーダーとは...同志ではありません。確認ではなく、ヒントです、0を返してはいけません、それで全ての問題が解決します。あなた自身が、インジケーターの完全な再計算を引き起こしているのです。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
アンドレイ・ディク 2021.05.28 17:26
Pre_calculatedは、次のバーで1増加しない。
prev_calculatedは実際には増加せず,常に計算終了時と同じ値になる
return(rates_total);
つまり、OnCalculated()の終了時に戻ってきたものが、次のティックでprev_calculatedに返されます(prev_calculated == 0以外、インジケータの起動時やTFの同期時に端末が行います............)。
ダウンロードでローローTFの履歴データを変更すると、ローTFのカウンタが端末で強制的にゼロになるので、いきなりトラブルを起こさないこと
私は二日目のために彼に書いてきた - Mladenから指標を取ると、それらを勉強する - 彼らは仕事、そしてTF間の任意の複雑な同期せずに、ここで...端末にTFを形成させず、リソースを節約しています。
取り替える
まで
とテストしてください。
どうせ信じてもらえないんだから・・・。
私は......コーダーの味方ではありません。これは確認ではなく、ヒントです。0を返してはいけません。それがすべての問題の原因です。あなた自身が、インジケーターの完全な再計算を引き起こしているのです。
ヒントを出すのはバカでも、理解し説明するのは誰でもできることではありません。
取り替える
まで
とテストしてください。
アンドレイさん、ありがとうございます。その問いを完全に突き詰めているのは、あなただけです。
2021.05.28 21:22:54.394 LitTF (EURUSD,M2) 期間3の指標はまだ計算されていません。
2021.05.28 21:22:54.396 LitTF (EURUSD,M2) 期間3に関する指標はまだ算出されていない。
2021.05.28 21:22:54.397 OldTF (EURUSD,M3) 0.000262 sec, 50046 bars calculated, total 50046 bars
2021.05.28 21:22:55.796 LitTF (EURUSD,M2) 0.007693 sec, 50000 bars calculated, 50000 total bars
2021.05.28 21:24:02.286 LitTF (EURUSD,M2) 期間3に関する指標は未計算
2021.05.28 21:24:02.286 OldTF (EURUSD,M3) 0.000000 sec, 1 bar calculated, 50047 bars total
2021.05.28 21:24:03.017 LitTF (EURUSD,M2) 0.000015 sec, calculated 1 bars, total bars 50001
2021.05.28 21:26:03.898 LitTF (EURUSD,M2) 0.000007 sec, calculated 1 bars, total bars 50002
指標は最初の1回だけ計算され、その後は各バーにつき1回だけ計算されます。
2つ目のインジケータの最終的なコードですが、どなたかのお役に立てれば幸いです。
どんなバカでもヒントを与えてくれるが、細かく理解して助けてくれる人はそういない。
何人の馬鹿が忠告しているか数えてみてください・・・ただ一人の賢い男は誰の声も聞かず頑固に・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
あなたは自分で問題を作り出し、あなたの...コードをmqlのバグとして提示しようとしています。