예제 #1
0
        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;
            }
            
        }
예제 #2
0
 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;
     }
 }