本文整理汇总了C#中StockSerie.ContainsKey方法的典型用法代码示例。如果您正苦于以下问题:C# StockSerie.ContainsKey方法的具体用法?C# StockSerie.ContainsKey怎么用?C# StockSerie.ContainsKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StockSerie
的用法示例。
在下文中一共展示了StockSerie.ContainsKey方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseIntradayData
private static bool ParseIntradayData(StockSerie stockSerie, string fileName)
{
bool res = false;
try
{
using (StreamReader sr = new StreamReader(fileName))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
string[] row = line.Split(',');
if (row.Length <2) continue;
DateTime openDate;
if (!DateTime.TryParse(row[0], out openDate)) continue;
float value = float.Parse(row[1]);
if (!stockSerie.ContainsKey(openDate))
{
StockDailyValue dailyValue = new StockDailyValue(stockSerie.StockName,
value,
value,
value,
value,
0,
openDate);
stockSerie.Add(dailyValue.DATE, dailyValue);
}
}
stockSerie.ClearBarDurationCache();
res = true;
}
}
catch (System.Exception e)
{
StockLog.Write("Unable to parse intraday data for " + stockSerie.StockName);
StockLog.Write(e);
}
return res;
}
示例2: ParsePCRatioCSV
private bool ParsePCRatioCSV(StockSerie stockSerie, string fileName)
{
if (File.Exists(fileName))
{
using (StreamReader sr = new StreamReader(fileName))
{
StockDailyValue readValue = null;
while (!sr.ReadLine().EndsWith("P/C Ratio") && !sr.EndOfStream) ;
while (!sr.EndOfStream)
{
try
{
string[] row = sr.ReadLine().Split(',');
float ratio = float.Parse(row[4], usCulture);
//ratio = (float)Math.Log10(ratio);
//if (inverse) ratio = -ratio;
readValue = new StockDailyValue(
stockSerie.StockName,
ratio,
ratio,
ratio,
ratio,
long.Parse(row[3], usCulture),
DateTime.Parse(row[0], usCulture));
if (readValue != null && !stockSerie.ContainsKey(readValue.DATE))
{
stockSerie.Add(readValue.DATE, readValue);
}
}
catch (System.Exception e)
{
StockLog.Write(e);
return false;
}
}
}
return true;
}
else
{
return false;
}
}
示例3: ParseRydexData
private bool ParseRydexData(StockSerie stockSerie, string fileName)
{
if (File.Exists(fileName))
{
using (StreamReader sr = new StreamReader(fileName))
{
StockDailyValue readValue = null;
string line;
// Skip 2 first lines
while (!sr.EndOfStream && !(line = sr.ReadLine()).Contains("Date")) ;
while (!sr.EndOfStream)
{
readValue = null;
line = sr.ReadLine();
if (string.IsNullOrEmpty(line))
{
break;
}
line = line.Replace("\",\"", ";");
line = line.Replace("\"", "");
string[] row = line.Split(';');
if (row[2] == "N/A" || row[3] == "N/A" || row[1] == "AM") continue;
float value = float.Parse(row[3], usCulture) / float.Parse(row[2], usCulture);
readValue = new StockDailyValue(
stockSerie.StockName,
value,
value,
value,
value,
0,
DateTime.Parse(row[0], usCulture));
if (!stockSerie.ContainsKey(readValue.DATE))
{
stockSerie.Add(readValue.DATE, readValue);
}
}
}
return true;
}
return false;
}
示例4: ParseIntradayData
private static bool ParseIntradayData(StockSerie stockSerie, string fileName)
{
bool res = false;
try
{
using (StreamReader sr = new StreamReader(fileName))
{
string line;
while ((line = sr.ReadLine()) != null)
{
if (line.StartsWith("timezone")) break;
}
if (sr.EndOfStream) return false;
string[] row = line.Split(new char[] { ':' });
string timeZone = row[1];
double gmtoffset = timeZone == "CEST" ? -32400 : 0;
while ((line = sr.ReadLine()) != null)
{
if (line.StartsWith("gmtoffset")) break;
}
if (sr.EndOfStream) return false;
row = line.Split(new char[] { ':' });
gmtoffset += double.Parse(row[1]);
DateTime now = DateTime.Now;
DateTime utcNow = now.ToUniversalTime();
gmtoffset -= (now - utcNow).TotalSeconds;
while (!(line = sr.ReadLine()).StartsWith("range")) ;
// First Range, read second offest for date calculation.
row = line.Split(new char[] { ',', ':' });
DateTime startDate = new DateTime(int.Parse(row[1].Substring(0, 4)), int.Parse(row[1].Substring(4, 2)), int.Parse(row[1].Substring(6, 2)));
// startDate = startDate.AddHours(9);
long startTimeStamp = long.Parse(row[2]);
while (!(line = sr.ReadLine()).StartsWith("volume")) ;
while (!sr.EndOfStream)
{
line = sr.ReadLine();
row = line.Split(new char[] { ',' });
DateTime openDate = startDate;
openDate = startDate.AddSeconds(long.Parse(row[0]) - startTimeStamp);
openDate = startDate.AddSeconds(long.Parse(row[0]) - startTimeStamp - gmtoffset);
if (!stockSerie.ContainsKey(openDate))
{
StockDailyValue dailyValue = new StockDailyValue(stockSerie.StockName,
float.Parse(row[4], usCulture),
float.Parse(row[2], usCulture),
float.Parse(row[3], usCulture),
float.Parse(row[1], usCulture),
long.Parse(row[5]),
openDate);
stockSerie.Add(dailyValue.DATE, dailyValue);
}
}
stockSerie.ClearBarDurationCache();
res = true;
}
}
catch (System.Exception e)
{
StockLog.Write("Unable to parse intraday data for " + stockSerie.StockName);
StockLog.Write(e);
}
return res;
}
示例5: ParseBarChartFile
private bool ParseBarChartFile(StockSerie stockSerie, string fileName)
{
bool res = false;
try
{
if (File.Exists(fileName))
{
using (StreamReader sr = new StreamReader(fileName))
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Response));
Response jsonResponse = jsonSerializer.ReadObject(sr.BaseStream) as Response;
if (jsonResponse != null && jsonResponse.error != null)
{
foreach (var data in jsonResponse.data.series[0].data)
{
DateTime date = refDate.AddMilliseconds(data[0]).Date;
if (!stockSerie.ContainsKey(date))
{
stockSerie.Add(date, new StockDailyValue(stockSerie.StockName, (float)data[1], (float)data[2], (float)data[3], (float)data[4], 0, date));
}
}
res = true;
}
}
}
}
catch (System.Exception e)
{
StockLog.Write(e);
res = false;
}
return res;
}
示例6: ParseIntradayData
private static bool ParseIntradayData(StockSerie stockSerie, string fileName)
{
bool res = false;
try
{
using (StreamReader sr = new StreamReader(fileName))
{
string line = sr.ReadLine();
while (!(line = sr.ReadLine()).StartsWith("INTERVAL")) ;
int interval;
interval = int.Parse(line.Split('=')[1]);
while (!(line = sr.ReadLine()).StartsWith("TIMEZONE_OFFSET")) ;
int offset;
offset = int.Parse(line.Split('=')[1]);
string[] row;
DateTime startDate = DateTime.Now;
while (!sr.EndOfStream)
{
line = sr.ReadLine();
DateTime openDate = DateTime.Now;
row = line.Split(new char[] { ',' });
if (line.StartsWith("a"))
{
// new day detected
string startString = row[0].Replace("a", "");
double seconds = double.Parse(startString);
startDate = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(seconds).AddMinutes(offset);
openDate = startDate;
}
else if (line.StartsWith("TIMEZONE_OFFSET"))
{
offset = int.Parse(line.Split('=')[1]);
continue;
}
else
{
// just a new bar
openDate = startDate.AddSeconds(long.Parse(row[0]) * interval);
}
if (!stockSerie.ContainsKey(openDate))
{
StockDailyValue dailyValue = new StockDailyValue(stockSerie.StockName,
float.Parse(row[4], usCulture),
float.Parse(row[2], usCulture),
float.Parse(row[3], usCulture),
float.Parse(row[1], usCulture),
long.Parse(row[5]),
openDate);
stockSerie.Add(dailyValue.DATE, dailyValue);
}
}
stockSerie.ClearBarDurationCache();
res = true;
}
}
catch (System.Exception e)
{
StockLog.Write("Unable to parse intraday data for " + stockSerie.StockName);
StockLog.Write(e);
}
return res;
}
示例7: ParseCSVFile
// private functions
protected override bool ParseCSVFile(StockSerie stockSerie, string fileName)
{
if (File.Exists(fileName))
{
using (StreamReader sr = new StreamReader(fileName))
{
StockDailyValue readValue = null;
while (!sr.EndOfStream)
{
readValue = this.ReadMarketDataFromABCCSVStream(sr, stockSerie.StockName, true);
if (readValue != null)
{
if (!stockSerie.ContainsKey(readValue.DATE))
{
stockSerie.Add(readValue.DATE, readValue);
readValue.Serie = stockSerie;
}
else
{ //
StockLog.Write("The dailyValue already exist in the serie");
}
}
}
}
return true;
}
else
{
return false;
}
}
示例8: ParseCSVFile
//protected virtual bool ParseOptixFile(StockSerie stockSerie, string rootFolder)
//{
// string fileName = rootFolder + OPTIX_SUBFOLDER + "\\" + stockSerie.ShortName + ".csv";
// if (File.Exists(fileName))
// {
// using (StreamReader sr = new StreamReader(fileName))
// {
// string line = sr.ReadLine(); // Skip the first line
// StockDailyValue dailyValue = null;
// while (!sr.EndOfStream)
// {
// line = sr.ReadLine(); // Skip the first line
// var fields = line.Split(',');
// if (fields.Count() < 2 || string.IsNullOrEmpty(fields[0])) continue;
// DateTime date = DateTime.Parse(fields[0], usCulture);
// // Try to find the matching value at date in the serie
// if (date >= stockSerie.Keys.First() && stockSerie.ContainsKey(date))
// {
// dailyValue = stockSerie[date];
// dailyValue.OPTIX = float.Parse(fields[1], usCulture);
// }
// }
// }
// return true;
// }
// else
// {
// return false;
// }
//}
//protected bool DownloadOptixData(string rootFolder, StockSerie stockSerie)
//{
// if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() && stockSerie.HasOptix)
// {
// NotifyProgress("Downloading Optix for" + stockSerie.StockGroup.ToString());
// if (!stockSerie.Initialise())
// {
// return false;
// }
// if (stockSerie.Values.Last().OPTIX != 0.0f)
// {
// return false;
// }
// string optixFileName = rootFolder + OPTIX_SUBFOLDER + "\\" + stockSerie.ShortName + ".csv";
// using (WebClient wc = new WebClient())
// {
// wc.Proxy.Credentials = CredentialCache.DefaultCredentials;
// wc.DownloadFile(stockSerie.OptixURL, optixFileName);
// stockSerie.IsInitialised = false;
// }
// }
// return true;
//}
protected virtual bool ParseCSVFile(StockSerie stockSerie, string fileName)
{
if (File.Exists(fileName))
{
using (StreamReader sr = new StreamReader(fileName))
{
sr.ReadLine(); // Skip the first line
StockDailyValue readValue = null;
while (!sr.EndOfStream)
{
readValue = this.ReadMarketDataFromCSVStream(sr, stockSerie.StockName, true);
if (readValue != null && readValue.DATE.Year >= LOAD_START_YEAR && !stockSerie.ContainsKey(readValue.DATE))
{
stockSerie.Add(readValue.DATE, readValue);
readValue.Serie = stockSerie;
}
}
}
return true;
}
else
{
return false;
}
}