/// <summary> /// Function: Retrieve value from time series object. /// </summary> /// <param name="date">DateTime value representing the date of the value to be retrieved. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> override public double this[DateTime date, TimeSeriesType ttype, TimeSeriesRollType roll] { get { return(base[date, ttype, this.DefaultDataProvider, roll, 0]); } }
/// <summary> /// Function: Convert a value from the Sell currency denomination to the Buy currency denomination on a given date. /// The conversion is dependent on the definition of the inverse of the FX Instrument. /// </summary> /// <param name="value">Value to be converted. /// </param> /// <param name="date">Reference date. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="provider">Provider of reference time series object (Standard is AQI). /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> public double ConvertInverse(double value, DateTime date, TimeSeriesType type, DataProvider provider, TimeSeriesRollType timeSeriesRoll) { return(value / FXInstrument[date, type, provider, timeSeriesRoll]); }
/// <summary> /// Function: Retrieve value from time series object. /// </summary> /// <param name="date">DateTime value representing the date of the value to be retrieved. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="provider">Provider of reference time series object (Standard is AQI). /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> override public double this[DateTime date, TimeSeriesType type, DataProvider provider, TimeSeriesRollType timeSeriesRoll] { get { if (provider.ID == DataProvider.DefaultProvider.ID) { return(base[date, type, this.DefaultDataProvider, timeSeriesRoll, 0]); } else { return(base[date, type, provider, timeSeriesRoll, 0]); } } }
/// <summary> /// Function: Convert a value from the Sell currency denomination to the Buy currency denomination on a given date. /// The conversion is dependent on the definition of the FX Instrument. /// </summary> /// <param name="value">Value to be converted. /// </param> /// <param name="date">Reference date. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="provider">Provider of reference time series object (Standard is AQI). /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> public double Convert(double value, DateTime date, TimeSeriesType type, DataProvider provider, TimeSeriesRollType timeSeriesRoll) { double fxi = FXInstrument[date, type, provider, timeSeriesRoll]; if (double.IsNaN(fxi)) { CurrencyPair pair_inv = CurrencyPair.FindCurrencyPair(CurrencySell, CurrencyBuy); if (pair_inv != null) { return(pair_inv.ConvertInverse(value, date, type, provider, timeSeriesRoll)); } return(value); } return(value * fxi); }
/// <summary> /// Function: Convert a value from the Sell currency denomination to the Buy currency denomination on a given date. /// </summary> /// <param name="value">Value to be converted. /// </param> /// <param name="date">Reference date. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="provider">Provider of reference time series object (Standard is AQI). /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> /// <param name="buy">Target currency in the conversion. /// </param> /// <param name="sell">Initial currency in the conversion. /// </param> public static double Convert(double value, DateTime date, TimeSeriesType type, DataProvider provider, TimeSeriesRollType timeSeriesRoll, Currency buy, Currency sell) { if (buy == sell) { return(value); } CurrencyPair pair = CurrencyPair.FindCurrencyPair(buy, sell); if (pair != null) { return(pair.Convert(value, date, type, provider, timeSeriesRoll)); } CurrencyPair pair_inv = CurrencyPair.FindCurrencyPair(sell, buy); if (pair_inv != null) { return(pair_inv.ConvertInverse(value, date, type, provider, timeSeriesRoll)); } Console.WriteLine("WARNING: NO CURRENCY PAIR FOUND - " + buy.Name + "/" + sell.Name); return(value); }
public double GetMemorySeriesPoint(Strategy strategy, DateTime date, int memorytype, int memoryclass, TimeSeriesRollType timeSeriesRoll) { string key = strategy.ID + "_" + memorytype + "_" + memoryclass; if (!Instrument.TimeSeriesLoadFromDatabase) { if (!_memorySeriesDatabase.ContainsKey(key)) { GetMemorySeries(strategy, memorytype, memoryclass); } if (timeSeriesRoll == TimeSeriesRollType.Exact) { return(_memorySeriesDatabase[key][date]); } else { return(_memorySeriesDatabase[key][date, TimeSeries.DateSearchType.Previous]); } } string tableName = _StrategyMemoryTableName; string searchString; string targetString = "TOP 1 *"; if (timeSeriesRoll == TimeSeriesRollType.Exact) { searchString = string.Format("ID={0} AND MemoryTypeID={1} AND MemoryClassID={2} AND Timestamp='{3:yyyy-MM-dd HH:mm:ss.fff}' ORDER BY Timestamp DESC", strategy.ID, (int)memorytype, (int)memoryclass, date); } else { searchString = string.Format("ID={0} AND MemoryTypeID={1} AND MemoryClassID={2} AND Timestamp<='{3:yyyy-MM-dd HH:mm:ss.fff}' ORDER BY Timestamp DESC", strategy.ID, (int)memorytype, (int)memoryclass, date); } if (Database.DB[strategy.StrategyDB] is QuantApp.Kernel.Adapters.SQL.SQLiteDataSetAdapter || Database.DB[strategy.StrategyDB] is QuantApp.Kernel.Adapters.SQL.PostgresDataSetAdapter) { searchString += " LIMIT 1"; targetString = "*"; } DataTable _datesTable = Database.DB[strategy.StrategyDB].GetDataTable(tableName, targetString, searchString); DataRowCollection rs = _datesTable.Rows; if (rs.Count == 0) { return(double.NaN); } DataRow r = rs[0]; return((double)r["Value"]); }
/// <summary> /// Function: Convert a value from the Sell currency denomination to the Buy currency denomination on a given date. /// The conversion is dependent on the definition of the FX Instrument. /// </summary> /// <param name="value">Value to be converted. /// </param> /// <param name="date">Reference date. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="provider">Provider of reference time series object (Standard is AQI). /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> public double Convert(double value, DateTime date, TimeSeriesType type, DataProvider provider, TimeSeriesRollType timeSeriesRoll) { double fxi = FXInstrument[date, type, provider, timeSeriesRoll]; if (double.IsNaN(fxi)) { return(value); } return(value * fxi); }
/// <summary> /// Function: Convert a value from the Sell currency denomination to the Buy currency denomination on a given date. /// </summary> /// <param name="value">Value to be converted. /// </param> /// <param name="date">Reference date. /// </param> /// <param name="type">Time series type of time series point. /// </param> /// <param name="provider">Provider of reference time series object (Standard is AQI). /// </param> /// <param name="timeSeriesRoll">Roll type of reference time series object. /// </param> /// <param name="buy">Target currency in the conversion. /// </param> /// <param name="sell">Initial currency in the conversion. /// </param> public static double Convert(double value, DateTime date, TimeSeriesType type, DataProvider provider, TimeSeriesRollType timeSeriesRoll, Currency buy, Currency sell) { if (buy == sell) { return(value); } CurrencyPair pair = CurrencyPair.FindCurrencyPair(buy, sell); if (pair != null) { return(pair.Convert(value, date, type, provider, timeSeriesRoll)); } CurrencyPair pair_inv = CurrencyPair.FindCurrencyPair(sell, buy); if (pair_inv != null) { return(pair_inv.ConvertInverse(value, date, type, provider, timeSeriesRoll)); } return(0.0); }