エラー、バグ、質問 - ページ 1808 1...180118021803180418051806180718081809181018111812181318141815...3185 新しいコメント 削除済み 2017.02.16 08:50 #18071 fxsaber: _TimeCurrent = MathMax(SymbolInfoInteger(Symbol1, SYMBOL_TIME), SymbolInfoInteger(Symbol2, SYMBOL_TIME), ...); ここまでくると、本当に限られた量しかありませんね。最長時間を選択することでしかし、これはOnBookEvent()ごとに2つの時間値を取得するという追加コストが発生します...。 fxsaber 2017.02.16 08:55 #18072 Alexey Kozitsyn: ここまでくると、本当に限られた量しかありませんね。最長時間を選択することでしかし、OnBookEvent()のたびに2つの時間値を取得するのは追加費用がかかる...。 GetMicrosecondCountでTimeTradeServerを エミュレートする。または、BookEventの99%にTimeTradeServerとTimeCurrentの差分を追加する。 削除済み 2017.02.16 08:55 #18073 SR番号1674783への 応募についてお早めにお決めください。 削除済み 2017.02.16 09:01 #18074 fxsaber: GetMicrosecondCountでTimeTradeServerを エミュレートする。BookEventの99%にTimeTradeServerとTimeCurrentの差分を追加するか。 これでも複数のパラメータを取得しています。 fxsaber 2017.02.16 09:03 #18075 Alexey Kozitsyn: やはり、いくつかのパラメータを取得することです。 問題は、パラメータの数ではなく、そのトータルの安さです。 削除済み 2017.02.16 09:05 #18076 fxsaber: 問題は、パラメータの数ではなく、そのトータルの安さです。 つまり、SymbolInfoInteger( _Symbol, SYMBOL_TIME ) よりもTimeTradeServer() の 方が高速になるということですね? fxsaber 2017.02.16 09:08 #18077 Alexey Kozitsyn: では、SymbolInfoInteger( _Symbol, SYMBOL_TIME ) よりもTimeTradeServer() の 方が速く動くと思いますか?TimeTradeServer は GetMicrosecondCount を通して、対応する差を TimeCurrent に追加して動作します。何が必要なのかわからない。しかし、マイクロ秒の節約は、私には合理的とは思えません。 削除済み 2017.02.16 09:12 #18078 fxsaber:TimeTradeServer は GetMicrosecondCount を通して、対応する差を TimeCurrent に追加して動作します。何が必要なのかわからない。しかし、マイクロ秒の単位で節約することは、私には合理的とは思えません。現在時刻の 正しい値を取得したい。現在時刻のOnBookEvent()から、時刻に束縛されたパラメータの値を書き込むように要求しています。そして、経過時間ではなく、現在時刻が必要で、できれば、いくつかの時刻の値を取得して、一番大きな値を選択するような形の松葉杖は使わないでほしい。TimeCurrent()はこのタスクを処理することになっています(ドキュメントに記載されている説明によると)。しかし、今はやっていないことが判明しました fxsaber 2017.02.16 09:24 #18079 Alexey Kozitsyn:現在時刻の 正しい値を取得したい。OnBookEvent()から現在時刻を照会して、時刻に連動したパラメータの値を書き込んでいるのです。そして、過去の時間ではなく現在の時間が必要で、できれば複数の時間値を取得して最も高い値を選択するような松葉杖は不要です。TimeCurrent()はこのタスクを処理することになっています(ドキュメントに記載されている説明によると)。しかし、今はそんなことはないことが判明したのです 確認はしていない。datetime NewTimeCurrent( void ){ static ulong PrevStartTime = GetMicrosecondCount(); static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer() const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer() const ulong NowTime = GetMicrosecondCount(); if (PrevTimeCurrent < NewTimeCurrent) { PrevTimeCurrent = NewTimeCurrent; PrevStartTime = NowTime; } return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));} もっと正確に言えばよかったかもしれません。例えば、SymbolInfoTick(+CopyTicks)を問い合わせることで、すべての文字を実行することができます。そこから時間をミリ秒単位で掻い摘む。ただ、どんな実用的な使い方ができるのかがわからない。 fxsaber 2017.02.16 09:29 #18080 fxsaber: SymbolInfoTick (+ CopyTicks) をクエリして、すべてのシンボルを実行します。そこから時間をミリ秒単位で掻い摘む。TimeCurrentの ミリ秒アナログは、GUIへの反映で、とっくに終わっている。 1...180118021803180418051806180718081809181018111812181318141815...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここまでくると、本当に限られた量しかありませんね。最長時間を選択することでしかし、OnBookEvent()のたびに2つの時間値を取得するのは追加費用がかかる...。
SR番号1674783への 応募について
お早めにお決めください。
GetMicrosecondCountでTimeTradeServerを エミュレートする。BookEventの99%にTimeTradeServerとTimeCurrentの差分を追加するか。
やはり、いくつかのパラメータを取得することです。
問題は、パラメータの数ではなく、そのトータルの安さです。
では、SymbolInfoInteger( _Symbol, SYMBOL_TIME ) よりもTimeTradeServer() の 方が速く動くと思いますか?
TimeTradeServer は GetMicrosecondCount を通して、対応する差を TimeCurrent に追加して動作します。
何が必要なのかわからない。しかし、マイクロ秒の節約は、私には合理的とは思えません。
TimeTradeServer は GetMicrosecondCount を通して、対応する差を TimeCurrent に追加して動作します。
何が必要なのかわからない。しかし、マイクロ秒の単位で節約することは、私には合理的とは思えません。
現在時刻の 正しい値を取得したい。OnBookEvent()から現在時刻を照会して、時刻に連動したパラメータの値を書き込んでいるのです。そして、過去の時間ではなく現在の時間が必要で、できれば複数の時間値を取得して最も高い値を選択するような松葉杖は不要です。TimeCurrent()はこのタスクを処理することになっています(ドキュメントに記載されている説明によると)。しかし、今はそんなことはないことが判明したのです
{
static ulong PrevStartTime = GetMicrosecondCount();
static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
const ulong NowTime = GetMicrosecondCount();
if (PrevTimeCurrent < NewTimeCurrent)
{
PrevTimeCurrent = NewTimeCurrent;
PrevStartTime = NowTime;
}
return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
SymbolInfoTick (+ CopyTicks) をクエリして、すべてのシンボルを実行します。そこから時間をミリ秒単位で掻い摘む。