导航:首页 > 编程语言 > python横向统计股票kdj

python横向统计股票kdj

发布时间:2023-01-13 09:14:10

A. 如何用python计算kdj指标

import numpy as np
def KDJ(date,N=9,M1=3,M2=3):
datelen=len(date)
array=np.array(date)
kdjarr=[]
for i in range(datelen):
if i-N<0:
b=0
else:
b=i-N+1
rsvarr=array[b:i+1,0:5]
rsv=(float(rsvarr[-1,-1])-float(min(rsvarr[:,3])))/(float(max(rsvarr[:,2]))-float(min(rsvarr[:,3])))*100
if i==0:
k=rsv
d=rsv
else:
k=1/float(M1)*rsv+(float(M1)-1)/M1*float(kdjarr[-1][2])
d=1/float(M2)*k+(float(M2)-1)/M2*float(kdjarr[-1][3])
j=3*k-2*d
kdjarr.append(list((rsvarr[-1,0],rsv,k,d,j)))
return kdjarr

B. 如何用python代码判断一段范围内股票最高点

Copyright © 1999-2020, CSDN.NET, All Rights Reserved




登录

python+聚宽 统计A股市场个股在某时间段的最高价、最低价及其时间 原创
2019-10-12 09:20:50

开拖拉机的大宝

码龄4年

关注
使用工具pycharm + 聚宽数据源,统计A股市场个股在某时间段的最高价、最低价及其时间,并打印excel表格输出

from jqdatasdk import *
import pandas as pd
import logging
import sys
logger = logging.getLogger("logger")
logger.setLevel(logging.INFO)

# 聚宽数据账户名和密码设置
auth('username','password')

#获取A股列表,包括代号,名称,上市退市时间等。
security = get_all_securities(types=[], date=None)
pd2 = get_all_securities(['stock'])


# 获取股票代号
stocks = list(get_all_securities(['stock']).index)

# 获取股票名称
stocknames = pd2['display_name']

start_date = 񟭏-01-01'
end_date = 񟭒-12-31'
def get_stocks_high_low(start_date,end_date):
# 新建表,表头列
# 为:"idx","stockcode","stockname","maxvalue","maxtime","lowvalue","lowtime"
result = pd.DataFrame(columns=["idx", "stockcode", "stockname", "maxvalue", "maxtime", "lowvalue", "lowtime"])
for i in range(0,stocks.__len__()-1):
pd01 = get_price(stocks[i], start_date, end_date, frequency='daily',
fields=None, skip_paused=False,fq='pre', count=None)
result=result.append(pd.DataFrame({'idx':[i],'stockcode':[stocks[i]],'stockname':
[stocknames[i]],'maxvalue':[pd01['high'].max()],'maxtime':
[pd01['high'].idxmax()],'lowvalue': [pd01['low'].min()], 'lowtime':
[pd01['low'].idxmin()]}),ignore_index=True)

