private void SetData_myDB_Equity(IDtoken idTok, myFrame data) { myDB_Connector myConnect = new myDB_Connector(); List <Equity_Line> dataToInsert = data.ToList <Equity_Line>(idTok.DBID); myConnect.Insert <Equity_Line>(idTok, dataToInsert); }
private void SetData_myDB(IDtoken idTok, string Table, myFrame Data) { switch (Table) { case "InterestRate": SetData_myDB_InterestRate(idTok, Data); break; case "Equity": SetData_myDB_Equity(idTok, Data); break; case "EquityVolatility": SetData_myDB_EquityVolatility(idTok, Data); break; case "Bond": SetData_myDB_Bond(idTok, Data); break; default: { throw new System.ArgumentException("CH_MappingException", "Connector Helper unable to map the database."); } } }
protected double underlying(DateTime valuationDate) { if (_underlyingTimeSeries == null) { _underlyingTimeSeries = EndOfDay((int)_underlyingID); } return((double)_underlyingTimeSeries[valuationDate]["Close"]); }
// ************************************************************ // METHODS FOR COMPARAISON AND OUTPUT // ************************************************************ private void Strangle_CounterpartyPrices(DateTime valuationDate) { // Loop through the various IDtoken to fetch SG's price foreach (int k in strangleMTM_Tokens.Keys) { myFrame MtM_strangle = EndOfDay(strangleMTM_Tokens[k], valuationDate, valuationDate); double valueMtM = (double)MtM_strangle[valuationDate]["Close"]; strangleMTM_CounterpartyPrices[k] = valueMtM; } }
// ************************************************************ // METHODS -- TO GET EOD PRICES // ************************************************************ public myFrame EndOfDay(IDtoken IdToken, List <string> LocalFields, DateTime StartDate, DateTime EndDate, TimeUnit Periodicity, String Source) { // 1. Formulate Request HistoricalDataRequest myRequest = new HistoricalDataRequest(IdToken, LocalFields, StartDate, EndDate, Periodicity, Source); // 2. Send request to Database Helper myFrame localData = _myDBhelper.GetEODPrices(myRequest); // 3. Return return(localData); }
// ************************************************************ // METHODS -- INSERT DATA // ************************************************************ #region Insert data public void SetData(IDtoken idTok, string Database, string Table, myFrame Data) { switch (Database) { case "myDB": SetData_myDB(idTok, Table, Data); break; default: { throw new System.ArgumentException("CH_MappingException", "Connector Helper unable to map the database."); } } }
private void SetPutStrikes() { int cnt = 0; myFrame data = EndOfDay((int)_putStrikeID); //if (data.data.Count() != _numberStrangles) { throw new ArgumentException("", ""); } foreach (DateTime dt in _optionTradeDates) { double strike = (double)data[dt].data["Close"]; _putStrikes[cnt] = strike; cnt += 1; } }
private myFrame UpdateData(HistoricalDataRequest oldRequest, DateTime newStartDate, DateTime newEndDate) { // Formulate request HistoricalDataRequest newRequest = new HistoricalDataRequest(oldRequest.id, oldRequest.fields, newStartDate, newEndDate, oldRequest.periodicity, oldRequest.source); // Fetch data myFrame startData = Get_FromExternalSource(newRequest); // Map the local DB string database = MapDatabase(newRequest.id); string table = MapTable(newRequest.id); // Assign to local DB myConnectorHelper.SetData(newRequest.id, database, table, startData); //Return data return(startData); }
// ************************************************************ // METHODS -- GET DATA // ************************************************************ public myFrame GetEODPrices(HistoricalDataRequest myRequest) { // Check local database myFrame localData = Get_FromLocalDatabase(myRequest); // CASE A : NO DATA PRESENT IN LOCAL DB if (localData.IsEmpty() == true) { // 1. Fetch the data from external sources localData = Get_FromExternalSource(myRequest); // 2. Perform some checks // @TODO : checks needed // 3. Map the local DB string database = MapDatabase(myRequest.id); string table = MapTable(myRequest.id); // 4. Assign to local DB myConnectorHelper.SetData(myRequest.id, database, table, localData); // 5. Return the data return(localData); } // CASE B : DATA FOUND else { // Check data for completeness (start date included in local data) bool startDatePresent = (myRequest.startDate >= localData.startDate); // Check data for completeness (end date included in local data) bool endDatePresent = (myRequest.endDate <= localData.endDate); // Which leads to 4 possible cases... // CASE B-1 : Time period covered by local data if (startDatePresent && endDatePresent) { return(localData); } // CASE B-2 : Start Date Covered but not end date else if (startDatePresent && !endDatePresent) { myFrame endData = UpdateData(myRequest, localData.endDate.AddDays(1), myRequest.endDate); // Merge with existing data localData.Union(endData); // Return return(localData); } // CASE B-3 : Start Date not covered but end date present else if (!startDatePresent && endDatePresent) // ----------------> Verified { // Update local database myFrame startData = UpdateData(myRequest, myRequest.startDate, localData.startDate.AddDays(-1)); // Merge with existing data localData.Union(startData); // Return return(localData); } // CASE B-4 : Both ends not covered else { //myFrame startData = UpdateData(myRequest, localData.startDate, myRequest.startDate.AddDays(-1)); myFrame startData = UpdateData(myRequest, myRequest.startDate, localData.startDate.AddDays(-1)); localData.Union(startData); myFrame endData = UpdateData(myRequest, myRequest.endDate.AddDays(1), localData.endDate); localData.Union(endData); return(localData); } } }
private void setHistoricalData() { _historicalData = myDataReader.EndOfDay(DBID); }