public List <CorporateAction> CorporateActions(Security security, DateTime date)
        {
            lock (corpObjLock)
            {
                if (!_corporateActions.ContainsKey(security.ID))
                {
                    if (!_corporateActions.ContainsKey(security.ID))
                    {
                        _corporateActions.TryAdd(security.ID, new ConcurrentDictionary <DateTime, List <CorporateAction> >());
                    }

                    string    tableName    = _corporateActionTableName;
                    string    searchString = "InstrumentID = " + security.ID;
                    string    targetString = null;
                    DataTable table        = Database.DB["Quant"].GetDataTable(tableName, targetString, searchString);

                    DataRowCollection rows = table.Rows;

                    foreach (DataRow r in rows)
                    {
                        string   id           = GetValue <string>(r, "ID");
                        DateTime declaredDate = GetValue <DateTime>(r, "DeclaredDate");
                        DateTime exDate       = GetValue <DateTime>(r, "ExDate");
                        DateTime recordDate   = GetValue <DateTime>(r, "RecordDate");
                        DateTime payableDate  = GetValue <DateTime>(r, "PayableDate");
                        double   amount       = GetValue <double>(r, "Amount");
                        string   frequency    = GetValue <string>(r, "Frequency");
                        string   type         = GetValue <string>(r, "Type");

                        CorporateAction caction = new CorporateAction(id, security.ID, declaredDate, exDate, recordDate, payableDate, amount, frequency, type);

                        if (!_corporateActions[security.ID].ContainsKey(exDate))
                        {
                            _corporateActions[security.ID].TryAdd(exDate, new List <CorporateAction>());
                        }

                        _corporateActions[security.ID][exDate].Add(caction);
                    }
                }

                if (!_corporateActions.ContainsKey(security.ID))
                {
                    _corporateActions.TryAdd(security.ID, new ConcurrentDictionary <DateTime, List <CorporateAction> >());
                }

                if (!_corporateActions[security.ID].ContainsKey(date))
                {
                    _corporateActions[security.ID].TryAdd(date, new List <CorporateAction>());
                }



                if (_corporateActions.ContainsKey(security.ID) && _corporateActions[security.ID].ContainsKey(date))
                {
                    return(_corporateActions[security.ID][date]);
                }

                return(new List <CorporateAction>());
            }
        }
        public ActionResult Create(CorporateAction corporateaction)
        {
            GetViewDropDownData();

            var CorpAct = db.CorporateActions.Where(f => f.ActionCode == corporateaction.ActionCode && f.RecordDate == corporateaction.RecordDate).SingleOrDefault();


            if (CorpAct != null)
            {
                ModelState.AddModelError("Code", "Action Code  already exist for the selected Symbol on that date.");
            }
            else
            {
                //ModelValidation(financialduedate);
            }

            if (ModelState.IsValid)
            {
                try
                {
                    db.CorporateActions.Add(corporateaction);
                    db.SaveChanges();
                    TempData["Message"] = "Corporate Action Added Successfully.";
                    return(RedirectToAction("Index", new { Symbols = corporateaction.InstrumentCode }));
                }
                catch (Exception exp)
                {
                    log.Error(exp);
                    ViewData["Message"] = "Error Adding Corporate Action code.";
                    ModelState.AddModelError("Error", "An error has occured please contact Administrator");
                    return(View(corporateaction));
                }
            }
            return(View(corporateaction));
        }
        public async Task AddCorporateAction(CorporateAction action)
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var actionId = Guid.NewGuid();

            action.Id = actionId;
            var stockId = Guid.NewGuid();

            action.Stock = stockId;

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.Setup(x => x.PostAsync <CorporateAction>(
                                     It.Is <string>(x => x == "stocks/" + stockId + "/corporateactions"),
                                     It.Is <CorporateAction>(x => x.GetType() == action.GetType() && x.Id == actionId)))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var resource = new CorporateActionResource(messageHandler.Object);

            await resource.Add(stockId, action);

            mockRepository.Verify();
        }
        public async Task GetCorporateAction(CorporateAction action)
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var actionId = Guid.NewGuid();

            action.Id = actionId;
            var stockId = Guid.NewGuid();

            action.Stock = stockId;

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.Setup(x => x.GetAsync <CorporateAction>(It.Is <string>(x => x == "stocks/" + stockId + "/corporateactions/" + actionId)))
            .Returns(Task <CorporateAction> .FromResult(action as CorporateAction))
            .Verifiable();

            var resource = new CorporateActionResource(messageHandler.Object);

            var result = await resource.Get(stockId, actionId);

            result.Should().BeOfType(action.GetType()).And.BeEquivalentTo(new { Id = actionId });

            mockRepository.Verify();
        }
        public void AddCorporateAction(Security security, CorporateAction action)
        {
            try
            {
                action.SecurityID = security.ID;
                if (CorporateActions(action.Security, action.ExDate).Contains(action))
                {
                    return;
                }

                _corporateActions[action.Security.ID][action.ExDate].Add(action);
            }
            catch { }
            string            searchString = "ID = '" + action.ID + "'";
            string            targetString = null;
            DataTable         table        = Database.DB["Quant"].GetDataTable(_corporateActionTableName, targetString, searchString);
            DataRowCollection rows         = table.Rows;

            if (rows.Count == 0)
            {
                DataRow r = table.NewRow();
                r["ID"]           = action.ID;
                r["InstrumentID"] = security.ID;
                r["DeclaredDate"] = action.DeclaredDate;
                r["ExDate"]       = action.ExDate;
                r["RecordDate"]   = action.RecordDate;
                r["PayableDate"]  = action.PayableDate;
                r["Amount"]       = action.Amount;
                r["Frequency"]    = action.Frequency;
                r["Type"]         = action.Type;

                rows.Add(r);
                Database.DB["Quant"].UpdateDataTable(table);
            }
        }
