private void LoadContracts() { OnStatusUpdate("Loading contracts..."); var cr = new SymbolLookupRequestBuilder() .WithResultCount(10) .WithSymbol(TextSearch.CreateStartsWith("OEW3K19 C2950")) .WithDescription(TextSearch.CreateStartsWith("OEW3K19 C2950")) .WithExpression(new ContractKindsCriterion(Enum.GetValues(typeof(ContractKind)).Cast <ContractKind>().Skip(1).ToArray())) .Build(); // lookup 5 contracts, which symbol started with _baseContractName Cache <SymbolLookupRequestID> .Put(Client.Contracts.Lookup.ByCriteria(cr)); // lookup 5 contracts, which symbol started with _baseContractName Cache <SymbolLookupRequestID> .Put(Client.Contracts.Lookup.ByCriteria( new SymbolLookupRequestBuilder() .WithResultCount(5) .WithBaseSymbol(TextSearch.CreateStartsWith(_baseContractName)) .Build())); // load contracts from Indices group (2 per base contract) var indicesGroupID = Client.Contracts.Groups.Get("Indices").ID; var requests = Client.Contracts.Base.Get() .Where(bc => bc.IsFuture && bc.ContractGroup.ID == indicesGroupID && bc.Type == ContractType.Electronic) .Select(bc => new ContractLoadRequestBuilder() .WithResultCount(2) .WithExpression(new ContractLoadExpressionBuilder() .Push(new BaseContractIDCriterion(bc.ID)) .Push(new ContractKindsCriterion(new [] { ContractKind.Future, ContractKind.Continuous })) .Push(ContractLoadExpressionOperator.And) .Build()) .Build()); foreach (var request in requests) { Cache <ContractLoadRequestID> .Put(Client.Contracts.Load.Request(request)); } }