エラー、バグ、質問 - ページ 3149 1...314231433144314531463147314831493150315131523153315431553156...3185 新しいコメント Artyom Trishkin 2022.02.07 10:15 #31481 Vladimir Karputov #:ステップ1:「MQL5 Wizard」を使ってテンプレートを作成します。ステップ2:'limit'のスペルを正しく 入力し、close配列を使用 する - iCloseコールではありません!結果で、エラーはありません。 誰がリミットとインジケータの計算がこれだけが正しいと言った? 歴史の始まりから現在に至るまで、左から右へ、限界の別の計算と指標そのものを議論しています。よりシンプルに、よりわかりやすく。 このような計算による制限(int limit = rates_total - prev_calculated; if(limit>1) limit=rates_total-1; )では、すべてのデータ(int limit = rates_total - prev_calculated; if(limit>1) limit=rates_total-1; )が計算されます。 が現在のティックであるかどうか。 新しいバーの開店であろうと 履歴データの変更であるかどうか。 現在のティック(limit=0)の場合、for(int i=limit; i>=0; i--) { // .} は、新しいティックごとにインジケータを計算し、ゼロバーだけが再計算されます。 新しいバーを開くと(limit=1)、for(int i=limit; i>=0; i--) { // ...となります。は、最初のバーとゼロのバーの計算を実行します - 前のバーと新しく開いたバー この履歴の変更(limit>1)であれば、for(int i=limit; i>=0; i--) { // ...は、利用可能なすべての履歴に対してインジケータの完全な再計算を実行します(履歴はどこかで変更されています)。 Nikolai Semko 2022.02.07 10:21 #31482 TheXpert #: ゼロを下回ることができるのか? はい、あります(前回の記事に追記しました) Roman 2022.02.07 10:30 #31483 この問題を理解していたのは、アルチョムだけだった。 しかし、どうやらこの問題は永遠に続くようだ。 そして、今はifしかない。 Artyom Trishkin 2022.02.07 10:38 #31484 Roman #: アルチョムだけが、この問題を理解していた。しかし、どうやらこの問題は永遠に続くようだ。そして、今はifしかない。 いや、わからなかったんです。私が理解したことを明確にする... Nikolai Semko 2022.02.07 10:41 #31485 Vladimir Karputov #: int limit=prev_calculated-1; if(prev_calculated==0) limit=0; for(int i=limit; i<rates_total; i++) { CloseBuffer[i]=close[i]; } 三項演算子の方が饒舌に見える(IMHO) int limit = prev_calculated==0 ? 0: prev_calculated-1; さらに、先ほど申し上げたように、何かの間違いでprev_calculatedがrates_totalより高くなった場合はどうするのでしょうか。 ウィンドウ内の最大バーが無制限で、例えば50000のような場合、このような状況に遭遇しました。その場合、バー配列のサイズは新しいバーが出るたびに1ずつ増えていきますが、ある瞬間にまた50000になります。その論理にはついていけない。数年前にキャッチした。今すぐ確認する必要がある。VPSでロック解除の設定をします。 Roman 2022.02.07 10:43 #31486 Artyom Trishkin #:いや、わからなかったんです。私が理解したことを明確にする... 今のところ、以前のように動作しないもの limit==0 for tick i>=0 for bars i>0 あなたは上記のすべてを正しく書いています。 new bar misprintedfor(int i=limit; i>=0; i--) 演算子=はここでは必要ありませんが、以前の動作を返さない限りは、、過去にあった ものでしょう。 Artyom Trishkin 2022.02.07 10:50 #31487 Roman #:今のところ、以前のように動作しないものlimit==0 for tick i>=0 for bars i>0 new bar だけfor(int i=limit; i>=0; i--) ここで operator = は必要ありませんが、すでに過去になっているはずなので、そうでなければ 以前の動作を返します。 またしても何もわからない。どうしたんですか?すべてが以前と同じように思える。 Roman 2022.02.07 11:02 #31488 Artyom Trishkin #:また出ないんです。どうしたんですか?すべてが以前と同じように思える。 このデザインで int limit = rates_total-prev_calculated; for(int i=limit; i>=0; i--) インジケータ・バッファが範囲外です。 ループi>=0でのticksの 例を示してください 多分、何か忘れていて間違ったやり方をしているのだと思います。 TheXpert 2022.02.07 11:06 #31489 Roman #:このデザイン、インジケーターバッファが圏外になる。 がいつも出ている。 Nikolai Semko 2022.02.07 11:08 #31490 Roman #:このデザインで インジケータ・バッファが範囲外です。周期i>=0のティックの 例を示してください 多分、私が間違っていることを忘れているのだと思います。 そして、この構文ではrates_total が最後の要素rates_total-1 のバッファのサイズ であるため、オーバーフローとなることを既に書きました。 1...314231433144314531463147314831493150315131523153315431553156...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ステップ1:「MQL5 Wizard」を使ってテンプレートを作成します。
ステップ2:'limit'のスペルを正しく 入力し、close配列を使用 する - iCloseコールではありません!
結果
で、エラーはありません。
誰がリミットとインジケータの計算がこれだけが正しいと言った?
歴史の始まりから現在に至るまで、左から右へ、限界の別の計算と指標そのものを議論しています。よりシンプルに、よりわかりやすく。
このような計算による制限(int limit = rates_total - prev_calculated; if(limit>1) limit=rates_total-1; )では、すべてのデータ(int limit = rates_total - prev_calculated; if(limit>1) limit=rates_total-1; )が計算されます。
現在のティック(limit=0)の場合、for(int i=limit; i>=0; i--) { // .} は、新しいティックごとにインジケータを計算し、ゼロバーだけが再計算されます。
新しいバーを開くと(limit=1)、for(int i=limit; i>=0; i--) { // ...となります。は、最初のバーとゼロのバーの計算を実行します - 前のバーと新しく開いたバー
この履歴の変更(limit>1)であれば、for(int i=limit; i>=0; i--) { // ...は、利用可能なすべての履歴に対してインジケータの完全な再計算を実行します(履歴はどこかで変更されています)。
ゼロを下回ることができるのか?
はい、あります(前回の記事に追記しました)
しかし、どうやらこの問題は永遠に続くようだ。
そして、今はifしかない。
アルチョムだけが、この問題を理解していた。しかし、どうやらこの問題は永遠に続くようだ。そして、今はifしかない。
いや、わからなかったんです。私が理解したことを明確にする...
三項演算子の方が饒舌に見える(IMHO)
さらに、先ほど申し上げたように、何かの間違いでprev_calculatedがrates_totalより高くなった場合はどうするのでしょうか。
ウィンドウ内の最大バーが無制限で、例えば50000のような場合、このような状況に遭遇しました。その場合、バー配列のサイズは新しいバーが出るたびに1ずつ増えていきますが、ある瞬間にまた50000になります。その論理にはついていけない。数年前にキャッチした。今すぐ確認する必要がある。VPSでロック解除の設定をします。
いや、わからなかったんです。私が理解したことを明確にする...
今のところ、以前のように動作しないもの
limit==0
for tick i>=0
for bars i>0
あなたは上記のすべてを正しく書いています。
new bar misprintedfor(int i=limit; i>=0; i--)
演算子=はここでは必要ありませんが、以前の動作を返さない限りは、
、過去にあった ものでしょう。
今のところ、以前のように動作しないもの
limit==0
for tick i>=0
for bars i>0
new bar だけfor(int i=limit; i>=0; i--)
ここで operator = は必要ありませんが、すでに過去になっているはずなので、そうでなければ
以前の動作を返します。
またしても何もわからない。どうしたんですか?すべてが以前と同じように思える。
また出ないんです。どうしたんですか?すべてが以前と同じように思える。
このデザインで
インジケータ・バッファが範囲外です。
ループi>=0でのticksの 例を示してください
多分、何か忘れていて間違ったやり方をしているのだと思います。
このデザイン
、インジケーターバッファが圏外になる。
このデザインで
インジケータ・バッファが範囲外です。
周期i>=0のティックの 例を示してください
多分、私が間違っていることを忘れているのだと思います。
そして、この構文ではrates_total が最後の要素rates_total-1 のバッファのサイズ であるため、オーバーフローとなることを既に書きました。