Пример #6
0
 private void NQyesH3ccX(IFIXInstrument instrument, CorporateAction action)
 {
     if (this.NewCorporateAction != null)
     {
         this.NewCorporateAction(this, new CorporateActionEventArgs(action, instrument, this));
     }
 }
Пример #7
0
 private void EmitNewCorporateAction(IFIXInstrument instrument, CorporateAction corporateAction)
 {
     if (this.NewCorporateAction != null)
     {
         this.NewCorporateAction(this, new CorporateActionEventArgs(corporateAction, instrument, this));
     }
 }
        //
        // GET: /CorporateActions/Details/5

        public ActionResult Details(int id = 0)
        {
            CorporateAction corporateaction = db.CorporateActions.Find(id);

            if (corporateaction == null)
            {
                return(HttpNotFound());
            }
            return(View(corporateaction));
        }
        //
        // GET: /CorporateActions/Delete/5

        public ActionResult Delete(int id = 0)
        {
            GetViewDropDownData();
            CorporateAction corporateaction = db.CorporateActions.Find(id);

            if (corporateaction == null)
            {
                return(HttpNotFound());
            }
            return(View(corporateaction));
        }
Пример #10
0
 protected override void OnNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
 {
     this.A6MpF2380O.OnCorporateAction(instrument, corporateAction);
     this.HeHpDewVKD.OnCorporateAction(instrument, corporateAction);
     this.marketManager.OnCorporateAction(instrument, corporateAction);
     this.ayRpJCTRPY.OnCorporateAction(instrument, corporateAction);
     this.exits[instrument].OnCorporateAction(corporateAction);
     this.entries[instrument].OnCorporateAction(corporateAction);
     this.moneyManagers[instrument].OnCorporateAction(corporateAction);
     this.riskManagers[instrument].OnCorporateAction(corporateAction);
 }
