金融商品の識別子
S# では、異なるソースの金融商品は統一された Security.Id を使用します。これにより、取引アルゴリズムのコードは、OpenECry、Rithmic、Interactive Brokers などの接続タイプに依存しなくなります。
金融商品識別子は、[instrument code]@[board code] という構文を使用します。Apple Inc. 株式の場合、識別子は AAPL@NASDAQ です。デリバティブの場合、ボードコードは契約が取引されるボードです。たとえば、ES 指数の 6 月限先物契約は ESM5@NYSE として識別できます。
Tip
Hydra は、履歴マーケットデータのフォルダー名に同じ仕組みを使用します。
識別子生成アルゴリズムのオーバーライド
独自のアルゴリズムで金融商品識別子を生成するには、SecurityIdGenerator クラスの派生クラスを作成し、SecurityIdGenerator.GenerateId(System.String secCode, System.String boardCode ) メソッドをオーバーライドします。
class CustomSecurityIdGenerator : SecurityIdGenerator { public override string GenerateId(string secCode, string boardCode) { // CODE--BOARD 形式で識別子を生成します return secCode + "--" + boardCode; } }作成したジェネレーターをコネクターに渡します。
connector.SecurityIdGenerator = new CustomSecurityIdGenerator();