如何实时写股票数据进数据库

如何实时写股票数据进数据库,第1张

既然你自己设计了一个数据库,现在是每天收盘后,从同花顺软件里导出EXCEL,再导入数据库,来进行分析。那么你想及时查看开盘数据,那就用同样的技术,从同花顺软件里导出EXCEL,再导入数据库进行分析好了,向你学习!

以华中智能股票软件为例:(以Think pad X13 锐龙版笔记本电脑,Windows 10 *** 作为例)首先切换到要下载数据的股票K线形态,按“F1”进入“日线某某股票历史成交”,点击鼠标右键->数据导出->导出所有数据->在“请选择导出的类型”中选择excel或txt

补充资料:

如何获取所有股票历史数据

如果要对股市进行分析,首先就要获取所有股票的历史数据,只有通过股票的历史数据,我们才能分析出股市的规律。

(以Think pad X13 锐龙版笔记本电脑,Windows 10 *** 作为例)

一、工具/原料

1、EXCEL2007或者以上版本,不能使用WPS

2、电脑1g内存1核处理器及以上配置

3、拥有较强逻辑分析能力以及少量智慧及以上的大脑一颗

方法/步骤:

第一步,获取股票代码,复制其中一部分到第一个工作表A4到A127,然后通过程序把每一个代码写入到不同的工作表A2位置,并对该工作表以该股票代码命名。程序如下:

Sub 工作表命名()

For i = 4 To 127

Sheets(i).Range("a2") = "'" &Sheets(1).Range("a" &i)

Next i

For i = 4 To Sheets.Count

Sheets(i).Name = Sheets(i).Range("a2").Value

Next

End Sub

第二步,获取股票历史数据。代码如下:

Private Function GetSource(sURL As String) As String

Dim oXHTTP As Object

Set oXHTTP = CreateObject("MSXML2.XMLHTTP")

oXHTTP.Open "GET", sURL, False

oXHTTP.Send

GetSource = oXHTTP.responsetext

Set oXHTTP = Nothing

End Function

Sub 历史数据()

Dim objXML As Object

Dim txtContent As String

Dim i As Integer

Dim strCode As String

Dim gp As String

Dim kaishihang

Dim arr, arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9, arr10, arr11

On Error Resume Next

EndRow = Range("a65536").End(xlUp).Row

startRow = 4

If startRow Range(Cells(startRow, 1), Cells(EndRow, 11)).Value = ""

Else

Exit Sub

End If

Set objXML = CreateObject("Microsoft.XMLHTTP")

gp = [A2]

For h = 1 To 4

For m = 1 To 4

kaishihang = [A65535].End(xlUp).Row

nian = Replace(Str(Year(Now) + 1 - h), " ", "")

jidu = Replace(Str(4 + 1 - m), " ", "")

With objXML

.Open "GET", "http://quotes.money.163.com/trade/lsjyj_" + gp + ".html?year=" + nian + "&season=" + jidu + "", False

.Send

If objXML.Status = 200 Then

txtContent = .responsetext

arr = Split(txtContent, "'>")

For i = 1 To UBound(arr)