Пример #11
0
        public void ParseCorparateAction()
        {
            TimeSpan        ts   = new TimeSpan(0, 07, 02, 02, 881);
            string          data = "TRh;i1288;s1;SRe1;NOc14;t070202.881;";
            CorporateAction TRh  = new CorporateAction(data);

            Assert.AreEqual(1288, TRh.i);
            Assert.AreEqual(1, TRh.s);
            Assert.AreEqual(1, TRh.SRe);
            Assert.AreEqual(14, TRh.NOc);
            Assert.AreEqual(ts, TRh.t);
        }
Пример #12
0
 internal void SetNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
 {
     if (!this.isActive)
     {
         return;
     }
     if (Trace.IsLevelEnabled(TraceLevel.Verbose))
     {
         Trace.WriteLine(string.Format("<Strategy.SetNewCorporateAction> {0} {1} {2}", this.Name, instrument.Symbol, corporateAction));
     }
     this.OnNewCorporateAction(instrument, corporateAction);
 }
Пример #13
0
 internal void a4glMfvIc(Instrument obj0, CorporateAction obj1)
 {
     if (!this.isActive)
     {
         return;
     }
     if (Trace.IsLevelEnabled(TraceLevel.Verbose))
     {
         Trace.WriteLine(string.Format("fdfs", (object)this.Name, (object)obj0.Symbol, (object)obj1));
     }
     this.OnNewCorporateAction(obj0, obj1);
 }
Пример #14
0
        protected override void OnNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
        {
            this.marketManager.OnCorporateAction(instrument, corporateAction);
            this.atsRuntimeCrossComponent.OnCorporateAction(instrument, corporateAction);
            /*---------------------------------------------------*/
            ATSComponent aTSComponent = this.atsComponents[instrument];

            if (aTSComponent != null)
            {
                aTSComponent.OnCorporateAction(corporateAction);
            }
            /*---------------------------------------------------*/
            //this.atsComponents[instrument].OnCorporateAction(corporateAction);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            CorporateAction corporateaction = db.CorporateActions.Find(id);

            try
            {
                db.CorporateActions.Remove(corporateaction);
                db.SaveChanges();
                TempData["Message"] = "Corporate Action was successfully Deleted.";
                return(RedirectToAction("Index"));
            }
            catch (Exception exp)
            {
                TempData["Message"] = "Error Deleting Corporate Action.";
                ModelState.AddModelError("Error", "An error has occured please contact Administrator");
                return(RedirectToAction("Index"));
            }
        }
Пример #16
0
        public ServiceResult AddCorporateAction(Guid stockId, CorporateAction corporateAction)
        {
            var stock = _StockQuery.Get(stockId);

            if (stock == null)
            {
                return(ServiceResult <List <CorporateAction> > .NotFound());
            }

            ServiceResult result;

            if (corporateAction is RestApi.CorporateActions.CapitalReturn capitalReturn)
            {
                stock.CorporateActions.AddCapitalReturn(capitalReturn.Id, capitalReturn.ActionDate, capitalReturn.Description, capitalReturn.PaymentDate, capitalReturn.Amount);
            }
            else if (corporateAction is RestApi.CorporateActions.CompositeAction compositeAction)
            {
                AddCompositeAction(stock, compositeAction);
            }
            else if (corporateAction is RestApi.CorporateActions.Dividend dividend)
            {
                stock.CorporateActions.AddDividend(dividend.Id, dividend.ActionDate, dividend.Description, dividend.PaymentDate, dividend.Amount, dividend.PercentFranked, dividend.DrpPrice);
            }
            else if (corporateAction is RestApi.CorporateActions.SplitConsolidation splitConsolidation)
            {
                stock.CorporateActions.AddSplitConsolidation(splitConsolidation.Id, splitConsolidation.ActionDate, splitConsolidation.Description, splitConsolidation.OriginalUnits, splitConsolidation.NewUnits);
            }
            else if (corporateAction is RestApi.CorporateActions.Transformation transformation)
            {
                var resultingStocks = transformation.ResultingStocks.Select(x => new Domain.CorporateActions.Transformation.ResultingStock(x.Stock, x.OriginalUnits, x.NewUnits, x.CostBase, x.AquisitionDate));
                stock.CorporateActions.AddTransformation(transformation.Id, transformation.ActionDate, transformation.Description, transformation.ImplementationDate, transformation.CashComponent, transformation.RolloverRefliefApplies, resultingStocks);
            }
            else
            {
                result = ServiceResult.Error("Unkown Corporate Action type");
            }

            _Repository.Update(stock);

            return(ServiceResult.Ok());
        }
 public ActionResult Edit(CorporateAction corporateaction)
 {
     GetViewDropDownData();
     if (ModelState.IsValid)
     {
         try
         {
             db.Entry(corporateaction).State = System.Data.Entity.EntityState.Modified;
             db.SaveChanges();
             TempData["Message"] = "Corporate Action was Successfully Edited.";
             return(RedirectToAction("Index", new { Symbols = corporateaction.InstrumentCode }));
         }
         catch (Exception exp)
         {
             ViewData["Message"] = "Error Editing Corporate Actions";
             ModelState.AddModelError("Error", "An error has occured please contact Administrator");
             return(View(corporateaction));
         }
     }
     return(View(corporateaction));
 }