result.to_csv("stock_max_min.csv",encoding = 'utf-8', index = True)
logger.warning("执行完毕!

C. 如何用python计算某支股票持有90天的收益率

首先你要先获得这支股票90天的数据,可以存在一个arry中。
然后计算收益率 r = (arry[89]-arry[0])/arry[0],如果要计算任意连续90天的话只要循环就可以了。
许多人更喜欢去做短线,因为短线刺激,无法承受长线持股待涨的煎熬,可是假如不会做短线,则可能会导致亏得更快。做T的秘籍大家一定很想知道,今天就给大家讲讲。
我准备了好处给大家,机构精选的牛股大盘点!希望大家不要错过--速领!今日机构牛股名单新鲜出炉!
一、股票做T是什么意思
现在市场上,A股的交易市场模式是T+1,意思就是今天买的股票,只有明天才能卖出。
而股票做T,当天买入的股票在当天卖出,这就是股票进行T+0的交易操作,投资人在可交易的一天通过股票的涨幅和跌停有了股票差价,在股票大幅下跌时赶紧买入,涨得差不多之后再将买入的部分卖出,就是用这种方法赚钱的。
假如说,在昨天我手里还有1000股的xx股票,市价10元/股。今天一大早发现该股居然跌到了9.5元/股,然后趁机买入了1000股。结果到了下午时,这只股票的价格就突然间大幅上涨到一股10.5元,我就急忙地以10.5/股的价格售出1000股,然后获取(10.5-9.5)×1000=1000元的差价,这就是做T。
但是,不是每种股票做T都合适!正常来说,那些日内振幅空间较大的股票,它们是适合去做T的,比如说,每日能有5%的振幅空间。想知道某只股票适不适合的,点开这里去看一下吧,专业的人员会为你估计挑选出最适合你的T股票!【免费】测一测你的股票到底好不好?

二、股票做T怎么操作
怎么才能够把股票做到T?正常情况下分为两种方式,分别为正T和倒T。
正T即先买后卖,投资手里,手里面赚有这款股票,在当天股票开盘的时候下跌到了最低点时,投资者买入1000股,等到股票变高的时候在高点,将这1000股彻底卖出,持有的总股票数还是跟以前一样,T+0的效果这样就能够达到了,又能够享有中间赚取的差价。
而倒T即先卖后买。投资者通过严密计算得出,股票存在下降风险,因此在高位点先卖出手中的一部分股票,接着等股价回落后再去买进,总量仍旧有办法保持不变,然而,收益是会产生的。
比方投资者,他占有该股2000股,而10元/股是当天早上的市场价,觉得持有的股票在短时间内就会有所调整,,于是卖出手中的1500股,等股票跌到一股只需要9.5元时,这只股票差不多就已经能让他们感到满意了,再买入1500股,这就赚取了(10-9.5)×1500=750元的差价。
这时有人就问了,那要如何知道买入的时候正好是低点,卖出的时候正好是高点?
其实有一款买卖点捕捉神器,它能够判断股票的变化趋势,绝对能让你每次都抓住重点,点开链接就能立刻领取到了:【智能AI助攻】一键获取买卖机会

应答时间:2021-09-23,最新业务变化以文中链接内展示的数据为准,请点击查看

D. Python量化教程:不得不学的K线图“代码复制可用”

不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典、很重要的工具。在K线图中,它会绘制每天的最高价、最低价、开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助。

一般来说,我们会从各大券商平台获取K线图,但是这种情况下获得的K线图往往不能灵活调整,也不能适应复杂多变的生产需求。因此我们有必要学习一下如何使用Python绘制K线图。

需要说明的是,这里mpl_finance是原来的matplotlib.finance,但是现在独立出来了(而且好像没什么人维护更新了),我们将会使用它提供的方法来绘制K线图;tushare是用来在线获取股票数据的库;matplotlib.ticker中有个FuncFormatter()方法可以帮助我们调整坐标轴;matplotlib.pylab.date2num可以帮助我们将日期数据进行必要的转化。

我们以上证综指18年9月份以来的行情为例。

我们先使用mpl_finance绘制一下,看看是否一切正常。

可以看到,所有的节假日包括周末,在这里都会显示为空白,这对于我们图形的连续性非常不友好,因此我们要解决掉他们。

可以看到,空白问题完美解决,这里我们解释一下。由于matplotlib会将日期数据理解为 连续数据 ,而连续数据之间的间距是有意义的,所以非交易日即使没有数据,在坐标轴上还是会体现出来。连续多少个非交易日,在坐标轴上就对应了多少个小格子,但这些小格子上方并没有相应的蜡烛图。

明白了它的原理,我们就可以对症下药了。我们可以给横坐标(日期)传入连续的、固定间距的数据,先保证K线图的绘制是连续的;然后生成一个保存有正确日期数据的列表,接下来,我们根据坐标轴上的数据去取对应的正确的日期,并替换为坐标轴上的标签即可。

上边format_date函数就是这个作用。由于前边我们给dates列生成了从0开始的序列连续数据,因此我们可以直接把它当作索引,从真正的日期列表里去取对应的数据。在这里我们要使用matplotlib.ticker.FuncFormattter()方法,它允许我们指定一个格式化坐标轴标签的函数,在这个函数里,我们需要接受坐标轴的值以及位置,并返回自定义的标签。

你学会了吗?

当然,一个完整的K线图到这里并没有结束,后边我们会考虑加入均线、成交量等元素,感兴趣的同学欢迎关注哦!

E. 怎样用python处理股票

用Python处理股票需要获取股票数据,以国内股票数据为例,可以安装Python的第三方库:tushare;一个国内股票数据获取包。可以在网络中搜索“Python tushare”来查询相关资料,或者在tushare的官网上查询说明文档。

F. 如何使用python做统计分析

Shape Parameters
形态参数
While a general continuous random variable can be shifted and scaled
with the loc and scale parameters, some distributions require additional
shape parameters. For instance, the gamma distribution, with density
γ(x,a)=λ(λx)a−1Γ(a)e−λx,
requires the shape parameter a. Observe that setting λ can be obtained by setting the scale keyword to 1/λ.
虽然一个一般的连续随机变量可以被位移和伸缩通过loc和scale参数,但一些分布还需要额外的形态参数。作为例子,看到这个伽马分布,这是它的密度函数
γ(x,a)=λ(λx)a−1Γ(a)e−λx,
要求一个形态参数a。注意到λ的设置可以通过设置scale关键字为1/λ进行。
Let’s check the number and name of the shape parameters of the gamma
distribution. (We know from the above that this should be 1.)
让我们检查伽马分布的形态参数的名字的数量。(我们知道从上面知道其应该为1)
>>>
>>> from scipy.stats import gamma
>>> gamma.numargs
1
>>> gamma.shapes
'a'

Now we set the value of the shape variable to 1 to obtain the
exponential distribution, so that we compare easily whether we get the
results we expect.
现在我们设置形态变量的值为1以变成指数分布。所以我们可以容易的比较是否得到了我们所期望的结果。
>>>
>>> gamma(1, scale=2.).stats(moments="mv")
(array(2.0), array(4.0))

Notice that we can also specify shape parameters as keywords:
注意我们也可以以关键字的方式指定形态参数:
>>>
>>> gamma(a=1, scale=2.).stats(moments="mv")
(array(2.0), array(4.0))

Freezing a Distribution
冻结分布
Passing the loc and scale keywords time and again can become quite
bothersome. The concept of freezing a RV is used to solve such problems.
不断地传递loc与scale关键字最终会让人厌烦。而冻结RV的概念被用来解决这个问题。
>>>
>>> rv = gamma(1, scale=2.)

By using rv we no longer have to include the scale or the shape
parameters anymore. Thus, distributions can be used in one of two ways,
either by passing all distribution parameters to each method call (such
as we did earlier) or by freezing the parameters for the instance of the
distribution. Let us check this:
通过使用rv我们不用再更多的包含scale与形态参数在任何情况下。显然,分布可以被多种方式使用,我们可以通过传递所有分布参数给对方法的每次调用(像我们之前做的那样)或者可以对一个分布对象冻结参数。让我们看看是怎么回事:
>>>
>>> rv.mean(), rv.std()
(2.0, 2.0)

This is indeed what we should get.
这正是我们应该得到的。
Broadcasting
广播
The basic methods pdf and so on satisfy the usual numpy broadcasting
rules. For example, we can calculate the critical values for the upper
tail of the t distribution for different probabilites and degrees of
freedom.
像pdf这样的简单方法满足numpy的广播规则。作为例子,我们可以计算t分布的右尾分布的临界值对于不同的概率值以及自由度。
>>>
>>> stats.t.isf([0.1, 0.05, 0.01], [[10], [11]])
array([[ 1.37218364, 1.81246112, 2.76376946],
[ 1.36343032, 1.79588482, 2.71807918]])

Here, the first row are the critical values for 10 degrees of freedom
and the second row for 11 degrees of freedom (d.o.f.). Thus, the
broadcasting rules give the same result of calling isf twice:
这里,第一行是以10自由度的临界值,而第二行是以11为自由度的临界值。所以,广播规则与下面调用了两次isf产生的结果相同。
>>>
>>> stats.t.isf([0.1, 0.05, 0.01], 10)
array([ 1.37218364, 1.81246112, 2.76376946])
>>> stats.t.isf([0.1, 0.05, 0.01], 11)
array([ 1.36343032, 1.79588482, 2.71807918])

If the array with probabilities, i.e, [0.1, 0.05, 0.01] and the array of
degrees of freedom i.e., [10, 11, 12], have the same array shape, then
element wise matching is used. As an example, we can obtain the 10% tail
for 10 d.o.f., the 5% tail for 11 d.o.f. and the 1% tail for 12 d.o.f.
by calling
但是如果概率数组,如[0.1,0.05,0.01]与自由度数组,如[10,11,12]具有相同的数组形态,则元素对应捕捉被作用,我们可以分别得到10%,5%,1%尾的临界值对于10,11,12的自由度。
>>>
>>> stats.t.isf([0.1, 0.05, 0.01], [10, 11, 12])
array([ 1.37218364, 1.79588482, 2.68099799])

Specific Points for Discrete Distributions
离散分布的特殊之处
Discrete distribution have mostly the same basic methods as the
continuous distributions. However pdf is replaced the probability mass
function pmf, no estimation methods, such as fit, are available, and
scale is not a valid keyword parameter. The location parameter, keyword
loc can still be used to shift the distribution.
离散分布的简单方法大多数与连续分布很类似。当然像pdf被更换为密度函数pmf,没有估计方法,像fit是可用的。而scale不是一个合法的关键字参数。Location参数,关键字loc则仍然可以使用用于位移。
The computation of the cdf requires some extra attention. In the case of
continuous distribution the cumulative distribution function is in most
standard cases strictly monotonic increasing in the bounds (a,b) and
has therefore a unique inverse. The cdf of a discrete distribution,
however, is a step function, hence the inverse cdf, i.e., the percent
point function, requires a different definition:
ppf(q) = min{x : cdf(x) >= q, x integer}

Cdf的计算要求一些额外的关注。在连续分布的情况下,累积分布函数在大多数标准情况下是严格递增的,所以有唯一的逆。而cdf在离散分布,无论如何,是阶跃函数,所以cdf的逆,分位点函数,要求一个不同的定义:
ppf(q) = min{x : cdf(x) >= q, x integer}
For further info, see the docs here.
为了更多信息可以看这里。
We can look at the hypergeometric distribution as an example
>>>
>>> from scipy.stats import hypergeom
>>> [M, n, N] = [20, 7, 12]

我们可以看这个超几何分布的例子
>>>
>>> from scipy.stats import hypergeom
>>> [M, n, N] = [20, 7, 12]

If we use the cdf at some integer points and then evaluate the ppf at
those cdf values, we get the initial integers back, for example
如果我们使用在一些整数点使用cdf,它们的cdf值再作用ppf会回到开始的值。
>>>
>>> x = np.arange(4)*2
>>> x
array([0, 2, 4, 6])
>>> prb = hypergeom.cdf(x, M, n, N)
>>> prb
array([ 0.0001031991744066, 0.0521155830753351, 0.6083591331269301,
0.9897832817337386])
>>> hypergeom.ppf(prb, M, n, N)
array([ 0., 2., 4., 6.])

If we use values that are not at the kinks of the cdf step function, we get the next higher integer back:
如果我们使用的值不是cdf的函数值,则我们得到一个更高的值。
>>>
>>> hypergeom.ppf(prb + 1e-8, M, n, N)
array([ 1., 3., 5., 7.])
>>> hypergeom.ppf(prb - 1e-8, M, n, N)
array([ 0., 2., 4., 6.])

G. 自学3年Python的我成了数据分析师,总结成一张思维导图

大家好,我是一名普通毕业生,现就职于某互联网公司。之前很多同学问我“ 为什么自学3年Python,最后却成为了数据分析师 ?”

首先肯定是数据分析师的前景和薪资条件,打动了我

下面是我的学习之路,附带一些必备学习的资料,可以 免费领取 ,相信感兴趣的你看完也可以找到自己的方向。

众所周知:Python是当今最火的编程语言之一,各大招聘网站上都会要求求职者会这门语言,并且它很容易上手,业务面宽泛,像Web网页工程师、网络爬虫工程师、自动化运维、自动化测试、 游戏 开发、数据分析、AI等等。

我们首先明确一个大的方向,知道自己以后要做什么。因为我是统计学专业,所以我会选择从事数据分析行业,那么 用Python做数据分析成了一个最佳选择

要想使用Python做数据分析,首先就应该知道“ 数据分析的流程是怎样的?

我这次特地总结了一张 思维导图 给大家,点击放大看更清楚哦。

(点击查看高清大图)

基于此,我这里将我以前学习过程中用过的电子书(技能类、统计类、业务类),还有相关视频免费分享给大家,省去了你们挑选视频的时间,也希望能够对你们的学习有所帮助。

PS:我总结的资料有点多哦,差不多有4G,大家一定要给你的网络云盘空出位置来哦!


如果遇到一些环境配置,还有一些错误异常等bug,资料就显得不太够用,这时就需要找到老师,给我们特别讲解。

或者是想 快速学习 数据分析领域知识,不妨先找一找 直播课 看看, 了解当下最贴合实际的学习思路,确定自己的方向。


Day1 20:00&量化交易入门:

用Python做股票指标分析和买卖时机选择

场景工具:Python工具分解RSI指标流程处理: 业务场景分析建模和可视化学习成果:使用RSI指标模型做买卖点搜索、交易回溯实战案例:分析A股数据模型,制定投资策略


Day2 20:00&职场晋升必备:

制作酷炫报表,4步带你学习数据可视化

场景工具:用Tableau学习如何管理数据流程处理: 利用业务拆解找到数据指标、进行数据可视化学习成果:高效的对数据驱动型业务作出精准决策实战案例:利用可视化工具构建 旅游 客流量趋势地图


Day3 20:00&量化交易进阶:

0基础用Python搭建量化分析平台

场景工具:利用pandas工具分解KDJ指标构成流程处理: 交易数据爬取,业务场景分析建模和可视化分析结果:用KDJ指标模型对比特币行情买卖点搜索&交易回溯实战项目:掌握根据数据指数和分析工具寻找虚拟货币买卖原理


他们 每周都会定期分享 一些 干货 供大家学习参考,对学习很有帮助。



(深度学习DeepLearning.ai实验室认证)


(微软/甲骨文/Cloudera等公司颁发的数据分析证书)


4步学会数据可视化,办公效率提高三倍

(更多精彩内容 等你解锁)

H. 如何用python获取股票数据

在Python的QSTK中,是通过s_datapath变量,定义相应股票数据所在的文件夹。一般可以通过QSDATA这个环境变量来设置对应的数据文件夹。具体的股票数据来源,例如沪深、港股等市场,你可以使用免费的WDZ程序输出相应日线、5分钟数据到s_datapath变量所指定的文件夹中。然后可使用Python的QSTK中,qstkutil.DataAccess进行数据访问。

I. 怎么用python计算股票

作为一个python新手,在学习中遇到很多问题,要善于运用各种方法。今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅。
第一种:
读取数据并建立函数:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置

t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)

