從錢龍數據中讀取股票權息信息導入到數據庫

從錢龍數據中讀取股票權息信息導入到數據庫
前面寫了如果讀股票代碼和日線數據,下面是如何讀股票的權息信息。

錢龍中權息數據存儲在QLDATA/history/shase/weight和QLDATA/history/sznse/weight目錄下,每個文件對應一只股票。

與前文一樣,只貼核心代碼:

??????? private static void ReadStockWeights(string strPath, string p_strMarket)
??????? {
??????????? string[] parts = strPath.Split('//');
??????????? string strStockCode = null;
??????????? for (int i = parts.Length - 1; i >= 0;i-- )
??????????? {
??????????????? string strTemp = parts[i];
??????????????? if (strTemp.ToUpper().EndsWith(".WGT"))
??????????????? {
??????????????????? strStockCode = strTemp.Substring(0, strTemp.Length - 4) ;
??????????????????? break;
??????????????? }
??????????? }
??????????? Debug.Assert(strStockCode != null);
??????????? Console.WriteLine("Read stock weight from file '" + strPath + "'");
??????????? FileStream stream = new FileStream(strPath, FileMode.Open, FileAccess.Read);
??????????? BinaryReader b_reader = new BinaryReader(stream);
??????????? List<StockWeightInfo> weightInfos = new List<StockWeightInfo>();
??????????? try
??????????? {
??????????????? while (stream.CanRead && stream.Position < stream.Length)
??????????????? {
??????????????????? int[] oneRow = new int[9];
??????????????????? for( int i=0;i<9;i++)
??????????????????? {
??????????????????????? oneRow[i] = b_reader.ReadInt32();
??????????????????? }//for
??????????????????? if (oneRow[8] != 0)
??????????????????? {
??????????????????????? throw new Exception("Last entry is not empty");
??????????????????? }
??????????????????? //read date
??????????????????? int nYear = oneRow[0] >> 20;
??????????????????? int nMon = (int)(((uint)(oneRow[0] << 12))>> 28);
??????????????????? int nDay = (oneRow[0] & 0xffff)>> 11;

??????????????????? DateTime wgtDate;
??????????????????? if (nYear == 0 && nMon == 0 && nDay == 0)
??????????????????????? wgtDate = DateTime.MinValue;
??????????????????? else
??????????????????????????? wgtDate = new DateTime(nYear, nMon, nDay);
??????????????????? StockWeightInfo wgtInfo = new StockWeightInfo();
??????????????????? wgtInfo.m_date = wgtDate;
??????????????????? wgtInfo.m_stockCountAsGift = oneRow[1];/**10000.0f;
??????????????????? wgtInfo.m_stockCountForSell = oneRow[2];/**10000.0f;
??????????????????? wgtInfo.m_priceForSell = oneRow[3];/**1000.0f;
??????????????????? wgtInfo.m_bonus = oneRow[4];/**1000.0f;
??????????????????? wgtInfo.m_stockCountOfIncreasement = oneRow[5];/**10000.0f;
??????????????????? wgtInfo.m_stockOwnership = (ulong)oneRow[6];
??????????????????? wgtInfo.m_freeStockCount = (ulong)oneRow[7];
??????????????????? if (!weightInfos.Contains(wgtInfo))
??????????????????? {
??????????????????????? weightInfos.Add(wgtInfo);
??????????????????????? //Console.WriteLine();
??????????????????????? //Console.Write(wgtInfo.ToString());
??????????????????? }
??????????????? }//while
??????????????? weightInfos.Sort();
??????????? }
??????????? catch (EndOfStreamException)
??????????? {
??????????????? Console.WriteLine("Unexpected end of stream");
??????????? }
??????????? catch (Exception ex)
??????????? {

??????????????? Console.WriteLine(ex.Message);
??????????????? throw;
??????????? }
??????????? finally
??????????? {
??????????????? stream.Close();
??????????? }
??????????? SqlCommand cmd = new SqlCommand("", m_conn);
??????????? cmd.Transaction = m_tran;
??????????? cmd.CommandText = "INSERT INTO [StockWeightInfos] ([StockCode] ,[Market] ,[Date] ,[StockCountAsGift] ,[StockCountForSell] ,[PriceForSell] ,[Bonus] ,[StockCountOfIncreasement] ,[StockOwnership] ,[FreeStockCount]) " +
?????????????????????????????? "VALUES (@StockCode, @Market ,@Date ,@StockCountAsGift ,@StockCountForSell ,@PriceForSell ,@Bonus ,@StockCountOfIncreasement ,@StockOwnership ,@FreeStockCount)";
??????????? cmd.Parameters.Add("@StockCode", SqlDbType.NVarChar, 50);
??????????? cmd.Parameters.Add("@Market", SqlDbType.NVarChar, 50);
??????????? cmd.Parameters.Add("@Date", SqlDbType.DateTime);
??????????? cmd.Parameters.Add("@StockCountAsGift", SqlDbType.Real);
??????????? cmd.Parameters.Add("@StockCountForSell", SqlDbType.Real);
??????????? cmd.Parameters.Add("@PriceForSell", SqlDbType.Real);
??????????? cmd.Parameters.Add("@Bonus", SqlDbType.Real);
??????????? cmd.Parameters.Add("@StockCountOfIncreasement", SqlDbType.Real);
??????????? cmd.Parameters.Add("@StockOwnership", SqlDbType.BigInt);
??????????? cmd.Parameters.Add("@FreeStockCount", SqlDbType.BigInt);
??????????? foreach(StockWeightInfo info in weightInfos)
??????????? {
??????????????? cmd.Parameters["@StockCode"].Value = strStockCode;
??????????????? cmd.Parameters["@Market"].Value = p_strMarket;
??????????????? cmd.Parameters["@Bonus"].Value = info.m_bonus / 1000.0;
??????????????? if (info.m_date != DateTime.MinValue)
??????????????????? cmd.Parameters["@Date"].Value = info.m_date;
??????????????? else
??????????????????? cmd.Parameters["@Date"].Value = DBNull.Value;
??????????????? cmd.Parameters["@FreeStockCount"].Value = info.m_freeStockCount;
??????????????? cmd.Parameters["@PriceForSell"].Value = info.m_priceForSell/1000.0;
??????????????? cmd.Parameters["@StockCountAsGift"].Value = info.m_stockCountAsGift/10000.0;
??????????????? cmd.Parameters["@StockCountForSell"].Value = info.m_stockCountForSell/10000.0;
??????????????? cmd.Parameters["@StockCountOfIncreasement"].Value = info.m_stockCountOfIncreasement/10000.0;
??????????????? cmd.Parameters["@StockOwnership"].Value = info.m_stockOwnership;
??????????????? int nCnt=cmd.ExecuteNonQuery();
??????????????? Debug.Assert(nCnt == 1);
??????????? }//foreach
??????? }//ReadStockWeights

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389024.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389024.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389024.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

笑話生成器_爸爸笑話發生器

笑話生成器(If you’re just here for the generated jokes, scroll down to the bottom!)(如果您只是在這里生成笑話&#xff0c;請向下滾動到底部&#xff01;) I thought: what is super easy to build, yet would still get an approving chuckle if someone found it on …

AWS Amplify Console:賦予應用程序快速部署的能力

AWS re:Invent 2018大會發布了很多新功能和服務&#xff0c;包括新的AWS Amplify Console&#xff0c;一種針對移動Web應用程序的持續部署服務。 AWS Amplify Console承諾可以支持快速發布新功能&#xff0c;避免在部署應用程序時停機&#xff0c;并降低同時更新應用程序客戶端…

機器學習實踐二 -多分類和神經網絡

本次練習的任務是使用邏輯歸回和神經網絡進行識別手寫數字&#xff08;form 0 to 9, 自動手寫數字問題已經應用非常廣泛&#xff0c;比如郵編識別。 使用邏輯回歸進行多分類分類 練習2 中的logistic 回歸實現了二分類分類問題&#xff0c;現在將進行多分類&#xff0c;one vs…

Hadoop 倒排索引

倒排索引是文檔檢索系統中最常用的數據結構&#xff0c;被廣泛地應用于全文搜索引擎。它主要是用來存儲某個單詞&#xff08;或詞組&#xff09;在一個文檔或一組文檔中存儲位置的映射&#xff0c;即提供了一種根據內容來查找文檔的方式。由于不是根據文檔來確定文檔所包含的內…

koa2異常處理_讀 koa2 源碼后的一些思考與實踐

koa2的特點優勢什么是 koa2Nodejs官方api支持的都是callback形式的異步編程模型。問題&#xff1a;callback嵌套問題koa2 是由 Express原班人馬打造的&#xff0c;是現在比較流行的基于Node.js平臺的web開發框架&#xff0c;Koa 把 Express 中內置的 router、view 等功能都移除…

Bind9的dns解析服務

前言隨著原中國電信集團按南北地域分家&#xff0c;新的中國電信和網通集團隨即成立&#xff0c;互聯網的骨干網也被一分為二了&#xff0c;北有網通、南有電信。從此&#xff0c;細心的網民可以發現&#xff0c;有些經常訪問的網站速度一下子慢了下來&#xff0c;有時候還有訪…

上凸包和下凸包_使用凸包聚類

上凸包和下凸包I recently came across the article titled High-dimensional data clustering by using local affine/convex hulls by HakanCevikalp in Pattern Recognition Letters. It proposes a novel algorithm to cluster high-dimensional data using local affine/c…

sqlmap手冊

sqlmap用戶手冊 | by WooYun知識庫 sqlmap用戶手冊 當給sqlmap這么一個url (http://192.168.136.131/sqlmap/mysql/get_int.php?id1) 的時候&#xff0c;它會&#xff1a; 1、判斷可注入的參數 2、判斷可以用那種SQL注入技術來注入 3、識別出哪種數據庫 4、根據用戶選擇&…

幸運三角形 南陽acm491(dfs)

幸運三角形 時間限制&#xff1a;1000 ms | 內存限制&#xff1a;65535 KB 難度&#xff1a;3描述話說有這么一個圖形&#xff0c;只有兩種符號組成&#xff08;‘’或者‘-’&#xff09;&#xff0c;圖形的最上層有n個符號&#xff0c;往下個數依次減一&#xff0c;形成倒置…

jsforim

var isMouseDownfalse;var isFirsttrue;var centerdivObj;var ndiv1;var ndiv2;var ndiv3;var kjX;var kjY; window.οnerrοrfunction(){ return true;}; var thurlhttp://qq.jutoo.net/;var wzId12345; function createDiv(){ var sWscreen.width; var sHscree…

決策樹有框架嗎_決策框架

決策樹有框架嗎In a previous post, I mentioned that thinking exhaustively is exhausting! Volatility and uncertainty are ever present and must be factored into our decision making — yet, we often don’t have the time or data to properly account for it.在上一…

湊個熱鬧-LayoutInflater相關分析

前言 最近給組內同學做了一次“動態換膚和換文案”的主題分享&#xff0c;其中的核心就是LayoutInflater類&#xff0c;所以把LayoutInflater源碼梳理了一遍。巧了&#xff0c;這周掘金新榜和部分公眾號都發布了LayoutInflater或者換膚主題之類的文章。那只好站在各位大佬的肩膀…

ASP.NET Core文件上傳、下載與刪除

首先我們需要創建一個form表單如下: <form method"post" enctype"multipart/form-data" asp-controller"UpLoadFile" asp-action"FileSave"> <div> <div> <p>Form表單多個上傳文件:</p> <input type…

8 一點就消失_消失的莉莉安(26)

文|明鳶Hi&#xff0c;中午好&#xff0c;我是暖叔今天是免費連載《消失的莉莉安》第26章消失的莉莉安??往期鏈接&#xff1a;▼ 向下滑動閱讀1&#xff1a;“消失的莉莉安(1)”2&#xff1a; 消失的莉莉安(2)3&#xff1a;“消失的莉莉安(3)”4&#xff1a;“消失的莉莉安…

透明的WinForm窗體

this.Location new System.Drawing.Point(100, 100); this.Cursor System.Windows.Forms.Cursors.Hand; // 定義在窗體上&#xff0c;光標顯示為手形 this.Text "透明的WinForm窗體&#xff01;"; // 定義窗體的標題…

mysql那本書適合初學者_3本書適合初學者

mysql那本書適合初學者為什么要書籍&#xff1f; (Why Books?) The internet is a treasure-trove of information on a variety of topics. Whether you want to learn guitar through Youtube videos or how to change a tire when you are stuck on the side of the road, …

junit與spring-data-redis 版本對應成功的

spring-data-redis 版本:1.7.2.RELEASE junit 版本:4.12 轉載于:https://www.cnblogs.com/austinspark-jessylu/p/9366863.html

語音對話系統的設計要點與多輪對話的重要性

這是阿拉燈神丁Vicky的第 008 篇文章就從最近短視頻平臺的大媽與機器人快寶的聊天說起吧。某銀行內&#xff0c;一位阿姨因等待辦理業務的時間太長&#xff0c;與快寶機器人展開了一場來自靈魂的對話。對于銀行工作人員的不滿&#xff0c;大媽向快寶說道&#xff1a;“你們的工…

c讀取txt文件內容并建立一個鏈表_C++鏈表實現學生信息管理系統

可以增刪查改&#xff0c;使用鏈表存儲&#xff0c;支持排序以及文件存儲及數據讀取&#xff0c;基本可以應付期末大作業&#xff08;狗頭&#xff09; 界面為源代碼為一個main.cpp和三個頭文件&#xff0c;具體為 main.cpp#include <iostream> #include <fstream>…

注冊表啟動

public void SetReg() { RegistryKey hklmRegistry.LocalMachine; RegistryKey runhklm.CreateSubKey("Software/Microsoft/Windows/CurrentVersion/Run"); //定義hklm指向注冊表的LocalMachine,對注冊表的結構&#xff0c;可以在windows的運行里&#…