週末を含むカウントバー - ページ 3 123456789 新しいコメント Dmitry Fedoseev 2020.04.26 08:36 #21 Igor Makanu: 複雑な、秒単位で日付間の時間(datetime)がある - これは、24時間、各時間に60分、1分に60秒で、全体の日数を計算するのに十分です...助けるためにGoogleの。 ひねくれた数え方ということであれば、こんなやり方もありますよ。 ご指摘のように、各バーをカウントして、現在のバーと前のバーの間に週末があったかどうかを調べることができます...一般的にここでは、タスクを複雑にする可能性は欲求によって制限されています ))) まず、時間間隔は0:0から始まり、0:0で終わると仮定してみましょう。 Igor Makanu 2020.04.26 08:44 #22 Dmitry Fedoseev: まず、時間間隔が0:0で始まり、0:0で終わると仮定することから始めなければならない。 私の例ではこの仮定は必要ありませんが、1暦年内の計算であると仮定する必要があります。 最初の投稿に解決策がありましたが、代わりにトピックに別の解決策があるはずです キミウからの唯一の有用なコード、私は見たことがあると思います Dmitry Fedoseev 2020.04.26 08:45 #23 Igor Makanu: 私の例ではこの仮定は必要ありませんが、1暦年内の計算であると仮定する必要があります。 最初の投稿に解決策がありました。または、KimIVからの有用なコードのみというトピックに別の解決策があるはずです。 カウントする必要があるのは日数だけでなく、労働日や週末も含まれます。 Igor Makanu 2020.04.26 08:49 #24 Dmitry Fedoseev:カウントするのは日数だけでなく、平日でも土日でも構いません。問題の表現が曖昧で何とも言えない。forex2030 です。 D1のようなポイント間の週末をどのように把握し、必要なバーに追加するのでしょうか? もし、あなたの表現によると、コピータイム() 日中バーをコピーし、ループで週末のバーを分析しますが、週末のバーで何をするのでしょうか?- と表示されるのですが、追加したいのでしょうか? Dmitry Fedoseev 2020.04.26 08:52 #25 Igor Makanu: 問題の表現が曖昧で何とも言えない。... D1などのポイント間の出力 数をどのように把握し、必要なバー数に 加算するのか」という曖昧さです。" なぜこれが必要なのかは、また別の問題です。 Dmitry Fedoseev 2020.04.26 09:14 #26 int WorkingDays(datetime startDate,datetime endDate){ int d=int((endDate-startDate)/86400); int m[7,7]={ {0, 0,1,2,3,4,5}, // воскр {0, 1,2,3,4,5,5}, // понед {0, 1,2,3,4,4,4}, // вторн {0, 1,2,3,3,3,4}, // среда {0, 1,2,2,2,3,4}, // четв {0, 1,1,1,2,3,4}, // пятн {0, 0,0,1,2,3,4} // субб }; return (d/7)*5+m[(int)TimeDayOfWeek(startDate)][d%7]; } 確認したようで、問題ないようです。手抜きがないか確認する Igor Makanu 2020.04.26 09:18 #27 Dmitry Fedoseev: D1などの ポイント間の出力 数をどのように把握し、必要なバー数に 加算するのか」という曖昧さです。" そして、なぜそれが必要なのかは、また別の問題です。 あと2時間くらいおしゃべりすれば、問題の評価が始まって、2本のバーの間にいくつの出力ができるのか......ということになると思うんです。そしてきっと、月曜日の前には必ず日曜日が来るという対応策があるのだろう。 ))))) 日数計算をdatetimeの引き算で修正することで、このコードはすべてのケースで機能すると思います。 input datetime d_start = D'2020.01.01 12:30:27'; input datetime d_stop = D'2020.02.01'; //+------------------------------------------------------------------+ void OnStart() { const int day_in_sec = 24 * 60 * 60; datetime d_corect1 = d_start - d_start % day_in_sec; datetime d_corect2 = d_stop - d_stop % day_in_sec; int result = (int)((d_corect2 - d_corect1) / day_in_sec); printf("всего %i дней ", result); } //+------------------------------------------------------------------+ Alexey Viktorov 2020.04.26 09:28 #28 forex2030: 日付別 最初のポイントに、私はバーを追加します。 そして、これらの日付の間にあるバーの 数を数えます。 int Bars( string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период datetime start_time, // с какой даты datetime stop_time // по какую дату ); 設定したバー数より少なくなる。設定した棒の本数と取得した棒の本数の差は、休みの日数です。このようにして、任意の期間、たとえ1分単位の期間であっても、バーの本数を求めることができる。ただ、この関数から返されるバーの本数をよく確認してください。外側の2本のバー、またはどちらか一方が考慮されます。正確には覚えていませんが、どちらも検討されているようです。 Dmitry Fedoseev 2020.04.26 09:35 #29 Alexey Viktorov: そして、これらの日付の間にあるバーの 数を数えます。 与えられた棒の本数より少ない本数しかもらえない。与えられた棒グラフの数と受け取った棒グラフの数の差が、休みの日数です。このようにして、任意の期間、たとえ1分単位の期間であっても、バーの本数を求めることができる。ただ、この関数から返されるバーの本数をよく確認してください。外側の2本のバー、またはどちらか一方が考慮されます。正確には覚えていませんが、どちらも検討されているようです。 まだバーがない日付の話。 Igor Makanu 2020.04.26 09:40 #30 念のため、例として、何本のバーが欠けているかをカウントします。 input datetime d_start = D'2020.01.01 12:30:27'; input datetime d_stop = D'2020.02.01'; //+------------------------------------------------------------------+ void OnStart() { const int day_in_sec = 24 * 60 * 60; datetime d_corect1 = d_start - d_start % day_in_sec; datetime d_corect2 = d_stop - d_stop % day_in_sec; int result = (int)((d_corect2 - d_corect1) / day_in_sec); printf("всего %i дней ", result); datetime t_arr[]; int allbarD1 = CopyTime(_Symbol, PERIOD_D1, d_start, d_stop, t_arr); if(allbarD1 < 0) { printf("Error CopyTime() func № %i", GetLastError()); return; } printf("Всего выходных % i дней", result - allbarD1); } //+------------------------------------------------------------------+ 123456789 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
複雑な、秒単位で日付間の時間(datetime)がある - これは、24時間、各時間に60分、1分に60秒で、全体の日数を計算するのに十分です...助けるためにGoogleの。
ひねくれた数え方ということであれば、こんなやり方もありますよ。
ご指摘のように、各バーをカウントして、現在のバーと前のバーの間に週末があったかどうかを調べることができます...一般的にここでは、タスクを複雑にする可能性は欲求によって制限されています )))
まず、時間間隔は0:0から始まり、0:0で終わると仮定してみましょう。
まず、時間間隔が0:0で始まり、0:0で終わると仮定することから始めなければならない。
私の例ではこの仮定は必要ありませんが、1暦年内の計算であると仮定する必要があります。
最初の投稿に解決策がありましたが、代わりにトピックに別の解決策があるはずです キミウからの唯一の有用なコード、私は見たことがあると思います
私の例ではこの仮定は必要ありませんが、1暦年内の計算であると仮定する必要があります。
最初の投稿に解決策がありました。または、KimIVからの有用なコードのみというトピックに別の解決策があるはずです。
カウントする必要があるのは日数だけでなく、労働日や週末も含まれます。
カウントするのは日数だけでなく、平日でも土日でも構いません。
問題の表現が曖昧で何とも言えない。
D1のようなポイント間の週末をどのように把握し、必要なバーに追加するのでしょうか?
問題の表現が曖昧で何とも言えない。
...D1などのポイント間の出力 数をどのように把握し、必要なバー数に 加算するのか」という曖昧さです。"
なぜこれが必要なのかは、また別の問題です。
確認したようで、問題ないようです。手抜きがないか確認する
D1などの ポイント間の出力 数をどのように把握し、必要なバー数に 加算するのか」という曖昧さです。"
そして、なぜそれが必要なのかは、また別の問題です。
あと2時間くらいおしゃべりすれば、問題の評価が始まって、2本のバーの間にいくつの出力ができるのか......ということになると思うんです。そしてきっと、月曜日の前には必ず日曜日が来るという対応策があるのだろう。
)))))
日数計算をdatetimeの引き算で修正することで、このコードはすべてのケースで機能すると思います。
日付別
最初のポイントに、私はバーを追加します。
そして、これらの日付の間にあるバーの 数を数えます。
設定したバー数より少なくなる。設定した棒の本数と取得した棒の本数の差は、休みの日数です。このようにして、任意の期間、たとえ1分単位の期間であっても、バーの本数を求めることができる。ただ、この関数から返されるバーの本数をよく確認してください。外側の2本のバー、またはどちらか一方が考慮されます。正確には覚えていませんが、どちらも検討されているようです。そして、これらの日付の間にあるバーの 数を数えます。
与えられた棒の本数より少ない本数しかもらえない。与えられた棒グラフの数と受け取った棒グラフの数の差が、休みの日数です。このようにして、任意の期間、たとえ1分単位の期間であっても、バーの本数を求めることができる。ただ、この関数から返されるバーの本数をよく確認してください。外側の2本のバー、またはどちらか一方が考慮されます。正確には覚えていませんが、どちらも検討されているようです。まだバーがない日付の話。
念のため、例として、何本のバーが欠けているかをカウントします。