エラー、バグ、質問 - ページ 3030 1...302330243025302630273028302930303031303230333034303530363037...3185 新しいコメント mktr8591 2021.05.28 15:31 #30291 Andrey Dik:は0を返し、まだ何もカウントしていないことを示し、次のバーで1ずつ増加しない。つまり、return(rates_total)するまで、古いファクターからのデータの要求を開始したバーにいることになります。 ヘルプより: 「関数呼び出しのprev_calculatedパラメータには 、前の 呼び出しで OnCalculate()が 返した 値が含ま れます」。 Andrey Dik 2021.05.28 15:35 #30292 mktr8591: ヘルプより:"関数呼び出し時のprev_calculatedパラメータには 、前の 呼び出し 時にOnCalculate()によって 返された 値が含ま れます。 " しかし、このブランチは、ヘルプや常識と一致しないことが発見されることがあるからこそ存在するのです。 Andrey Dik 2021.05.28 15:38 #30293 Сергей Таболин:1.皆さんありがとうございます。インジケータのリテラシーが少し上がりました )))アンドリュー、もし誰かがあなたの考えを理解しないなら(私も含めて)、それはたった一つのことだ。というか、多くの人に理解されないようにやっているのでは・・・。 真実はもっと重要です。しかし、残念ながら、それは誰にとっても明確なものではありません。 mktr8591 2021.05.28 15:41 #30294 Andrey Dik: は0を返すので、まだ何もカウントしておらず、次のバーでprev_calcが1だけ増加することはないことを示します。 では、return(rates_total)はprev_calcをrates_totalだけ増加させるべきでしょうか? Andrei Trukhanovich 2021.05.28 15:43 #30295 Andrey Dik:は0を返すので、まだ何も計算しておらず、次のバーでprev kalkが1増加することはないことを意味します。 自ら計算をゼロにして、ゼロにすることに文句を言う ) Igor Makanu 2021.05.28 15:48 #30296 Andrey Dik:新しいバーを計算するのは一度だけで、毎回のティックではありません。 端末が "上位TF "の履歴データをオンラインで生成しないので、その余裕がない。 一般に、ここでは何らかの前提が必要である。 - OHLCをインジケータ内に自分で構築するか - または端末自身がOHLCを構築する もし後者であれば、端末はTFがどのように相互作用し、誰が何の倍数であり、「新しいバー」イベントで何が起こるかを全く知らないと考えるべきでしょう。が、端末に必要なTFを構築させるべきです。 このコードを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[]) { double buff []; if(prev_calculated == 0) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return 0; } } else { if (rates_total == prev_calculated) { if(CopyBuffer (Handle, 0, 0, 1, buff)<0) return 0; return rates_total; } } ulong t = GetMicrosecondCount (); ...... далее без изменений Andrey Dik 2021.05.28 15:49 #30297 Andrei Trukhanovich:自ら計算をリセットし、リセットされたことに文句を言う ) アンドレイ、コードを実行してくれ...でも、もうやめてよ、あなたとは戦えないんだから。 Andrey Dik 2021.05.28 15:52 #30298 Igor Makanu:旧来のTFでは、端末がオンラインで履歴データを生成しないので、余裕がない。一般に、ここでは何らかの前提が必要である。- インジケータ内でOHLCを独自に構築するか- または端末自身がOHLCを構築するもし後者であれば、端末はTFがどのように相互作用し、誰が何の複数であり、「新しいバー」イベントで何が起こるかを知らないことを考慮する必要があります。このコードを2つ目のインジケータで試してみてください。 あなたのコードはティックごとに計算を行うので、私には面白くありません、実行する気にもなれません。私は、使用するすべてのインジケータの各ティックではなく、各バーで1回だけ計算を行う必要があります。 Igor Makanu 2021.05.28 16:00 #30299 Andrey Dik:あなたのコードは、すべてのティックに計算を打ち込むつもりです、私は興味がありません、私はそれを実行することさえしません。私は、使用されているすべての指標の各ティックではなく、各バーで1回だけ計算を実行する必要があります。 私のコードは、あなたが書いたインジケータ#1だけを "tick bytick"します。 if (rates_total == prev_calculated) return rates_total; を使えば、端末が勝手に「高い時間軸」を構築してくれるようになります。 私のために - それは "古いTF "の歴史を同期させるときにあなたのコードで発生する指標№1の完全な再計算を実行するよりも "安い "です。 Andrei Trukhanovich 2021.05.28 16:07 #30300 Andrey Dik:Andreiさん、コードを実行していただけますか?でも、もうやめてよ、あなたとは戦えないんだから。 交換 if (SeriesInfoInteger (Symbol (), OldTF, SERIES_SYNCHRONIZED)) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return 0; } } else { Print ("Период ", OldTF, " не синхронизирован."); return 0; } まで if (SeriesInfoInteger (Symbol (), OldTF, SERIES_SYNCHRONIZED)) { if (iBars (Symbol (), OldTF) != BarsCalculated (Handle)) { Print ("Индикатор на периоде ", OldTF, " ещё не рассчитан"); return prev_calculated; } } else { Print ("Период ", OldTF, " не синхронизирован."); return prev_calculated; } とテストしてください。 1...302330243025302630273028302930303031303230333034303530363037...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
は0を返し、まだ何もカウントしていないことを示し、次のバーで1ずつ増加しない。
つまり、return(rates_total)するまで、古いファクターからのデータの要求を開始したバーにいることになります。
ヘルプより:"関数呼び出し時のprev_calculatedパラメータには 、前の 呼び出し 時にOnCalculate()によって 返された 値が含ま れます。 "
しかし、このブランチは、ヘルプや常識と一致しないことが発見されることがあるからこそ存在するのです。
1.皆さんありがとうございます。インジケータのリテラシーが少し上がりました )))
アンドリュー、もし誰かがあなたの考えを理解しないなら(私も含めて)、それはたった一つのことだ。というか、多くの人に理解されないようにやっているのでは・・・。
真実はもっと重要です。しかし、残念ながら、それは誰にとっても明確なものではありません。
Andrey Dik:
は0を返すので、まだ何もカウントしておらず、次のバーでprev_calcが1だけ増加することはないことを示します。
では、return(rates_total)はprev_calcをrates_totalだけ増加させるべきでしょうか?
は0を返すので、まだ何も計算しておらず、次のバーでprev kalkが1増加することはないことを意味します。
自ら計算をゼロにして、ゼロにすることに文句を言う )
新しいバーを計算するのは一度だけで、毎回のティックではありません。
端末が "上位TF "の履歴データをオンラインで生成しないので、その余裕がない。
一般に、ここでは何らかの前提が必要である。
- OHLCをインジケータ内に自分で構築するか
- または端末自身がOHLCを構築する
もし後者であれば、端末はTFがどのように相互作用し、誰が何の倍数であり、「新しいバー」イベントで何が起こるかを全く知らないと考えるべきでしょう。が、端末に必要なTFを構築させるべきです。
このコードを2つ目のインジケータで試してみてください。
自ら計算をリセットし、リセットされたことに文句を言う )
アンドレイ、コードを実行してくれ...でも、もうやめてよ、あなたとは戦えないんだから。
旧来のTFでは、端末がオンラインで履歴データを生成しないので、余裕がない。
一般に、ここでは何らかの前提が必要である。
- インジケータ内でOHLCを独自に構築するか
- または端末自身がOHLCを構築する
もし後者であれば、端末はTFがどのように相互作用し、誰が何の複数であり、「新しいバー」イベントで何が起こるかを知らないことを考慮する必要があります。
このコードを2つ目のインジケータで試してみてください。
あなたのコードはティックごとに計算を行うので、私には面白くありません、実行する気にもなれません。私は、使用するすべてのインジケータの各ティックではなく、各バーで1回だけ計算を行う必要があります。
あなたのコードは、すべてのティックに計算を打ち込むつもりです、私は興味がありません、私はそれを実行することさえしません。私は、使用されているすべての指標の各ティックではなく、各バーで1回だけ計算を実行する必要があります。
私のコードは、あなたが書いたインジケータ#1だけを "tick bytick"します。
を使えば、端末が勝手に「高い時間軸」を構築してくれるようになります。
私のために - それは "古いTF "の歴史を同期させるときにあなたのコードで発生する指標№1の完全な再計算を実行するよりも "安い "です。
Andreiさん、コードを実行していただけますか?でも、もうやめてよ、あなたとは戦えないんだから。
交換
まで
とテストしてください。