タイマー - ページ 4

 

OnTimerのイベントの範囲を1秒未満にすること。

そして、あるプロセスをミリ秒単位で測定できるようにすること。

...(int delay=0)」での考え方が全く理解できなかったので、デタラメに書いてしまったのです。

 
Yedelkin:
お分かりのように、この場合、私のモットーは、「悪人なしでもやっていけるなら、悪人はすべて倒せ」なのです。必要なのは、端末レベルでの最初のタイマーイベントの 発生を、ユーザーが選択した時間だけ遅らせることができるようにすることだけです。あなたのコードの重要性を軽視しているわけではなく、特に私が見ていないだけなので。

タイマーからの最初のイベントディレイは、どのように開催することを想定していますか?

同じ秒数のタイマーがターミナルで開始され、ある瞬間にExpert Advisorにタイマーイベントが発生します。すべては、すでに提案させていただいたとおりです。

 
stringo:

タイマーからの最初のイベントディレイは、どのように開催することを想定していますか?

同じ秒数のタイマーをターミナルで開始し、ある時点でExpert Advisorにタイマーイベントが発生し始めます。すべては、すでに提案させていただいたとおりです。

OnInit() の中にEventSetTimer(14400, 7029) という関数があるので、ユーザーの希望通り、プログラム開始後 7029 秒(例えば 12-00)ちょうどに内蔵タイマーを起動し、最初のタイマーイベントを 発生させる、というイメージです。さらに、4時間に1回の間隔でタイマーイベントが発生します。4時間に1回、14400回ではなく、13399回のタイマーイベントはユーザーにとって意味のないものです。

この方法は、あなたが提案する方法とは根本的に異なると私は考えています。なぜなら、私のバリアントでは、内部の秒タイマー(7029秒をカウント)はExpert Advisorの初期化後に限られた時間だけ動作し、イベントキューに詰まることなくその動作を停止するからです。この変種は、専門家の仕事の最初の分から最後の分まで、毎秒のイベントを連続的に生成するもので、そのうちユーザーにとって少なくとも何らかの重みを持つのは14400個目のイベントだけです。
 
pusheax:

OnTimerのイベントの範囲を1秒未満にすること。

そして、あるプロセスをミリ秒単位で測定できるようにすること。

現在のパラメータint seconds// 秒数」は、タイマーイベントの周期を定義するものであり、「 OnTimerの遅延」を定義するものではありません。計算を覚える。ミリ秒については、そもそもスレッドの1ページ目くらい読めよ。

プッシュアックス

私は「...(int delay=0)」の発想が全く理解できなかったので、ゴミだと書いたのです。


なるほど。いつの間にか言ってる」的な感じですね。大丈夫です、よくあることです :)私たちは皆、自分の美のビジョンを他の人と共有したいと思うことがあります。

 
Yedelkin:

OnInit()でEventSetTimer(14400, 7029) 関数を見つけると、端末は内部の秒タイマーを起動し、ユーザーの希望通りプログラム開始後ちょうど7029秒(例えば12-00)に最初のTimerイベントを 発生させることができます。さらに、4時間に1回の間隔でタイマーイベントが発生します。4時間に1回、14400回ではなく、13399回のタイマーイベントはユーザーにとって意味のないものです。

このやり方は、ご提案いただいたものとは根本的に違うと思います。なぜなら、私のバリエーションでは、内部の秒タイマー(7029秒をカウント)は、EAの初期化後に限られた時間だけ動作し、イベントキューを詰まらせることなく、動作を停止します。この変種は、専門家の仕事の最初の分から最後の分まで、毎秒のイベントを連続的に生成するもので、そのうちユーザーにとって少なくとも何らかの重みを持つのは14400個目のイベントだけです。

オッケー

関数OnInit でタイマー EventSetTimer(7029) を開始します。

最初の到着時の OnTimer 関数で、前のEventKillTimer() タイマーを無効にして、新しいタイマーEventSetTimer(1440) を開始します。

 
stringo:

初回到着時の OnTimer 関数で、以前のEventKillTimer() タイマーを無効化し、新しいタイマーEventSetTimer(1440) を開始します。

ちゃんと動くのか?少し前に誰かが言っていましたが、EventSetTimer 関数は本来、initから一度だけ呼び出すためのものだそうです。
 
stringo:

オッケー

OnInit 関数でタイマーをスタートさせる EventSetTimer(7029)

初回の OnTimer 関数で、前のタイマーを無効化し、新しいタイマーを開始します。

ああ、トンネルの先にある光!?OnTimer()自体の中でEventSetTimer()を呼び出す?端末についたらぜひ試してみたい。スマートな解決策をありがとうございました
 
TheXpert:
ちゃんと動くのか?少し前に誰かが言っていましたが、EventSetTimer 関数は本来、initから一度だけ呼ばれるものだそうです。
しました。これは一般的なアプリケーションです。だからといって、エキゾチックが無効になるわけではまったくない(そう感じるのなら)。
 
stringo:

オッケー

OnInit 関数でタイマーをスタートさせる EventSetTimer(7029)

初回の OnTimer 関数で、前のタイマーを無効化し、新しいタイマーを開始します。

しかし、テスターでは、この方法がしばらく使えませんでした。テスターでカウンターに切り替えた。

しかし、それはすべて歌詞です。 ミリ秒はとても好ましいものです。願いに参加する。

タイムサンプリングには100ms必要ですが、今はそんな衝動に駆られていて、明日には何が必要なのかわかりません。ビットレートのしきい値が1000msというのは厚かましい。 ミリ秒が標準です。もし誰かが愚かにもキューをオーバーフローさせてしまったら、それは彼の悲劇です(ターミナルでプログラムをクラッシュさせる非常に手頃な方法も常にたくさんあります)。 私たちは、何ができて何ができないかをいつか理解するつもりです :)

 

ミリ秒にすることはできなくなった。

すでに書かれているEAで、作者の意図の1000倍ものタイマーイベントを発生させ始めるものがどれだけあるでしょうか。