public static async Task StoreDay1Bars(string symbol, List <Bar> bars) { List <Point> points = new List <Point>(); foreach (Bar aBar in bars) { Point aPoint = new Point { Name = "Bar.Daily", Fields = new Dictionary <string, object> { { "LastClose", aBar.LastClose }, { "Open", aBar.Open }, { "High", aBar.High }, { "Low", aBar.Low }, { "Close", aBar.Close }, { "Volume", aBar.Volume }, { "Amount", aBar.Amount } }, Tags = new Dictionary <string, object> { { "Symbol", symbol } }, Timestamp = aBar.BeginTime }; points.Add(aPoint); } await InfluxHelper.WriteAsync(points, dbName); }
public static async Task StoreTrades(string symbol, List <Trade> trades) { List <Point> points = new List <Point>(); foreach (Trade aTrade in trades) { Point aPoint = new Point { Name = "Trade", Fields = new Dictionary <string, object> { { "Price", aTrade.Price }, { "Volume", aTrade.Volume }, { "Amount", aTrade.Amount } }, Tags = new Dictionary <string, object> { { "Symbol", symbol } }, Timestamp = aTrade.DateTime }; points.Add(aPoint); } await InfluxHelper.WriteAsync(points, dbName); }
public static void DatabaseInit() { IEnumerable <Database> databases = InfluxHelper.GetDatabase(); bool has = false; foreach (Database database in databases) { if (database.Name == dbName) { has = true; break; } } if (!has) { if (InfluxHelper.CreateDatabase(dbName)) { Console.WriteLine("Database {0} created.", dbName); } if (InfluxHelper.CreateRetentionPolicy(dbName, min1BarPolicyName, "365d", 1)) { Console.WriteLine("Retention policy {0} created.", min1BarPolicyName); } if (InfluxHelper.CreateRetentionPolicy(dbName, tradePolicyName, "30d", 1)) { Console.WriteLine("Retention policy {0} created.", tradePolicyName); } } }
public static List <Bar> GetDay1Bars(string symbol) { string query = string.Format("select * from \"Bar.Daily\" where \"Symbol\"=\'{0}\'", symbol); IEnumerable <Serie> series = InfluxHelper.Query(query, dbName); List <Bar> ret = new List <Bar>(); foreach (Serie serie in series) { foreach (var value in serie.Values) { Bar aBar = new Bar { BeginTime = Convert.ToDateTime(value[0]), Amount = Utils.ParseDouble(value[1].ToString()), Close = Utils.ParseFloat(value[2].ToString()), High = Utils.ParseFloat(value[3].ToString()), LastClose = Utils.ParseFloat(value[4].ToString()), Low = Utils.ParseFloat(value[5].ToString()), Open = Utils.ParseFloat(value[6].ToString()), Volume = Utils.ParseDouble(value[8].ToString()), Size = 86400 }; ret.Add(aBar); } } return(ret); }
private static IBatchWriter StartBatchWriter(string policyName) { IBatchWriter batchWriter = null; lock (_locker) { if (!batchWriters.ContainsKey(policyName)) { batchWriter = InfluxHelper.CreateBatchWriter(dbName, policyName); batchWriter.OnError += BatchWriter_OnError; batchWriter.Start(1000, true); batchWriters.Add(policyName, batchWriter); } else { batchWriter = batchWriters[policyName]; } } return(batchWriter); }
public static void SetInfluxConnectParameters(string influxUrl, string username, string password) { InfluxHelper.SetConnectParameters(influxUrl, username, password); }