Пример #18
0
        protected override void OnNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
        {
            this.runtimeCrossExit.OnCorporateAction(instrument, corporateAction);
            this.runtimeCrossEntry.OnCorporateAction(instrument, corporateAction);
            this.marketManager.OnCorporateAction(instrument, corporateAction);
            this.exposureManager.OnCorporateAction(instrument, corporateAction);
            /*---------------------------------------*/
            Exit exit = this.exits[instrument];

            if (exit != null)
            {
                exit.OnCorporateAction(corporateAction);
            }
            Entry entry = this.entries[instrument];

            if (entry != null)
            {
                entry.OnCorporateAction(corporateAction);
            }
            MoneyManager moneyManager = this.moneyManagers[instrument];

            if (moneyManager != null)
            {
                moneyManager.OnCorporateAction(corporateAction);
            }
            RiskManager riskManager = this.riskManagers[instrument];

            if (riskManager != null)
            {
                riskManager.OnCorporateAction(corporateAction);
            }
            /*---------------------------------------*/

            /*this.exits[instrument].OnCorporateAction(corporateAction);
             *          this.entries[instrument].OnCorporateAction(corporateAction);
             *          this.moneyManagers[instrument].OnCorporateAction(corporateAction);
             *          this.riskManagers[instrument].OnCorporateAction(corporateAction);*/
        }
Пример #19
0
 public virtual void OnCorporateAction(Instrument instrument, CorporateAction corporateAction)
 {
 }
Пример #20
0
 public static void Add(Instrument instrument, string suffix, CorporateAction corporateAction)
 {
     DataManager.Add(instrument.Symbol + SERIES_SEPARATOR + suffix, corporateAction);
 }
