0

エスパー問題が解けません。24 時間の最大値と最小値を計算する必要があり、ティック価格がこの値を超えるかどうかを確認する必要があります (これは複数の証券で行う必要があります)。これが私が使用しているコードです。しかし、私は多くのパフォーマンスヒットを賭けており、イベントを複数回発生させています。

create context
GroupSecurity
partition by 
security
from 
Tick;

context
GroupSecurity
select
currentData.last, max(groupedData.last)
from
Tick as currentData unidirectional, Tick.win:time_batch(24 hour) as groupedData
having
currentData.last > max(groupedData.last);

このコードを改善するにはどうすればよいですか?

4

1 に答える 1

1

「Tick.win:time_batch(24 hour)」は、到着する可能性のある 24 時間すべての Tick イベントをメモリに保持し、24 時間後にのみこれらを吐き出すようにエンジンに指示します。より良いアプローチは、エンジンに 1 分間の最大値を計算させ、1 分間の最大値を 24 時間取得し、その最大値を取得することです。つまり、24*60 行以下から最大値を保持して構築します。行は最大 1 分を保持します。

于 2013-09-23T23:53:16.170 に答える