機能睡眠代替 - ページ 2

 
paulepanke:

このようなステートメントには注意が必要です。sleep()を実行する論理的な理由は常に存在します。

sleep()を使う論理的な理由がないとは言っていません、たくさんあります。 StrategyTesterの チャート上で動いて いるIndicatorで動くのか、私は知りません、多分動くと思います。ストラテジーテスターで動いているEAは一時停止させることができるのでしょうか?
 
RaptorUK:
TimeSeconds()が何を返すか見て、次にTimeCurrent()が何を返すか考えてみてください。...どれが必要ですか、そしてなぜですか?


サイモン

intTimeSeconds( datetime time)

指定された 時刻の分の先頭から経過した秒数を返します。

datetimeTimeCurrent( )
TimeCurrent() は、最新のサーバー時刻(最新のクォートの受信時刻)を、1970年1月1日00:00からの経過秒数で返します


"どれが必要で、なぜ必要なのか?"- サイモン

e'mの両方を協調して使うよ。- ネイサン

TimeSeconds(datetime time)は、中括弧の中に変数を入れる必要があるんだ。TimeCurrent()は、この中括弧の中に入れることで、実現可能なソリューションになるんだ。私は以前にこれをやったことがありますが、返された時間値が(アクティブなティック/ティックがないために)スキップして一時停止しているように見える理由を理解していなかったのです。

このことについてどう思われますか?


ありがとうございました。

 
WHRoeder:

  1. あなたが戻り、それが次のものを作成し、あなたのstart()を呼び出すまで、どのような ティックも作成されない。5分間計算してreturnすると、次の呼び出し時のボリューム(ティック数)は+1されます。ライブチャートでは、5分間計算すると、5分間のティックを見逃すことになり、M1ではいくつかの新しいバーが形成されていることになります。

ウィリアム

このテーマについて解説していただき、ありがとうございます。

2.の私の解釈は、ティックが作られるとreturn関数が呼ばれる。次にreturn(0)関数を呼び出した後にStart()関数が直接呼び出され、それがトリガーとなってもう一度プログラムが実行される。2.のこの部分の解釈は正しいのでしょうか?


"If you compute for 5 minutes",how can I sure the EA will compute for five minutes (even if the EA computes for five minutes, this will guarantee a tick will be created.)?ティック生成の確率は上がります)?


申し訳ありませんが、読みにくいので、よろしくお願いします。

"5分間計算し、次のコールの出来高(ティック数)を返すと+1されます。ライブチャートでは、5分間計算した場合、5分間のティックを逃し、M1ではいくつかの新しいバーが形成されていることになります。"


ご回答ありがとうございました。

 
RaptorUK:
sleep()を使用する論理的な理由がないとは言っていません。ストラテジーテスターで動いているEAは一時停止させることができるのでしょうか?

サイモンです。

"Can an EA running in theStrategy Tester be made to pause ? yes it can."(ストラテジーテスターで 稼働中のEAを一時停止させることはできますか?

テスターでEAを「一時停止」させるために使用するこの方法について、あなたの考えを述べていただけませんか?


ありがとうございます。

 
  1. EA は start() からテスターに戻ります。テスターは次のティックを作成し、start()を呼び出します。EAが戻ってこなければ、次のティックはありません。start()が戻るまでの時間は問題ではありません。次のティックが作成されるのは、それが返されたときです。
  2. テスターでは、EAを一時停止したりスリープさせたりすることはできません。プログラム上で 一時停止ボタンを押すと、EAがスタートから戻った後、テスターを一時停止させることができます。
 

Williamです。

EAのstart() 数は新しいティックから呼び出されますよね?

そこで質問なのですが、「新しいティック以外にstart()関数を呼び出す方法をご存知ですか?Start()の呼び出しに代わる一貫した反復動作の可能性はありますか?"

(私が考えているのは、ティックに依存しない一貫した秒の追跡方法はないだろうか)


"...次のtickが作成されるのは、その時です。"

あなたが書きたかったのは、「新しいティックの作成時に、Start()が実行される」ということだと思います;)


つまり、テスターではEAを一時停止したりスリープさせたりすることはできないということですね?


その間に、テスト中のEAがスタートから戻った後、「一時停止ボタンを押してテスターを一時停止する」という方法について説明していただけませんでしょうか?

テスターで実行した場合、この方法はライブ口座の「リアルタイム」で決められた時間だけ一時停止しているEAのパフォーマンスをシミュレートすることになるのでしょうか?


テスターには限界があり、「リアルタイム」性能のシミュレーションには「回避策」を使用しなければならないことは理解しています。


ウィリアムに感謝します。


また、あなたのことをWillと呼んでも構いませんか?そうすれば、メッセージのたびに1秒の時間を節約できます。どうぞ。

御社のEAが持っている機能で、「 明け(金曜日のマーケットクローズ)までにすべての注文を決済して週末にマーケットがギャップしたときに SLを通過して損失を出さない ようにしたい」というものがあるのですが、これは気に入っています。

(手を叩いて喜ぶ)ハハハ! ;)この機能をEAに追加することで、無駄な損失を減らすことができるのですが、これは私が現在やろうとしていることとは異なります。現在、私は秒を更新するためのティックを必要とせずに、一貫して時間の秒を追跡しようとしています。Start()関数を更新するための別の手段を希望しています。


