public OptionChain(OpcGetOptionChainResponse opcGetOptionChainResponse) : this() { this.Date = DateTime.Now; if (opcGetOptionChainResponse.Dates != null && opcGetOptionChainResponse.Dates.Count > 0) { int dateIndex = (this.Date.DayOfWeek == DayOfWeek.Friday || this.Date.DayOfWeek == DayOfWeek.Friday) ? 1 : 0; KeyValuePair <String, OpcDate> opcDatePair = opcGetOptionChainResponse.Dates.ElementAt(dateIndex); OptionDate optionDate = new OptionDate(); optionDate.ExpiryDate = DateTime.Parse(opcDatePair.Key); foreach (KeyValuePair <String, OpcOptionPriceSpread> callPair in opcDatePair.Value.Calls) { OptionStrike optionStrike = new OptionStrike(); optionStrike.StrikePrice = Decimal.Parse(callPair.Key); Call call = new Call(); call.Bid = callPair.Value.Bid; call.Ask = callPair.Value.Ask; optionStrike.Call = call; OpcOptionPriceSpread putPair = opcDatePair.Value.Puts[callPair.Key]; Put put = new Put(); put.Bid = putPair.Bid; put.Ask = putPair.Ask; optionStrike.Put = put; optionDate.Strikes.Add(optionStrike); } this.Dates.Add(optionDate); } }
public OptionDate(OptionDate source) { this.ExpiryDate = source.ExpiryDate; this.Strikes = source.Strikes.Select(x => new OptionStrike(x)).ToList(); }