A. 请问用C#如何提取新浪等网站的股票实时动态行情数据
找到一个利用webservice的方法,希望能够帮助你
声明: 这篇文章适合在C#命令行编译器下的开发借鉴,对于已经装了MS.NET的朋友,开发客户端时将会更容易一些,我随后对登出我自己的开发程序,这篇文章为我摘录的.摘录URL:http://www.knowsky.com/2016.html
(一)
Web Services,即Web服务,是微软.NET战略中非常重要的一个概念。它的目的是将Web站点转变为集组织、应用、服务以及设备于一体的可设计Web站点,使Web站点不再处于被动的地位。
本文将介绍如何建立和使用一个在.NET 平台上提供股票报价的Web服务。我们将使用Yahoo的一项以CSV(以逗号分隔的值)的格式提供股票报价的免费服务,将其包含在我们的web 服务中。
注意:这个报价服务例程的运行大约延迟15分钟,只用于教学目的。
建立Web服务
下面将采用逐步讲解代码的形式来帮助你理解在.NET 中Web服务的编程模式。我们可以使用notepad等任何文本编辑器来编写 这里的Web服务例程代码,最后将文件存储为StockQuote.asmx。请注意:所有的Web服务文件保存时都使用扩展名 *.asmx。
<%@ WebService Language="C#" class="DailyStock" %>
代码的第一行定义了一个 Web 服务,使用的语言是C#。class属性用来指示Web服务应该调用和使用的类。如果在Web服务中使用了许多类,那么就应该用这个属性来表明Web服务应该首先调用的类。
using System ;
using System.Web.Services ;
using System.Net ;
using System.IO ;
using System.Text ;
以上代码负责引入必要的名称空间。 请记住永远都要引入System.Web.Services这个名称空间。根据类的需要,再引入保留的名称空间。
public class DailyStock : WebService
{
......
....
}
这里我们将公共类定义为 DailyStock,它扩展了 System.Web.Services.WebService 类。所有想暴露为 Web服务的类都应该扩展System.Web.Services.WebServices类。 另外,Web 服务的存取修饰语永远都是public。
[WebMethod]
public string GetQuote(string symbol)
{
........
........
}
以上我们定义了一个公共Web方法 GetQuote。同类的定义一样,Web 方法也都要用 public这个修饰语来声明。 [WebMethod] 属性呈现出将要被用在Web服务中的一些潜在方法,希望客户存取的所有方法都应该用[WebMethod] 属性进行标记。GetQuote方法接受一个字符串输入参数,它包含了使用者所需要的报价符号。这个方法返回一个字符串,其中包含股票报价或错误
string ret;
try
{
// The Path to the Yahoo Quotes Service
string fullpath = @"http://
// Create a HttpWebRequest object on the Yahoo url
HttpWebRequest webreq = (HttpWebRequest)WebRequestFactory.Create(fullpath);
// Get a HttpWebResponse object from the Yahoo url
HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();
// Create a StreamReader object and pass the Yahoo Server stream as a parameter
StreamReader strm = new StreamReader(webresp.GetResponseStream(), Encoding.ASCII);
// Read a single line from the stream (from the server)
// We read only a single line, since the Yahoo server returns all the
// information needed by us in just one line.
ret= strm.ReadLine();
// Close the stream to the server and free the resources.
strm.Close();
}
catch(Exception)
{
// If exception occurred inform the user
ret="Exception Occurred" ;
}
file://Return the Quote or Exception
return ret ;
以上是GetQuote 方法的内容。这里使用一个 try-catch模块来截获从Yahoo中得到股票报价的过程中可能发生的错误。在 try-catch模块内部声明了一个字符串变量,这个变量中保存着获取yahoo服务的完整路径,用户提供的symbol字符串变量被加到这个连接字符串上。
路径建立好之后,就要从连接字符串中构造一个 HttpWebRequest对象和一个 HttpWebResponse 对象。接着,用StreamReader打开一个到Yahoo
(二)
配置Web服务
配置Web 服务与一个配置ASP.NET应用程序相同。如果自己有Web服务器,那么就创建一个称为stockquote 的虚拟目录,然后将 StockQuote.asmx复制到这个目录中。如此就完成了Web 服务的配制。要调用Web服务,首先启动浏览器,然后键入Web 服务的路径,如 http://localhost/stockquote/StockQuote.asmx,接着看到的页面就是由Web服务运行时间环境自动生成的结果。在文本框中键入符号,例如AOL 或 MS,再点击invoke按钮,这时就会弹出一个新的窗口,在其中向你显示了Web服务的输出信息。
使用Web服务
基本上有两种使用Web 服务的方法。可以通过浏览器直接调用 Web 服务,并按照上面介绍的方法来使用它。或者,也可以在应用程序使用它。下面就看看如何建立一个Web 应用程序和一个控制台应用程序,通过它们来使用Web服务。当然,也可以使用Win Form 应用程序作为替代来使用Web 服务。
获取服务的描述
为了与Web服务进行通信,客户应该知道这个Web服务支持哪种方法以及如何与它们进行通信。.NET 上的Web服务自动用SDL(服务描述语言)产生一个 XML格式文档,这样就使客户能够获取与Web服务通信时所需要的信息。 在Web 服务URL之后附加 ?SDL 使Web服务生成客户能够使用的SDL文档。要查阅这里接受的Web 服务的SDL,可以在浏览器中键入http://localhost/stockquote/StockQuote.asmx?SDL。
(三)
构造代理库
.NET 平台上的应用程序可以使用代理库来调用Web服务上的方法,这样使用Web服务就非常容易。生成代理库的第一步是从SDL中生成一个Web服务的代理类。.NET SDK提供了一个叫做WebServiceUtil.exe的工具,它能够帮助我们生成一个代理类。要生成Web服务的代理类,首先进入命令行环境,然后转到将要开发客户应用程序的那个目录,接着输入以下命令:
WebServiceUtil /c:proxy /pa:http://localhost/stockquote/StockQuote.asmx?SDL /n:Quotes
以上命令执行后,会在运行这个命令的目录中生成一个 C# 源代码文件,叫做 DailyStock.cs (要记住Web服务类的名称也是 DailyStock,)。现在来看这些自变量的含义:
l /c:proxy:告诉WebServiceUtil生成一个代理类
l /pa:http://localhost/stockquote/StockQuote.asmx?SDL:向SDL提供Web服务的路径。如果已经将Web服务的SDL 保存到了硬盘上,我们甚至可以提供SDL文件的本地路径。
l /n:Quotes:告诉WebServiceUtil将代理类放在 Quotes名称空间。这样做的目的是为了更容易地管理和使用代理库。
代理库准备好之后,我们使用C# 编译器从上面步骤中刚创建的代理类中生成一个代理库:
csc /target:library /r:System.dll;System.Web.Services.dll;System.Net.dll;
System.IO.dll;System.Xml.Serialization.dll DailyStock.cs
生成代理库的时候,我们使用了 /target:library开关以表示想要输出一个库文件。我们还引用一些曾经在Web服务中使用过的集合。编译器将在运行命令所在目录中生成一个名为DailyStock.dll 的dll 库。
(四)
创建 Web应用程序用户
下面创建一个Web应用程序StockConsumer.aspx,它作为这个StockQuote(股票报价) Web服务的第一个用户。
<%@ Page language="C#" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="Quotes" %>
以上引入必要的名称空间。要记住也要引入 Quotes名称空间,它是代理库的名称空间。
<html>
<head>
<script runat=server>
// Wire up the onClick event for a button
protected void button1_Click(object sender, EventArgs e)
{
file://Create a object of the class DailyStock (the proxy class)
DailyStock ds = new DailyStock();
// Call the GetQuote method of the proxy class DailyStock and
// pass the symbol string from the textbox
string res = ds.GetQuote(symbol.Text);
// The returned string has values which are separated
// by commas.
// Hence we split the returned string into parts
char[] splitter = {','} ;
string[] temp = res.Split(splitter);
// Check if the string array returned has more than one
// elements since if there are less than one elements
// then an exception must have been returned
if(temp.Length >1)
{
// The WebService returns a lot of information about the
// stock. We only show the relevant portions
// Set the label to current Index
curindex.Text = "Current Index :"+temp[1];
// Set the label to current Date Time
curdate.Text ="Last Update on"+temp[2]+" at "+temp[3];
}
else
{
error.Text = "Error :"+res ; file://set the error label
}
}
</script>
以上ASP.NET页面代码中,首先对Web 服务DailyStock进行例示。由于已经生成了代理库,因此Web服务的调用方法与其它任何库的调用方法都相同。调用DailyStock 类的GetQuote()方法后,将返回一个字符串,其中包含了以逗号分隔的列表符号的完整信息。
我们将限制显示给客户的信息为只显示当前指数和所报告指数的日期/时间。为了将字符串分成若干不同的部分,这里使用了字符串类的Split方法,在出现逗号的地方将字符串分割成部分。并且,将分割开的字符串组成数组之后,再使用相关的数值为Web页面设置不同的标签。
代码的其余部分
<body>
<center>
<h2>.NET101 Stock Quote Consumer </h2>
<form runat=server >
<table border=1 celspacing=1>
<tr><th>Please enter the symbol below</th></tr>
<tr><td>
<asp:textbox id=symbol runat=server />
<asp:button id=button1 text="Get Quote" onClick="button1_Click" runat=server />
</td></tr>
<tr><td><asp:label id=curindex runat=server /></td></tr>
<tr><td><asp:label id=curdate runat=server /></td></tr>
<tr><td><asp:label id=error runat=server /></td></tr>
</table>
</form>
</center>
</body>
</html>
(五)
小结
下面总结一下配置Web应用程序的步骤:
l 创建一个叫做StockConsumer的虚拟目录
l 将 StockConsumer.aspx 文件复制到这个虚拟目录下
l 在wwwroot 文件夹中创建一个 bin 虚拟目录
l 设置bin目录以执行代码的权限
l 将代理 dll 文件DailyStock.dll复制到这个目录下,ASP.NET 运行时间引擎会自动从Bin目录中选择对外部库的引用。这里的例子中,这个外部库是DailyStock.dll。
现在调用文件 http://localhost/StockConsumer/StockConsumer.aspx,然后键入股票的符号,点击 "Get Quote"(获取报价)按钮,就能看到正在使用的Web服务了。注意:Web服务应该能够使用yahoo服务器,否则它就会返回一个错误信息。
B. 在编程中如何能能获得股票的数据 例如当前价,最高价,最低价,当前成交量等等
要看使和什么数据了,每个软件数据的存储格式不同,有的还是加密存储的(如指南针)。
以常见的钱龙数据来说吧(钱龙是最简单的存储格式)当前价,最高价,最低价,当前成交量等等都是以随机文件存储的长整型数据。下面是读取钱龙数据的C源码,你可以参考一下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct { ------->定义数据类型
unsigned long date; ------->定义日期为长整
unsigned long open; ------->定义开盘为..
unsigned long high; ------->定义最高为..
unsigned long low; ------->定义最低为..
unsigned long close; ------->定义收盘为..
unsigned long travl; ------->定义成交量..
unsigned long traca; ------->定义成交额..
char unuse[12];
} RECORD;
RECORD reco;
int readrec(FILE *);
void main()
{
FILE *fp;
if((fp = fopen("000001.day","rb")) == NULL) // 打开深发展日线
{ printf("Error: Can't open 000001.DAY !\n");
exit(0); }
readrec(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}
int readrec(FILE *fp)
{
float fn;
while (! feof(fp)) {
fread(&reco,sizeof(RECORD),1,fp);
printf("%10lu ",reco.date);
fn=float(reco.open)/1000;
printf("%8.2f ",fn);
fn=float(reco.high)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.low)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.close)/1000; .
printf("%8.2f ",fn); .
printf("%8lu ",reco.travl); .
printf("%8lu\n",reco.traca);
}
printf("\n");
return 0;
C. 如何将通达信软件所有股票的日K线数据导出 (最好是导在Excel)
随便打开一个股票的K线图,34,【数据导出】,【高级导出】,【添加股票】,把沪A、深A的股票全部选上。
选择好路径。
选择【开始导出】即可!
这是最大可能的完成你需要的了,如果还不行,那就没有别的办法了~~
网络知道股票内容管理团队队员为您答复。回答完毕!
D. 东方财富网的数据能导出来吗
能导出,导出的方法有下列2种:
1、打开所需导出数据的页面,例如:龙虎榜单,选中需要导出的数据,复制,到excel或文本文件中粘贴。
2、打开excel,新建一个空白文档,点击菜单栏→数据→导入外部数据→新建Web查询→在地址中粘贴需要导入的链接(还是以龙虎榜单为例)→点击转到→单击要选择表格旁边的向右方向箭头,但后单击“导入”→选择导入数据的位置→确定。
在东方财富金融终端内所有以列表形式所展现的数据,例如:沪深股票列表;自选股列表;板块列表等等。您都可以通过鼠标右键选择“数据导出”进行导出。在导出时您也可以对导出的数据进行筛选。
目前东方财富网支持使用财富手机版软件、东方财富PC版软件进行交易,需要在东方财富证券官方网站下载PC版或手机版的行情交易软件即可完成直接购买或卖出股票。
手机版的操作方式是:
东方财富App:版本4.24.3
在用手机上打开财富手机版软件,点击首页“委托交易”登陆之后,选择东方财富证券,输入资金账号和交易密码登陆,就可以进行交易。
电脑版的操作方式是:打开东方财富终端,点击页面最上方的交易按钮,设置委托,然后下载东方财富证券证券即可进行交易;或直接在股票名字、招商银行、中国银行、农业银行、华夏银行、光大银行、浦发银行、工商银行、建设银行、平安银行、交通银行、宁波银行、广发银行在内的17家银行。
拓展资料:
东方财富的股票交易手续费为交易额的万分之二点五。股票交易手续费是进行股票交易时所支付的手续费。委托买卖的手续费分“阶段式”和“跟价式”。1阶段式:根据股票价格和交易股数收取手续费。2跟价式:根据股票的交易金额收取手续费,目前世界上多采用跟价式
E. 怎样导出股票历史价格数据
这里笔者以同花顺软件为例:
1. 首先点按电脑界面上的同花顺图标
2. 输入用户名和密码之后点按登录
3. 进入同花顺界面后点按界面左侧的自选股按钮 然后点按自选股中收藏的某个股票
4. 右键点按自选股中收藏的某支股票 在弹出的菜单中点按数据导出 然后在二级菜单中点按导出所有数据
5. 在浏览按钮下选择导出文件位置 这里选择了桌面 然后选择导出的类型为excel 然后点按下一步
6. 勾选所有需要导出的项目 然后点按下一步
7. 最后点按完成
8. 此时在桌面上可以看到导出的文件 文件名字为table 双击进入该文件
9. 打开excel文件之后选中行标2行标3 然后点按右键 然后在弹出的菜单中点按复制
10. 点按复制之后 着两行周围出现闪烁的虚线
11. 为这两行新添加的数据添加日期
12. 点按数据下的排序按钮 以名称为第一关键字 日期为第二关键字进行排序
同花顺,是一款功能非常强大的免费网上股票证券交易分析软件,投资者炒股的必备工具。
同花顺股票软件是一个提供行情显示、行情分析和行情交易的股票软件,它分为免费PC产品,付费PC产品,电脑平板产品,手机产品等适用性强的多个版本。同花顺股票软件注重各大证券机构、广大股民的需求和使用习惯,同花顺股票软件全新版免费免注册。全新版同花顺股票软件新增强大功能:自主研发的问财选股及自定义选股,问财选股是新一代自然语言选股,解析自然语言选出股票。新增通达信模式。
同花顺面向客户可为银行、证券、保险、基金、私募、高校、政府等行业提供智能化解决方案。正在拓展至生活、医疗、教育等更多领域。
2020年1月9日,胡润研究院发布《2019胡润中国500强民营企业》,同花顺以市值490亿元位列第135位。
F. 如何一次过导出全部股票的成交明细
导出方法:在股票的分时图状态按F1是当日成交明细,然后选择系统-数据导出即可。
股票成交原则:
价格优先原则
价格优先原则是指较高买进申报优先满足于较低买进申报,较低卖出申报优先满足于较高卖出申报;同价位申报,先申报者优先满足。计算机终端申报竞价和板牌竞价时,除上述的的优先原则外,市价买卖优先满足于限价买卖。
成交时间优先顺序原则
这一原则是指:在口头唱报竞价,按中介经纪人听到的顺序排列;在计算机终端申报竞价时,按计算机主机接受的时间顺序排列;在板牌竞价时,按中介经纪人看到的顺序排列。在无法区分先后时,由中介经纪人组织抽签决定。
成交的决定原则
这一原则是指:在口头唱报竞价时,最高买进申报与最低卖出申报的价位相同,即为成交。在计算机终端申报竞价时,除前项规定外,如买(卖)方的申报价格高(低)于卖(买)方的申报价格,采用双方申报价格的平均中间价位;如买卖双方只有市价申报而无限价申报,采用当日最近一次成交价或当时显示价格的价位。
G. 怎样自动导出通达信股票数据
方法:打开一个股票的K线图,34,【数据导出】,【高级导出】,【添加股票】,把沪A、深A的股票全部选上,选择好路径,选择【开始导出】即可。
股票是股份公司发行的所有权凭证,是股份公司为筹集资金而发行给各个股东作为持股凭证并借以取得股息和红利的一种有价证券。每股股票都代表股东对企业拥有一个基本单位的所有权。每支股票背后都有一家上市公司。同时,每家上市公司都会发行股票的。
同一类别的每一份股票所代表的公司所有权是相等的。每个股东所拥有的公司所有权份额的大小,取决于其持有的股票数量占公司总股本的比重。
股票是股份公司资本的构成部分,可以转让、买卖,是资本市场的主要长期信用工具,但不能要求公司返还其出资。
H. 大智慧如何导出全部股票收盘价数据
两种方法:
方法一:
老的大智慧在K线图时可点右键,按提示可直接下载形成excel表的数据.但新的大智慧要这样操作:
选择菜单〖文件〗→〖复制到剪切板〗,即可将数据拷贝到剪切板中,此时系统将弹出对话框提示“数据已拷贝到剪切板”,点击“确定”进行确认。然后切换到EXCEL,并选择粘贴功能将剪切板中的数据粘贴到电子表格中。
方法二:
2.在大智慧主页上端的工具栏中的“工具”选项里,选用“数据下载”即可。
I. 怎么将股票中的数据导出到excel
1、首先在电脑桌面上打开股票软件。
J. 用什么软件可以导出股票的数据,如成交量,换手率,价格等。我用了很多软件同花顺,通信达,大智慧都导不
通信达可以做到,它可以导出开盘、最高、最低、收盘、成交量等数据。通过系统 - 数据导出,选择格式为文本(.TXT)文档或Excel(.XLS)文件即可。
我们经常挂在嘴边的股票成交量,也就是买股票和卖出股票数量的总和,换句话说,就是在这一天成功发生交易的股票总手数(1手=100股)
笼统地说,股票成交量能体现出个股或者大盘的活跃程度,有助于我们从众多股票中选中最好的一个、识别买入和卖出的时机。
看股票成交量的具体办法都有哪些?有什么分析技巧?又有哪些地方需要我们注意呢?我来为大家做详细的说明,大家可以接着往下看。
在这之前,先给大家发福利,我整理各行业的龙头股信息,涉及医疗、新能源、白酒、军工等热门行业,随时可能被删:吐血整理!各大行业龙头股票一览表,建议收藏!
一、股票成交量怎么看?有什么分析技巧?
想知道股票成交量的话可以看交易软件,通过看开盘时的买入卖出量来确定成交量。或者看红绿柱,这些都可以直接表明出股票的成交量:红柱体代表买入﹥卖出;绿柱体代表买入﹤卖出。
要想股票炒得好,实用工具少不了,吐血整理的【股票研究9大神器】。点击领取:超实用炒股的九大神器,建议收藏
二、股票成交量大就一定好吗?
股票的成交量并不能证明这只股票就是好的,只能关于这支股票的价格,说买卖双方有着非常大的分歧。
像一些热门股票,买的人认为价格会上涨,卖的人认为价格会下跌,双方分歧很大,那成交量就会很高,反之成交量就很低。
成交量通常和股价趋势结合在一起看会更好:上涨趋势中,成交量迅速放大,价格随之不断上升,买卖双方的分歧越来越剧烈,越来越多的持有者在卖出股票,此时追涨需要有所戒备了;成交量会随趋势下跌而减少,买卖双方意见相同,未来就很有可能会继续下跌。
除此之外,股票成交量还有其他几种情况,出于文章的限制,我就不详细说明了,大家可以点击下方链接,输入你中意的股票,就能免费获得个股成交量分析报告:【免费】测一测你的股票当前估值位置?
应答时间:2021-09-08,最新业务变化以文中链接内展示的数据为准,请点击查看