0

質問する場所がわかりません。これが純粋なC#の質問でない場合は、申し訳ありません。

証券取引所オーダーブックのダニデータを分析する必要があります。オーダーブックの更新が発生するたびに(オーダーが追加または削除されるか、移動または実行される)、新しい状態を「チェックポイント」して、以前の状態と比較する必要があります。これまでのところ、データをテキストファイルに印刷するだけで、次のようになります。

5/31/2012 6:06:58 AM:313

3466 1
3464 40
3460 10
3456.9 1
3456 1
3454 1
3448 760
3446 6
3445 3
3444.8 7
3444.5 4
3430.4 6
3420 400
3400 400
3399.9 5
3399.8 2
3396 12
3393.9 1
3390 99
3389.9 14

3387.2 17
3383.7 2
3383.6 2
3376.3 2
3361.1 9
3361 25
3360.8 3
3360.7 3
3360 2
3358 1
3357 3
3356.3 2
3351.1 60
3351 10
3350.6 20
3342.2 3
3342 15
3331.2 180
3331.1 63
3318 3

5/31/2012 6:06:58 AM:359

3466 1
3464 40
3460 10
3456.9 1
3456 1
3454 1
3448 760
3446 6
3445 3
3444.8 7
3444.5 4
3430.4 6
3420 400
3400 400
3399.9 5
3399.8 2
3396 12
3393.9 1
3390 99
3389.9 14

3387.2 17
3383.7 2
3383.6 2
3376.3 2
3361.5 9
3361.4 15
3361.2 9
3361.1 3
3360.8 3
3360.7 3
3360 2
3358 1
3356.3 2
3351.2 11
3351.1 60
3350.6 20
3342.2 3
3342 15
3331.2 180
3331.1 63

しかし、私はそれをそのように見たいと思います:

6:06:58 AM:313          6:06:58 AM:359

3466    1               3466    1
3464    40              3464    40
3460    10              3460    10
3456.9  1               3456.9  1
3456    1               3456    1
3454    1               3454    1
3448    760             3448    760
3446    6               3446    6
3445    3               3445    3
3444.8  7               3444.8  7
3444.5  4               3444.5  4
3430.4  6               3430.4  6
3420    400             3420    400
3400    400             3400    400
3399.9  5               3399.9  5
3399.8  2               3399.8  2
3396    12              3396    12
3393.9  1               3393.9  1
3390    99              3390    99
3389.9  14              3389.9  14

3387.2  17              3387.2  17
3383.7  2               3383.7  2
3383.6  2               3383.6  2
3376.3  2               3376.3  2
                 added  3361.5  9
                 added  3361.4  15
3361.1  9               3361.2  9       
                 added  3361.1  3
3361    25     deleted
3360.8  3               3360.8  3
3360.7  3               3360.7  3
3360    2               3360    2
3358    1               3358    1
3357    3      deleted
3356.3  2               3356.3  2
                 added  3351.2  11
3351.1  60              3351.1  60
3351    10     deleted
3350.6  20              3350.6  20
3342.2  3               3342.2  3
3342    15              3342    15
3331.2  180             3331.2  180
3331.1  63              3331.1  63
  • 最大1000のチェックポイントがあります
  • 簡単に比較できるように、すべてを1行で印刷する必要があります
  • テキストファイルに最大100000の長さの行が含まれていると問題になりますか?
  • 実装したいものを実装するにはどうすればよいですか?
  • たくさんの「スナップショット」を比較する方法についてもっと良い提案があれば、大歓迎です!おそらく、テキストファイルではなく、別のものを使用できますか?
4

1 に答える 1

0

これを概念化するためのいくつかの手順を次に示します。

  1. ファイルのすべての行をループします
  2. 各エントリをチェックして、それが日付かどうかを確認します。日付の場合は、データ オブジェクトの新しいインスタンスを作成します
  3. 別の日付に到達するまで解析を続けます。
  4. データ オブジェクトのリストにデータ オブジェクトを保存する
  5. ファイルの処理が完了するまで、手順 1 ~ 5 を繰り返します。
  6. 印刷する準備ができたら、一度に各データ オブジェクトから 1 つずつ書き込みます。そのため、最初にすべての日付を書き込み、次にデータ オブジェクトの辞書の最初のすべての項目を書き込み、完了するまでそれを繰り返します。
于 2012-05-31T16:42:20.103 に答える