Пример #21
0
        static void Main(string[] args)
        {
            string text = System.IO.File.ReadAllText("tip_20150730_all.log");

            string[] tipMessages = text.Split('\n');
            for (int i = 0; i < tipMessages.Length; i++)
            {
                string[] messagefields = tipMessages[i].Split(';');
                if (messagefields[0] == "BDBu")
                {
                    BasicDataBusinessDate bdbu = new BasicDataBusinessDate(tipMessages[i]);
                    Console.WriteLine(bdbu.ToString());
                }
                else if (messagefields[0] == "BDSr")
                {
                    BasicDataSource bdsr = new BasicDataSource(tipMessages[i]);
                }
                else if (messagefields[0] == "BDTe")
                {
                    BasicDataTableEntry bdte = new BasicDataTableEntry(tipMessages[i]);
                }
                else if (messagefields[0] == "BDTs")
                {
                    BasicDataTickSizeTable bdts = new BasicDataTickSizeTable(tipMessages[i]);
                }
                else if (messagefields[0] == "BDTz")
                {
                    BasicDataTickSizeEntry bdtz = new BasicDataTickSizeEntry(tipMessages[i]);
                }
                else if (messagefields[0] == "BDp")
                {
                    BasicDataParticipant bdp = new BasicDataParticipant(tipMessages[i]);
                }
                else if (messagefields[0] == "BDCv")
                {
                    BasicDataClearingVenue bdcv = new BasicDataClearingVenue(tipMessages[i]);
                }
                else if (messagefields[0] == "BDx")
                {
                    BasicDataExchange bdx = new BasicDataExchange(tipMessages[i]);
                }
                else if (messagefields[0] == "BDm")
                {
                    BasicDataMarket bdm = new BasicDataMarket(tipMessages[i]);
                }
                else if (messagefields[0] == "BDTd")
                {
                    BasicDataNonTradingDays bdtd = new BasicDataNonTradingDays(tipMessages[i]);
                }
                else if (messagefields[0] == "BDTm")
                {
                    BasicDataTradingScheme bdtm = new BasicDataTradingScheme(tipMessages[i]);
                }
                else if (messagefields[0] == "BDLi")
                {
                    BasicDataList bdli = new BasicDataList(tipMessages[i]);
                }
                else if (messagefields[0] == "BDs")
                {
                    BasicDataSector bds = new BasicDataSector(tipMessages[i]);
                }
                else if (messagefields[0] == "BDIs")
                {
                    BasicDataIssuer bdis = new BasicDataIssuer(tipMessages[i]);
                }
                else if (messagefields[0] == "BDt")
                {
                    BasicDataTradable bdt = new BasicDataTradable(tipMessages[i]);
                }
                else if (messagefields[0] == "BDTr")
                {
                    BasicDataTradableSupplementary bdtr = new BasicDataTradableSupplementary(tipMessages[i]);
                }
                else if (messagefields[0] == "BDSh")
                {
                    BasicDataShare bdsh = new BasicDataShare(tipMessages[i]);
                }
                else if (messagefields[0] == "BDDe")
                {
                    BasicDataDerivative bdde = new BasicDataDerivative(tipMessages[i]);
                }
                else if (messagefields[0] == "BDEt")
                {
                    BasicDataFund bdet = new BasicDataFund(tipMessages[i]);
                }
                else if (messagefields[0] == "BDRi")
                {
                    BasicDataRight bdri = new BasicDataRight(tipMessages[i]);
                }
                else if (messagefields[0] == "BDUi")
                {
                    BasicDataUnderlyingInfo bdui = new BasicDataUnderlyingInfo(tipMessages[i]);
                }
                else if (messagefields[0] == "m")
                {
                    OrderbookSummary m = new OrderbookSummary(tipMessages[i]);
                }
                else if (messagefields[0] == "BDLm")
                {
                    BasicDataListMember bdlm = new BasicDataListMember(tipMessages[i]);
                }
                else if (messagefields[0] == "BDSm")
                {
                    BasicDataSectorMember bdsm = new BasicDataSectorMember(tipMessages[i]);
                }
                else if (messagefields[0] == "EOBd")
                {
                    EndOfBasicData eobd = new EndOfBasicData(tipMessages[i]);
                }
                else if (messagefields[0] == "BDIn")
                {
                    BasicDataIndex bdin = new BasicDataIndex(tipMessages[i]);
                }
                else if (messagefields[0] == "BDIp")
                {
                    BasicDataIndexSupplementary bdip = new BasicDataIndexSupplementary(tipMessages[i]);
                }
                else if (messagefields[0] == "BDIm")
                {
                    BasicDataIndexMember bdim = new BasicDataIndexMember(tipMessages[i]);
                }
                else if (messagefields[0] == "Is")
                {
                    IndexSummary indexsum = new IndexSummary(tipMessages[i]);
                }
                else if (messagefields[0] == "Iw")
                {
                    IndexWeight indexw = new IndexWeight(tipMessages[i]);
                }
                else if (messagefields[0] == "TRh")
                {
                    CorporateAction trh = new CorporateAction(tipMessages[i]);
                }
                else if (messagefields[0] == "s")
                {
                    StateChange s = new StateChange(tipMessages[i]);
                }
                else if (messagefields[0] == "r")
                {
                    OrderbookReferencePrice r = new OrderbookReferencePrice(tipMessages[i]);
                }
                else if (messagefields[0] == "o")
                {
                    Orderbook1 o = new Orderbook1(tipMessages[i]);
                }
                else if (messagefields[0] == "p")
                {
                    Orderbook2 p = new Orderbook2(tipMessages[i]);
                }
                else if (messagefields[0] == "z")
                {
                    Orderbook3 z = new Orderbook3(tipMessages[i]);
                }
                else if (messagefields[0] == "u")
                {
                    TradeStatistics1 u = new TradeStatistics1(tipMessages[i]);
                }
                else if (messagefields[0] == "v")
                {
                    TradeStatistics2 v = new TradeStatistics2(tipMessages[i]);
                }
                else if (messagefields[0] == "w")
                {
                    TradeStatistics3 w = new TradeStatistics3(tipMessages[i]);
                }
                else if (messagefields[0] == "c")
                {
                    CallInformation1 c = new CallInformation1(tipMessages[i]);
                }
                else if (messagefields[0] == "Cl")
                {
                    CallInformation2 cl = new CallInformation2(tipMessages[i]);
                }
                else if (messagefields[0] == "k")
                {
                    MBPOrderSnapshot k = new MBPOrderSnapshot(tipMessages[i]);
                }
                else if (messagefields[0] == "t")
                {
                    Trade t = new Trade(tipMessages[i]);
                }
                else if (messagefields[0] == "l")
                {
                    TurnoverListUpdate l = new TurnoverListUpdate(tipMessages[i]);
                }
                else if (messagefields[0] == "i")
                {
                    IndexUpdate i1 = new IndexUpdate(tipMessages[i]);
                }
                else if (messagefields[0] == "q")
                {
                    MarketMakerQuote1 q = new MarketMakerQuote1(tipMessages[i]);
                }
                else if (messagefields[0] == "y")
                {
                    MarketMakerQuote2 y = new MarketMakerQuote2(tipMessages[i]);
                }
                else if (messagefields[0] == "n")
                {
                    News n = new News(tipMessages[i]);
                }
                else
                {
                    throw new Exception("Unknown TIP Message = " + tipMessages[i]);
                }
            }
        }
