ある指標でゼロ除算エラーが発生した - ページ 8 1234567891011 新しいコメント Sergey Savinkin 2018.07.04 22:07 #71 Aleksey Vyazmikin:があるとします。 start_time は2018.04.28 23:00 であるべき ことが分かっています。 つまり、ここで時間が間違っていることが判明したわけですね。 アレクセイ、私の例を見てください。私はそこで、あなたが通過した1時間ごとの時間が、現在のバーから最も近い時間に変換される様子を1行ずつ示しました。 Алексей Тарабанов 2018.07.04 22:42 #72 変数limit型の宣言が見つかりませんでした。視力が弱いんです。 Sergey Savinkin 2018.07.04 22:46 #73 Алексей Тарабанов: 変数型制限の宣言が見つかりませんでした。視力が弱いんです。ポスト50、プロシージャOnCalculate Алексей Тарабанов 2018.07.04 22:51 #74 Sergey Savinkin:ポスト50、OnCalculateプロシージャありがとうございます。でも、50ってどれですか?リンク先を教えてください。 Sergey Savinkin 2018.07.04 22:53 #75 Алексей Тарабанов:ありがとうございます、でも50はどれですか?リンク先を教えてください。https://www.mql5.com/ru/forum/262864/page5 リンクはあくまでページへのリンクです。投稿のタイトルに50位と書いてありますね。あなたの#74 )) В одном индикаторе появилась ошибка деления на ноль 2018.07.04www.mql5.com Общее обсуждение: В одном индикаторе появилась ошибка деления на ноль Алексей Тарабанов 2018.07.04 22:55 #76 ありがとうございました。 Aleksey Vyazmikin 2018.07.04 23:00 #77 Sergey Savinkin:limit=start_index-stop_index+1 が最初に書かれていますが、これはlimit==1 で、次に 2 で割った ところがlimit=(int)(stop_time-start_time)/PeriodSeconds(_Period) となっていますね。1つは追加されません。ゼロは周期で区切られる。そうですね、limit=start_index-stop_index+1はi>0の場合、つまりヒストリー計算 の場合、limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)は現在のバーでの計算の場合ですね。 そして、このことは、実際、なぜ私たちの時間が曲がっているのかということです。1時間の時間枠があれば、日付は最初も最後も丸くなければなりません。これが本当の問題で、開始日のバータイムがなぜか間違っているのです!!! おそらく、ここに問題があるのでしょう。 start_index=ArrayBsearch(Time,start_time);この時点でstart_timeが正しくなるため datetime start_time=rates[i].time; Алексей Тарабанов 2018.07.04 23:21 #78 アレクセイ、「最後に」はないんだよ。ただの数値化です。18時ちょうどにバーが開き、最小値と最大値を表示し、同じ秒数で安全に閉じました。 Aleksey Vyazmikin 2018.07.04 23:29 #79 Алексей Тарабанов: アレクセイ、"最後に "はないんです。量子化されるだけです。18時ちょうどにバーがオープンし、最小値と最大値を表示し、同じ瞬間に安全にクローズしました。例えば、18:00にバーが開いたので、最初の時間(start_time)は18:00、最後の時間(stop_time)は1時間足のタイムフレームでは19:00となるはずです。したがって、M1タイムフレームでは両者の指数は異なることになる。また、コード上では、開始インデックスと終了インデックスが同じになっていますが、これは誤りです。 Sergey Savinkin 2018.07.04 23:31 #80 Aleksey Vyazmikin:そうですね、limit=start_index-stop_index+1はi>0の場合、つまりヒストリー計算 の場合、limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)は現在のバーでの計算の場合ですね。そして、このことは、実際、なぜ私たちの時間が曲がっているのかということです。1時間の時間枠があれば、日付は最初も最後も丸くなければなりません。これが本当の問題で、開始日のバータイムがなぜか間違っているのです!!!おそらく、ここに問題があるのでしょう。この時点ではstart_timeが正しいのでそして、まず1時間ごとのタイムフレームからCopyRatesを作り(丸い数字になる)、現在のタイムフレームからCreateFigure プロシージャに時間(Timeになる)と1時間ごとのタイムフレームからRatesを渡し、現在のタイムフレームの配列からインデックスを 探すと、なぜ丸くなっているのか?start_index=ArrayBsearch(Time,start_time) です。 1234567891011 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
があるとします。
start_time は2018.04.28 23:00 であるべき ことが分かっています。
つまり、ここで時間が間違っていることが判明したわけですね。
アレクセイ、私の例を見てください。私はそこで、あなたが通過した1時間ごとの時間が、現在のバーから最も近い時間に変換される様子を1行ずつ示しました。
変数型制限の宣言が見つかりませんでした。視力が弱いんです。
ポスト50、プロシージャOnCalculate
ポスト50、OnCalculateプロシージャ
ありがとうございます。でも、50ってどれですか?リンク先を教えてください。
ありがとうございます、でも50はどれですか?リンク先を教えてください。
https://www.mql5.com/ru/forum/262864/page5
リンクはあくまでページへのリンクです。投稿のタイトルに50位と書いてありますね。あなたの#74 ))
limit=start_index-stop_index+1 が最初に書かれていますが、これはlimit==1 で、次に 2 で割った ところがlimit=(int)(stop_time-start_time)/PeriodSeconds(_Period) となっていますね。1つは追加されません。ゼロは周期で区切られる。
そうですね、limit=start_index-stop_index+1はi>0の場合、つまりヒストリー計算 の場合、limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)は現在のバーでの計算の場合ですね。
そして、このことは、実際、なぜ私たちの時間が曲がっているのかということです。1時間の時間枠があれば、日付は最初も最後も丸くなければなりません。これが本当の問題で、開始日のバータイムがなぜか間違っているのです!!!
おそらく、ここに問題があるのでしょう。
この時点でstart_timeが正しくなるため
datetime start_time=rates[i].time;
アレクセイ、"最後に "はないんです。量子化されるだけです。18時ちょうどにバーがオープンし、最小値と最大値を表示し、同じ瞬間に安全にクローズしました。
例えば、18:00にバーが開いたので、最初の時間(start_time)は18:00、最後の時間(stop_time)は1時間足のタイムフレームでは19:00となるはずです。したがって、M1タイムフレームでは両者の指数は異なることになる。また、コード上では、開始インデックスと終了インデックスが同じになっていますが、これは誤りです。
そうですね、limit=start_index-stop_index+1はi>0の場合、つまりヒストリー計算 の場合、limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)は現在のバーでの計算の場合ですね。
そして、このことは、実際、なぜ私たちの時間が曲がっているのかということです。1時間の時間枠があれば、日付は最初も最後も丸くなければなりません。これが本当の問題で、開始日のバータイムがなぜか間違っているのです!!!
おそらく、ここに問題があるのでしょう。
この時点ではstart_timeが正しいので
そして、まず1時間ごとのタイムフレームからCopyRatesを作り(丸い数字になる)、現在のタイムフレームからCreateFigure プロシージャに時間(Timeになる)と1時間ごとのタイムフレームからRatesを渡し、現在のタイムフレームの配列からインデックスを 探すと、なぜ丸くなっているのか?start_index=ArrayBsearch(Time,start_time) です。