static bool CreateEquity(Trade trade, TradeInfo info, Market market, StringBuilder sb, TemplateProvider provider) { try { trade.Product = info.Security; trade.PriceType = trade.Product.QuoteName.QuoteType; // add ... provider.FillTrade(trade, market); return true; } catch (Exception x) { Logger.Error("Import Equity", x); sb.Append(TradeImportHelper.FormatErrorMessage("Fill Trade " + x.Message, info.HoldingID, info.TradeID, info.Instrument)); return false; } }
static bool CreateBond(Trade trade, TradeInfo info, FilterData filterData, Market market, StringBuilder sb, TemplateProvider provider) { try { var bond = (Bond)info.Security; trade.Product = info.Security; // assuming file has all clean price trade.PriceType = QuotationType.CleanPrice; if (bond.IssueDate > trade.SettlementDate) trade.SettlementDate = bond.IssueDate; trade.Price /= 100; info.MarketPrice /= 100; trade.Quantity = info.Nominal1/bond.FaceValue; if (!double.IsNaN(info.Quantity)) { if (trade.Quantity != info.Quantity) sb.Append("Warning Bad Quantity for Trade" + " Symbol " + info.Symbol + "\n"); } provider.FillTrade(trade, market); if (Double.IsNaN(trade.Accrual)) { trade.Accrual = 0; sb.Append("Warning Bad Accrual for Trade" + " Symbol " + info.Symbol + "\n"); } return true; } catch (Exception x) { Logger.Error("Import Bond", x); sb.Append(TradeImportHelper.FormatErrorMessage("Fill Trade " + x.Message, info.HoldingID, info.TradeID, info.Instrument)); return false; } }