Пример #22
0
 public async Task Add(Guid stockId, CorporateAction corporateAction)
 {
     await _MessageHandler.PostAsync <CorporateAction>("stocks/" + stockId + "/corporateactions", corporateAction);
 }
Пример #23
0
 public static void Add(string series, CorporateAction corporateAction)
 {
     DataManager.server.Add(series, corporateAction);
 }
Пример #24
0
 protected override void OnNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
 {
     this.metaRiskManager.OnCorporateAction(instrument, corporateAction);
     this.metaExposureManager.OnCorporateAction(instrument, corporateAction);
 }
Пример #25
0
        public ActionResult AddCorporateAction([FromRoute] Guid stockId, [FromBody] CorporateAction corporateAction)
        {
            var result = _Service.AddCorporateAction(stockId, corporateAction);

            return(result.ToActionResult());
        }
Пример #26
0
 public static void Add(Instrument instrument, CorporateAction corporateAction)
 {
     DataManager.Add(instrument, SUFFIX_CORPORATE_ACTION, corporateAction);
 }
Пример #27
0
 public virtual void OnNewCorporateAction(CorporateAction corporateAction)
 {
 }
Пример #28
0
 public CorporateActionEventArgs(CorporateAction corporateAction, IFIXInstrument instrument, IMarketDataProvider provider)
     : base(instrument, provider)
 {
     this.CorporateAction = corporateAction;
 }
Пример #29
0
 protected override void OnNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
 {
     this.kXJRQmVtwY.OnCorporateAction(instrument, corporateAction);
     this.k7bROYTXtn.OnCorporateAction(instrument, corporateAction);
 }
Пример #30
0
 protected virtual void OnNewCorporateAction(Instrument instrument, CorporateAction corporateAction)
 {
 }