plt.show()
f(t)
第二种:
利用pandas里面的方法:
import pandas as pd

a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets

第三种:
close=a['close']
rets=close/close.shift(1)-1
print rets

总结:python是一种非常好的编程语言,一般而言,我们可以运用构建相关函数来实现自己的思想,但是,众所周知,python中里面的有很多科学计算包,里面有很多方法可以快速解决计算的需要,如上面提到的pandas中的pct_change()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。

阅读全文

与python横向统计股票kdj相关的资料

热点内容
苹果如何创建服务器错误 浏览:495
软考初级程序员大题分值 浏览:473
js压缩视频文件 浏览:578
linux如何通过命令创建文件 浏览:989
应用加密app还能访问应用嘛 浏览:433
安卓怎么用支付宝交违章罚款 浏览:665
php面向对象的程序设计 浏览:504
数据挖掘算法书籍推荐 浏览:894
投诉联通用什么app 浏览:150
web服务器变更ip地址 浏览:954
java正则表达式验证邮箱 浏览:360
成熟商务男装下载什么软件app 浏览:609
加密2h代表长度是多少厘米 浏览:23
拍卖程序员 浏览:101
电脑的图片放在哪个文件夹 浏览:276
unsignedintjava 浏览:217
编译器下载地址 浏览:43
什么是面对对象编程 浏览:708
b站服务器什么时候恢复 浏览:721
6p相当于安卓机什么水准 浏览:499