本文整理汇总了C#中Sheet.toShares方法的典型用法代码示例。如果您正苦于以下问题:C# Sheet.toShares方法的具体用法?C# Sheet.toShares怎么用?C# Sheet.toShares使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sheet
的用法示例。
在下文中一共展示了Sheet.toShares方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Stopwatch stopwatch = new Stopwatch();
DateTime startDate;
var endDate = DateTime.Today.GetBusinessDay(-1);
var options = new CommandLineOptions();
if (!Parser.Default.ParseArguments(args, options))
Environment.Exit(Parser.DefaultExitCodeFail);
DateTime.TryParse(String.Join(".", options.startDate), out startDate);
var logging = new Logging(options.LogFile);
Trace.WriteLine(options.ToString());
var config = new ConfigBase();
config.Load(options.Settings);
if (!options.NoDownload)
{
IDataSource dataSource = new Bloomberg();
dataSource.Connect();
HashSet<string> shareNames = new HashSet<string>();
// get specifications
var sheet = new Sheet();
sheet.Download(new string[] { config.GetValue("sheetCode"), config.GetValue("shareNames") });
var shareIDs = sheet.toShares();
shareNames.UnionWith(
dataSource.GetTickers(shareIDs.ToList())
);
sheet.Download(new string[] { config.GetValue("sheetCode"), config.GetValue("indices") });
var indexNames = sheet.toShares();
sheet.Download(new string[] { config.GetValue("sheetCode"), config.GetValue("fields") });
var fields = new List<Field>();
sheet.toFields<Field>(fields);
//download index compositions
if (indexNames != null && indexNames.Count() > 0)
{
//obtain components of indices
var names = dataSource.DownloadMultipleComponents(indexNames.ToList(), "INDX_MEMBERS");
//convert tickers -> BB IDs
shareNames.UnionWith(dataSource.GetTickers(names));
}
LocalDisk disk = new LocalDisk();
disk.SetPath(options.Dir);
//delete data for shares-reload and shares-delete
{
sheet.Download(new string[] { config.GetValue("sheetCode"), config.GetValue("shares-reload") });
var sharesReload = dataSource.GetTickers(sheet.toShares().ToList());
sheet.Download(new string[] { config.GetValue("sheetCode"), config.GetValue("shares-delete") });
var sharesDelete = dataSource.GetTickers(sheet.toShares().ToList());
foreach (var item in sharesDelete.Concat(sharesReload))
disk.DeleteDirectory(item.StripOfIllegalCharacters());
//delete shares-delete names from list of downloadable shares
foreach (var item in sharesDelete)
{
if (shareNames.Contains(item))
shareNames.Remove(item);
}
}
//download and save data
stopwatch.Start();
{
var shares = new SharesBatch(shareNames.ToList(), fields, dataSource, disk, startDate, endDate);
shares.PerformOperations();
Trace.Write("Processing Individual: ");
foreach (var shareName in shareNames)
{
Share share = new Share(name: shareName, fields: fields, dataSource: dataSource, fileAccess: disk, startDate: startDate, endDate: endDate);
share.DoWork();
}
}
dataSource.Disconnect();
//download fieldInfo
{
if (shareNames.Count() > 0)
{
dataSource.Connect(dataType: "//blp/apiflds");
disk.SetPath(options.FieldInfoDir);
Share share = new Share(name: shareNames.First(), fields: fields, dataSource: dataSource, fileAccess: disk, startDate: startDate, endDate: endDate);
share.DoWorkFieldInfo();
//.........这里部分代码省略.........