private static void UpdateStockBase(HtmlNode targetRow, StockBase stockBase, int column) { switch (column) { case (int)StockBasePosition.NoAndName: var noAndName = targetRow.ChildNodes[column].InnerText.Trim().Split(' '); int no; if (int.TryParse(noAndName[0], out no)) { stockBase.No = no; stockBase.Name = noAndName[1]; } break; case (int)StockBasePosition.ListedDate: var date = targetRow.ChildNodes[column].InnerText.Trim(); DateTime listedDate; if (DateTime.TryParse(date, out listedDate)) { stockBase.ListedDate = listedDate; } break; case (int)StockBasePosition.Industry: stockBase.Industry = targetRow.ChildNodes[column].InnerText.Trim(); break; default: break; } }
private void DoDbInsert(StockBase stockBase) { string sql = "INSERT INTO TRADETAB VALUES (NULL, @TRADEDATE, @SYMBOL, @OPEN, @HIGH, @LOW, @CLOSE, @VOLUME, @VALUE, @NFB, @MKTPCT, @SECTORID)"; SqliteCommand cmd = new SqliteCommand(sql, DbConnection, DbTransaction); cmd.Parameters.Add("@TRADEDATE", DbType.String).Value = stockBase.OwnerDocument.TradeDate.ToString("yyyy-MM-dd"); cmd.Parameters.Add("@SYMBOL", DbType.String).Value = stockBase.Symbol; cmd.Parameters.Add("@OPEN", DbType.Double).Value = stockBase.Open; cmd.Parameters.Add("@HIGH", DbType.Double).Value = stockBase.High; cmd.Parameters.Add("@LOW", DbType.Double).Value = stockBase.Low; cmd.Parameters.Add("@CLOSE", DbType.Double).Value = stockBase.Close; cmd.Parameters.Add("@VOLUME", DbType.Double).Value = stockBase.Volume; cmd.Parameters.Add("@VALUE", DbType.Double).Value = stockBase.Value; cmd.Parameters.Add("@NFB", DbType.Double).Value = stockBase.NetForeignBuy; cmd.Parameters.Add("@MKTPCT", DbType.Double).Value = (stockBase.Value / pseiValue) * 100; if (stockBase is StockItem) { cmd.Parameters.Add("@SECTORID", DbType.Int32).Value = this.getSectorId(((StockItem)stockBase).OwnerSector.Symbol); this.UpdateOrInsertStockData(stockBase as StockItem); } else { cmd.Parameters.Add("@SECTORID", DbType.Object).Value = this.getSectorId(stockBase.Symbol); } cmd.ExecuteNonQuery(); }
private string getCSVLine(string csvFormat, StockBase stockBase, CSVOutputSettings csvOutputSettings) { csvFormat = csvFormat.Replace(CSVOutputSettings.STOCK_SYMBOL, stockBase.Symbol); csvFormat = csvFormat.Replace(CSVOutputSettings.DESCRIPTION_SYMBOL, stockBase.Description); csvFormat = csvFormat.Replace(CSVOutputSettings.OPEN_SYMBOL, stockBase.Open.ToString()); csvFormat = csvFormat.Replace(CSVOutputSettings.HIGH_SYMBOL, stockBase.High.ToString()); csvFormat = csvFormat.Replace(CSVOutputSettings.LOW_SYMBOL, stockBase.Low.ToString()); csvFormat = csvFormat.Replace(CSVOutputSettings.CLOSE_SYMBOL, stockBase.Close.ToString()); csvFormat = csvFormat.Replace(CSVOutputSettings.NFBS_SYMBOL, stockBase.NetForeignBuy.ToString()); if (stockBase is SectorItem) { string volume; if (csvOutputSettings.UseSectorValueAsVolume) { volume = stockBase.Value.ToString(CultureInfo.CreateSpecificCulture("en-US")); } else { volume = stockBase.Volume.ToString(CultureInfo.CreateSpecificCulture("en-US")); } csvFormat = csvFormat.Replace(CSVOutputSettings.VOLUME_SYMBOL, volume); } else { csvFormat = csvFormat.Replace(CSVOutputSettings.VOLUME_SYMBOL, stockBase.Volume.ToString(CultureInfo.CreateSpecificCulture("en-US"))); } //Debug.WriteLine(csvFormat); return(csvFormat); }
private void SetAmibrokerData(IOperationInvoker amiInvoker, PSEDocument pseDocument, StockBase stockData, AmiOutputSettings amiOutputSettings) { int version = Convert.ToInt32(amiInvoker.Property("Version").Get <string>().Replace(".", string.Empty)); // stocks collection IOperationInvoker stocks = amiInvoker.Property("Stocks").Get <IOperationInvoker>(); // add stock item to collection IOperationInvoker stock = stocks.Method("Add").AddParameter(stockData.Symbol).Invoke <IOperationInvoker>(); // quotations collection IOperationInvoker quotations = stock.Property("Quotations").Get <IOperationInvoker>(); // add a quoatation item to collection IOperationInvoker quotation = quotations.Method("Add").AddParameter(pseDocument.TradeDate).Invoke <IOperationInvoker>(); if (version >= 5400) { // new 5.4 and up properties stock.Property("FullName").Set(stockData.Description); } quotation.Property("Open").Set(stockData.Open); quotation.Property("High").Set(stockData.High); quotation.Property("Low").Set(stockData.Low); quotation.Property("Close").Set(stockData.Close); if (stockData.Symbol.StartsWith("^")) { double volume; double nfb; if (amiOutputSettings.UseSectorValueAsVolume) { volume = Math.Truncate(stockData.Value) / amiOutputSettings.SectorVolumeDivider; } else { volume = stockData.Volume / amiOutputSettings.SectorVolumeDivider; } if (stockData.Symbol == "^PSEi") { nfb = pseDocument.NetForeignBuying / amiOutputSettings.SectorVolumeDivider; } else { nfb = stockData.NetForeignBuy / amiOutputSettings.SectorVolumeDivider; } quotation.Property("Volume").Set(Math.Truncate(volume)); quotation.Property("OpenInt").Set(Math.Truncate(nfb)); } else { quotation.Property("Volume").Set(stockData.Volume); quotation.Property("OpenInt").Set(stockData.NetForeignBuy); } }
private string getCSVLine(string csvFormat, StockBase stockBase, CSVOutputSettings csvOutputSettings) { //double stockValue = stockBase.Value; // remove decimals double netForeignBuy = Math.Truncate(stockBase.NetForeignBuy); if (stockBase is SectorItem) { // scale down nfb and volume for sectors // stockValue = Math.Truncate(stockBase.Value / this._outputSettings.SectorVolumeDivider); netForeignBuy = Math.Truncate(stockBase.NetForeignBuy / this.OutputSettings.SectorVolumeDivider); // index value as volume double volume; if (csvOutputSettings.UseSectorValueAsVolume) { volume = stockBase.Value; } else { volume = stockBase.Volume; } // index divisor volume = Math.Truncate(volume / csvOutputSettings.SectorVolumeDivider); csvFormat = csvFormat.Replace(CSVOutputSettings.VOLUME_SYMBOL, volume.ToString(CultureInfo.CreateSpecificCulture("en-US"))); } else { csvFormat = csvFormat.Replace(CSVOutputSettings.VOLUME_SYMBOL, stockBase.Volume.ToString(CultureInfo.CreateSpecificCulture("en-US"))); } csvFormat = csvFormat.Replace(CSVOutputSettings.STOCK_SYMBOL, stockBase.Symbol); csvFormat = csvFormat.Replace(CSVOutputSettings.DESCRIPTION_SYMBOL, stockBase.Description); csvFormat = csvFormat.Replace(CSVOutputSettings.OPEN_SYMBOL, stockBase.Open.ToString(CultureInfo.CreateSpecificCulture("en-US"))); csvFormat = csvFormat.Replace(CSVOutputSettings.HIGH_SYMBOL, stockBase.High.ToString(CultureInfo.CreateSpecificCulture("en-US"))); csvFormat = csvFormat.Replace(CSVOutputSettings.LOW_SYMBOL, stockBase.Low.ToString(CultureInfo.CreateSpecificCulture("en-US"))); csvFormat = csvFormat.Replace(CSVOutputSettings.CLOSE_SYMBOL, stockBase.Close.ToString(CultureInfo.CreateSpecificCulture("en-US"))); csvFormat = csvFormat.Replace(CSVOutputSettings.NFBS_SYMBOL, netForeignBuy.ToString(CultureInfo.CreateSpecificCulture("en-US"))); csvFormat = csvFormat.Replace(CSVOutputSettings.VALUE_SYMBOL, stockBase.Value.ToString(CultureInfo.CreateSpecificCulture("en-US"))); //Debug.WriteLine(csvFormat); return(csvFormat); }
public bool Read() { try { StringBuilder sb = new StringBuilder(); sb.Append(string.Format("select * from tipo_stock where CODIGO_P = '{0}' and centro_costo = '{1}' and ubicacion = '{2}';", _codigo, _centro_costos, _ubicacion)); Conexion con = new Conexion(); StockBase pd = con.ObtenerStock(sb.ToString()); this._id = pd.Id; this._codigo = pd.Codigo; this._stock = pd.Stock; this._ubicacion = pd.Ubicaciones; this._centro_costos = pd.Centro_costo; return(true); } catch { return(false); } }
private static List <StockBase> GetStockBases(HtmlNodeCollection nodes) { var result = new List <StockBase>(); for (int row = 0; row < nodes.Count; row++) { if (nodes[row].ChildNodes.Count > 5 && nodes[row].ChildNodes[5].InnerText.Trim() == "ESVUFR") { var stockBase = new StockBase() { Enabled = true }; var targetRow = nodes[row]; for (int column = 0; column < targetRow.ChildNodes.Count; column++) { UpdateStockBase(targetRow, stockBase, column); } result.Add(stockBase); } } return(result); }
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. /// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary> /// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param> /// <param name="serviceImpl">An object implementing the server-side handling logic.</param> public static void BindService(grpc::ServiceBinderBase serviceBinder, StockBase serviceImpl) { serviceBinder.AddMethod(__Method_GetAllProducts, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod <global::StockServices.Protos.Empty, global::StockServices.Protos.Product>(serviceImpl.GetAllProducts)); serviceBinder.AddMethod(__Method_AddProduct, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::StockServices.Protos.Product, global::StockServices.Protos.Result>(serviceImpl.AddProduct)); }
/// <summary>Creates service definition that can be registered with a server</summary> /// <param name="serviceImpl">An object implementing the server-side handling logic.</param> public static grpc::ServerServiceDefinition BindService(StockBase serviceImpl) { return(grpc::ServerServiceDefinition.CreateBuilder() .AddMethod(__Method_GetAllProducts, serviceImpl.GetAllProducts) .AddMethod(__Method_AddProduct, serviceImpl.AddProduct).Build()); }
public StockEventArgs(StockBase stockItem) { StockItem = stockItem; }