ありがとうございます。

 
WhooDoo22:

現在、私は秒を更新するためにtickを必要とせずに時間の秒を一貫して追跡しようとしています。Start()関数を更新するための別の手段を希望しています。

あなたがやろうとしていることは、理解不足による問題の解決策としては欠陥があるのではないかと思います。 30秒間価格が変化しないのに、なぜ1秒から次の秒まで知る必要があるのですか? 価格が変化すると、ティックが得られます。

WHRoederが 言ったことを明確にすると、すべてのティックはStrategy Testerが呼び出し/実行を開始する前に作成され、それらは.fxtファイルに保存されます。STは最初のティックを呼び出し、それによってstart()が実行され、次のティックはstart()の実行が終了するまで呼び出されない/使用されない、これを理解することは非常に重要です。start()が終了して初めて次のtickが使用され、EAが再びstart()を呼び出すことができます。 STがフルスピードで動作している場合、STの速度を決定するのはstart()の実行速度なので、非常にシンプルなstart()関数であればSTは非常に速く、複雑なstart()関数ではSTは遅く動作することになります。

ライブ/デモでは、start()関数が非常に複雑で、実行に長い時間(おそらくコンマ数秒)を要する場合、start()が完了する前に次のティックが到着する可能性があります。

 
WhooDoo22:

サイモンです。

"Can an EA running in the Strategy Tester be made to pause ? yes it can."(ストラテジーテスターで稼働中のEAを一時停止させることはできますか?

テスターでEAを「一時停止」させるために使うこの方法について、あなたの考えを述べていただけませんか?

もちろんです。 私はスクリプトによって設定され、解除されるGlobalVariableを使いました。STのEAはGlobalVariableが設定されているのを見ると、ループの中に座り、GlobalVariableが解除されるのを常にチェックし、スクリプトがGlobalVariableを解除するとEAはループから外れ、start()関数も 終了できます。
 
WhooDoo22:

「どれが必要で、なぜ必要なのでしょうか?- サイモン

e'mとe'mは相性がいいので、両方使うことにします。- ネイサン

TimeSeconds(datetime time)は、中括弧の中に変数を入れる必要がある。TimeCurrent()は、この中括弧の中に配置され、実行可能な解決策を提示します。私は以前にこれをやったことがありますが、返された時間値が(アクティブなティック/ティックがないために)スキップして一時停止しているように見える理由を理解していなかったのです。

2つのイベントがあり、これらのイベントの間隔が10秒であると仮定します。
 
RaptorUK:

あなたがやろうとしていることは、理解不足による問題解決に欠陥があるのではないでしょうか。 30秒間価格が変化していないのに、なぜ1秒から次の秒まで知る必要があるのでしょうか? 価格が変化すると、ティックを得ることができます。

WHRoederが 言ったことを明確にすると、すべてのティックはStrategy Testerが呼び出し/実行を開始する前に作成され、それらは.fxtファイルに保存されます。STは最初のティックを呼び出し、それによってstart()が実行され、次のティックはstart()の実行が終了するまで呼び出されない/使用されない、これを理解することは非常に重要です。start()が終了して初めて次のtickが使用され、EAが再びstart()を呼び出すことができます。 STがフルスピードで動作している場合、STの速度を決定するのはstart()の実行速度なので、非常にシンプルなstart()関数であればSTは非常に速く、複雑なstart()関数ではSTは遅く走ります。

ライブ/デモでは、start()関数が非常に複雑で、実行に長い時間(おそらくコンマ数秒)を要する場合、start()が完了する前に次のティックが到着する可能性があります。

サイモン

あなたがやろうとしていることは、理解不足による欠陥のある問題解決だと思います。 30秒間価格が変化しないのに、なぜ1秒から次の秒まで知る必要があるのですか? 価格が変化すれば、ティックが発生するのです。

正直、理解不足があり、そのためMQL4フォーラムで議論しています。価格が変わるたびに保存したい(やり方は理解しています)。また、Sleep()を使ってLIVE/DEMOチャートで1秒ごとにコンスタントに価格を保存する方法は理解しています。目的秒を一貫して追跡し(ティックの作成に基づく秒の追跡なし)、最大1分以下まで追跡した秒をゼロにリセットしたい。なぜこの目的を達成したいのかは理解できました。理由は、テスターでEAをテストする必要があり、テスト中にSleep()を使用することができないからです。どうすればいいのでしょうか?オプションを収集します。

詳しくはこちら)

EAにタイマー(テスターで使用可能)をコード化する。このタイマーは、0-30からカウントアップ、または30-0からカウントダウンします。この時間がカウントアップ/ダウンしている間、私は価格アクションを追跡する別のベクトルを持っています(非常に大きなサイズのベクトル)。

私の条件はそのようなものです。

価格がxポイント移動したら(0-30秒または30-0秒以内)、決定を下す。

価格がxポイント移動しない 場合(0-30または30-0秒以内)、ArrayInitialize()を実行します。


あなたはこのサイモンに何を言うのですか?


ありがとうございます。