arr1 = Split(arr(i), " Cells(i + kaishihang, 1) = Right(Left(arr1(0), 10), 10)

arr2 = Split(arr1(1), Chr(60))

Cells(i + kaishihang, 2) = Mid(arr2(0), InStr(arr2(0), ">") + 1)

arr3 = Split(arr1(2), Chr(60))

Cells(i + kaishihang, 3) = Mid(arr3(0), InStr(arr3(0), ">") + 1)

arr4 = Split(arr1(3), Chr(60))

Cells(i + kaishihang, 4) = Mid(arr4(0), InStr(arr4(0), ">") + 1)

arr5 = Split(arr1(4), Chr(60))

Cells(i + kaishihang, 5) = Mid(arr5(0), InStr(arr5(0), ">") + 1)

arr6 = Split(arr1(5), Chr(60))

Cells(i + kaishihang, 6) = Mid(arr6(0), InStr(arr6(0), ">") + 1)

arr7 = Split(arr1(6), Chr(60))

Cells(i + kaishihang, 7) = Mid(arr7(0), InStr(arr7(0), ">") + 1)

arr8 = Split(arr1(7), Chr(60))

Cells(i + kaishihang, 8) = Mid(arr8(0), InStr(arr8(0), ">") + 1)

arr9 = Split(arr1(8), Chr(60))

Cells(i + kaishihang, 9) = Mid(arr9(0), InStr(arr9(0), ">") + 1)

arr10 = Split(arr1(9), Chr(60))

Cells(i + kaishihang, 10) = Mid(arr10(0), InStr(arr10(0), ">") + 1)

arr11 = Split(arr1(10), Chr(60))

Cells(i + kaishihang, 11) = Mid(arr11(0), InStr(arr11(0), ">") + 1)

Next i

End If

End With

Next m

Next h

Set objXML = Nothing

End Sub

第三步,获取上证历史数据,并获取所有股票的历史数据。程序如下:

Sub 所有股票历史数据获取()

Application.ScreenUpdating = False

Dim s As String, gp As String, nian As String, jidu As String, s1 As String

Dim arr, arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9

Dim i, h As Long

Dim kaishihang

Dim LastRow As Long, r As Long

On Error Resume Next

EndRow = Sheet2.Range("a65536").End(xlUp).Row

startRow = 4

If startRow Sheet2.Range(Sheet2.Cells(startRow, 1), Sheet2.Cells(EndRow, 9)).Value = ""

Else

Exit Sub

End If

For h = 1 To 5

For m = 1 To 4

kaishihang = Sheet2.[A65535].End(xlUp).Row

nian = Replace(Str(Year(Now) + 1 - h), " ", "")

jidu = Replace(Str(4 + 1 - m), " ", "")

s1 = "http://quotes.money.163.com/trade/lsjysj_zhishu_000001.html?year=" + nian + "&season=" + jidu + ""

s = GetSource(s1)

arr = Split(s, "'> ")

For i = 1 To UBound(arr)

arr1 = Split(arr(i), " Sheet2.Cells(i + kaishihang, 1) = Right(Left(arr1(0), 4), 4) &"-" &Right(Left(arr1(0), 6), 2) &"-" &Right(Left(arr1(0), 10), 2)

arr2 = Split(arr1(1), Chr(60))

Sheet2.Cells(i + kaishihang, 2) = Mid(arr2(0), InStr(arr2(0), ">") + 1)

arr3 = Split(arr1(2), Chr(60))

Sheet2.Cells(i + kaishihang, 3) = Mid(arr3(0), InStr(arr3(0), ">") + 1)

arr4 = Split(arr1(3), Chr(60))

Sheet2.Cells(i + kaishihang, 4) = Mid(arr4(0), InStr(arr4(0), ">") + 1)

arr5 = Split(arr1(4), Chr(60))

Sheet2.Cells(i + kaishihang, 5) = Mid(arr5(0), InStr(arr5(0), ">") + 1)

arr6 = Split(arr1(5), Chr(60))

Sheet2.Cells(i + kaishihang, 6) = Mid(arr6(0), InStr(arr6(0), ">") + 1)

arr7 = Split(arr1(6), Chr(60))

Sheet2.Cells(i + kaishihang, 7) = Mid(arr7(0), InStr(arr7(0), ">") + 1)

arr8 = Split(arr1(7), Chr(60))

Sheet2.Cells(i + kaishihang, 8) = Mid(arr8(0), InStr(arr8(0), ">") + 1)

arr9 = Split(arr1(8), Chr(60))

Sheet2.Cells(i + kaishihang, 9) = Mid(arr9(0), InStr(arr9(0), ">") + 1)

Next i

Next m

Next h

Application.ScreenUpdating = True

n = Worksheets.Count

For i = 4 To n

Worksheets(i).Activate

历史数据

Next

End Sub

第四步,保存工作簿,并对该工作簿命名为1,然后复制该工作簿27份,把所有股票代码写入每一个工作簿第一个工作表的A3到A127列。然后根据第一步对工作簿内的工作表命名,并在每一个工作表A2单元格内写入股票代码。

第五步,把这些工作簿存放到炒股文件夹下的数据库文件下。然后在炒股文件夹下新建一个工作簿,命名为“一键更新表格”,写入如下代码:

Sub 所有股票历史数据更新()

Dim wb As Workbook

For i = 1 To 27

Set wb = Workbooks.Open(ThisWorkbook.Path &"\数据库\" &i &"".xlsb"")

Application.Run ""'"" &wb.Path &""\"" &i &"".xlsb'!所有股票历史数据获取""

wb.Save

wb.Close

Next i

End sub

当启动这一段代码以后,程序会自动一个一个的打开对应的工作簿然后获取里面所有股票的历史数据,存放在对应的工作表当中。

第六步,对相应的程序添加按钮,这样,我们在启动对应程序时,只需要点一下对应的按钮就可以实现了。这样,我们通过多个工作簿就实现了获取所有股票历史数据的方法。而后面,我们只需要通过获取对应股票每一天的历史数据,我们就能够在任意一天很快速的能够拥有所有股票的历史数据了。

注意事项

1、在后续需要对这些数据进行分析,里面会加入很多计算,所以启动所有历史数据更新时,我们应该要关闭自动更新。

2、因为历史数据很大,所以这里只获取四年的数据,想要获取更多数据,可以更改程序里面 “For h = 1 To 5”的那个5即可。

3、历史数据的获取需要较长的时间,要提前做好准备。

4、如果你想要弄清楚用EXCEL建立炒股系统的整套方法,请看后续内容。" 回答于 2021-11-11 抢首赞 已踩 0 下一条回答 下一条

长安十二时辰你看懂了吗

入乡随俗,一起探访唐朝衣食住行大小事

16个问题231,534人浏览

— 为你推荐更多精彩内容 — 正在加载 加载失败 点击重新加载

微信

微博

QQ

QQ空间

答案纠错

举报

取消 赞赏答主 5 10 50 100 200

已赞赏0财富值

合计:0 财富值

登录后赞赏 选择举报类型 侵犯版权 色情低俗 涉嫌违法犯罪 时政信息不实 垃圾广告 低质灌水 工作人员会在48小时内处理,处理结果请关注系统通知,感谢您对百度知道的支持。 确定 void function(a,b,c,d,e,f){function g(b){a.attachEvent?a.attachEvent("onload",b,!1):a.addEventListener&&a.addEventListener("load",b)}function h(a,c,d){d=d||15var e=new Datee.setTime((new Date).getTime()+1e3*d),b.cookie=a+"="+escape(c)+"path=/expires="+e.toGMTString()}function i(a){var c=b.cookie.match(new RegExp("(^| )"+a+"=([^]*)(|$)"))return null!=c?unescape(c[2]):null}function j(){var a=i("PMS_JT")if(a){h("PMS_JT","",-1)try{a=a.match(/{["']s["']:(\d+),["']r["']:["']([\s\S]+)["']}/),a=a&&a[1]&&a[2]?{s:parseInt(a[1]),r:a[2]}:{}}catch(c){a={}}a.r&&b.referrer.replace(/#.*/,"")!=a.r||alog("speed.set","wt",a.s)}}if(a.alogObjectConfig){var k=a.alogObjectConfig.sample,l=a.alogObjectConfig.randd="https:"===a.location.protocol?"https://fex.bdstatic.com"+d:"http://fex.bdstatic.com"+d,k&&l&&l>k||(g(function(){alog("speed.set","lt",+new Date),e=b.createElement(c),e.async=!0,e.src=d+"?v="+~(new Date/864e5)+~(new Date/864e5),f=b.getElementsByTagName(c)[0],f.parentNode.insertBefore(e,f)}),j())}}(window,document,"script","/hunter/alog/dp.mobile.min.js") window.tt = 1679775813

以下 *** 作环境均为windows10系统。

打开Wind后,点击”股票“”自选股监控“,然后会打开”我的自选股“窗口,此时点击右上角”设置自选“,在打开的”板块管理“窗口中,继续点击右上角”新建“”新建板块“即可创建你的自选股板块,并为你的自选股板块命名。命名完成之后,在上方工具栏中选择导入自选股的方式,有如下几种:”手工选择“,”粘贴导入“,”文件导入“。当要导入很多个股票时,”手工选择“过于麻烦,建议选择”文件导入“,将保存在txt文件中的股票代码导入即可。

自选股就是自己选择的股票,在使用炒股软件时也可以将自选股意为把自己选择好的股票添加到自己选定的自选股股行中。自选股股行可以很方便的同时看多个股票,想要看这些股票的走势时可以单击鼠标右键回到软件页面即可。每个股票交易软件中都有“自选股”这个选项,只要输入你所选择的股票的代码,相应股票的各种数据就会被软件自动生成。归入自选股之后就不用在分散寻找这支股票的不同信息。

一,选股法则之30%

这里的30%指的是投资机构持有该支流通股的总和不能低于股票市场现有流通股数量的30%。在股票市场中,想要做好中长线的投资,最重要的先决条件是对上市企业进行调研,但这种调研对于散户来说是很难。所以当有一支股票被很多家机构购买时,就相当于这些机构为我们免费提供了买这家公司股票的可行性报告。

二,选股法则之40%

这里的40%指的是该上市企业最近3年的平均毛利率不能低于40%。如果该企业每年的毛利率都很高,就说明该企业在整个行业里都有具备很明显的竞争优势。这家企业可能拥有牢靠的品牌地位,核心科技以及强大的产品定价权,也可能是出于市场垄断地位。比较高的毛利率有利于推动企业利益的持续增长。此外需要注意商业类上市公司的业务具有特殊性,所以并不适合这条法则。

摘要

打开Wind后,点击”股票“”自选股监控“,然后会打开”我的自选股“窗口,此时点击右上角”设置自选“,在打开的”板块管理“窗口中,继续点击右上角”新建“”新建板块“即可创建你的自选股板块,并为你的自选股板块命名。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9415279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存