1. python 设计一个名为Stock的类来表示一个公司的股票
是的,设计一个名为 Stock的类表示股票,该类包括:
1、一个名为symbol的字符串数据域表示股票代码:
2、一个名为name的字符串数据域表示股票名称;
3、一个名为previousPrice的double型数据域,用来存储股票的前一 日收盘价:
4、一个名为currentPrice的double型数据域,用来存储股票的当前价格:
5、创建一个给定特定代码和名称的股票构造方法:
6、一个名为getChangePercentO方法,返回从前的日价格到当前价格变化的百分比。
实现这个类,编写个测试程序,创建一个Stock 对象,它的股票代码是600000,股票名称是“浦发银行”,前一日收盘价是 25.5元,当前的最新价是28.6元,显示市值变化的百分比。
拓展资料
设计一个Stock类和DividendStock类
编写了一个表示拥有股票情况的Stock类,这里给出了一个简化版,去掉了对参数的合法性的检查等细节,现在需要创建一个可以发放分红的股票。红利的多少和持有股票的数量成正比,不是所有的股票都是会有分红的,所以不能直接在Stock类上直接增加这个功能,而是应该在Stock类的基础上,继承一个DividendStock类。并在这个子类中增加分红的属性和行为。
(1)一个用于记录分红的字段dividents
(2)重写父类的getProfit方法(在父类的getProfit方法的基础上还要加上分红的)
父类的getProfit+股票的总的分红(也就是字段dividents的值)
(3)增加计算分红的方法,方法中的参数表示每股的红利,可以理解为成员变量dividents赋值: 股票的总的分红=每股的红利*总股数
public void payDividend(double amountPerShare)
编写一个测试的程序,创建一个名为”Oracle”的分红股票,先后以单价32元购买200股,以单价40元购买350股。每股的分红2.8元。这支股票的当前价格是每股50元。
2. python对股票分析有什么作用
你好,Python对于股票分析来说,用处是很大的
Python,用数据软件分析可以做股票的量化程序,因为股票量化是未来的一种趋势,能够解决人为心理波动和冲动下单等不良行为,所以学好python量化的话,那么对股票来说有很大很大帮助
3. 怎么学习python量化交易
下面教你八步写个量化交易策略——单股票均线策略
1 确定策略内容与框架
若昨日收盘价高出过去20日平均价今天开盘买入股票
若昨日收盘价低于过去20日平均价今天开盘卖出股票
只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?
想想人是怎么操作的,应该包括这样两个部分
既然是单股票策略,事先决定好交易哪一个股票。
每天看看昨日收盘价是否高出过去20日平均价,是的话开盘就买入,不是开盘就卖出。每天都这么做,循环下去。
对应代码也是这两个部分
definitialize(context):
用来写最开始要做什么的地方
defhandle_data(context,data):
用来写每天循环要做什么的地方
2 初始化
我们要写设置要交易的股票的代码,比如 兔宝宝(002043)
definitialize(context):
g.security='002043.XSHE'#存入兔宝宝的股票代码
3 获取收盘价与均价
首先,获取昨日股票的收盘价
#用法:变量=data[股票代码].close
last_price=data[g.security].close#取得最近日收盘价,命名为last_price
然后,获取近二十日股票收盘价的平均价
#用法:变量=data[股票代码].mavg(天数,‘close’)
#获取近二十日股票收盘价的平均价,命名为average_price
average_price=data[g.security].mavg(20,'close')
4 判断是否买卖
数据都获取完,该做买卖判断了
#如果昨日收盘价高出二十日平均价,则买入,否则卖出
iflast_price>average_price:
买入
eliflast_price<average_price:
卖出
问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量。
#用法:变量=context.portfolio.cash
cash=context.portfolio.cash#取得当前的现金量,命名为cash
5 买入卖出
#用法:order_value(要买入股票股票的股票代码,要多少钱去买)
order_value(g.security,cash)#用当前所有资金买入股票
#用法:order_target(要买卖股票的股票代码,目标持仓金额)
order_target(g.security,0)#将股票仓位调整到0,即全卖出
6 策略代码写完,进行回测
把买入卖出的代码写好,策略就写完了,如下
definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔宝宝
defhandle_data(context,data):#每日循环
last_price=data[g.security].close#取得最近日收盘价
#取得过去二十天的平均价格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得当前的现金
#如果昨日收盘价高出二十日平均价,则买入,否则卖出。
iflast_price>average_price:
order_value(g.security,cash)#用当前所有资金买入股票
eliflast_price<average_price:
order_target(g.security,0)#将股票仓位调整到0,即全卖出
现在,在策略回测界面右上部,设置回测时间从20140101到20160601,设置初始资金100000,设置回测频率,然后点击运行回测。
7 建立模拟交易,使策略和行情实时连接自动运行
策略写好,回测完成,点击回测结果界面(如上图)右上部红色模拟交易按钮,新建模拟交易如下图。 写好交易名称,设置初始资金,数据频率,此处是每天,设置好后点提交。
8 开启微信通知,接收交易信号
点击聚宽导航栏我的交易,可以看到创建的模拟交易,如下图。 点击右边的微信通知开关,将OFF调到ON,按照指示扫描二维码,绑定微信,就能微信接收交易信号了。
4. 怎么用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()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。
5. 懂牛共振追涨指标公式源码
牛共振追禅碧涨指标是一种用于股票分析的技术指标,可以用来判断股票价格的涨跌趋势和市场热度。其计算公式如下:
牛共振追涨指标 = (收盘价 - N日前的最低价) / (N日前的最高价 - N日前的最低价) * 100
其中,N代表计算周期,春袭李收盘价为当日收盘价,N日前的最高价和最低价分别为过去N天中的最高价和最低价。
以下是使用Python语言实现牛共振追涨指标的源码:
def get_bull_resonance(df, n):
"""
计算牛共振追涨指标
:param df: 包含股票收盘价的数据框
:param n: 计算周期
:return: 牛共振追涨指标
"""
df['min_price'] = df['close'].rolling(n).min() # 计算N日内的最低价
df['max_price'] = df['close'].rolling(n).max() # 计算N日内的最高价
df['bull_resonance'] = (df['close'] - df['min_price']) / (df['max_price'] - df['min_price']) * 100 # 计算牛共振追涨指标
return df['bull_resonance']
使用该代码可以计算股票的牛共振追涨指扒迟标,其中参数df为包含股票收盘价的数据框,n为计算周期。函数返回值为牛共振追涨指标。
6. 股票池如何用python构建
股票池用python构建的方法是:使用第三方平台,目前可以使用的是聚宽,对比一下聚宽、优矿、大宽网(已经倒闭了),都大同小异,选哪个都一样。
虽然这些平台都大同小异,但是代码可不能简单复制粘贴,因为底层函数库是不一样的,有可能在别的平台根本用不了某个函数,并且简单复制到自己电脑中的python的话百分之百用不了。
代码的思路是,每个月底进行调仓,选出市值最小的股票交易,去掉ST/*ST/停牌/涨停的股票,然后选择最小市值的10只,基准是创业板综指,看看结果。
python构建数据获取方法是:
这里使用为了接下来的操作需要将一定历史范围的股票数据下载下来,这里下载起始时间为20160101,截至时间为运行代码的时间范围的历史日线数据。
这里以tushare为例, tushare获取历史数据有两种方式。
第一种是以迭代历史交易日的方式获取所有历史数据,假设获取三年的历史数据,一年一般220个交易日左右,那么3年需要请求660多次左右,如果以这种方式的话,就下载数据的时间只需要1分钟多点的样子。
第二种是以迭代所有股票代码的方式获取所有历史数据,股票数量有大概3800多个,需要请求3800多次,但是在积分有限的情况下一分钟最多请求500次,也就意味着仅下载数据的时间至少需要大概8分钟时间。
理论上,你获取的历史范围超过17.3年,那么使用第一种方式才比第二种方式快。
7. 如何用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 = '2015-01-01'
end_date = '2018-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("执行完毕!
8. 如何选取过去每个月股票的市值 python
类似,可以修改一下
股票涨跌幅数据是量化投资学习的基本数据资料之一,下面以python代码编程为工具,获得所需要的历史数据。主要步骤有:
(1) #按照市值从小到大的顺序活得N支股票的代码;
(2) #分别对这一百只股票进行100支股票操作;
(3) #获取从2016.05.01到2016.11.17的涨跌幅数据;
(4) #选取记录大于40个的数据,去除次新股;
(5) #将文件名名为“股票代码.csv”。
具体代码如下:
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 17 23:04:33 2016
获取股票的历史涨跌幅,并分别存为csv格式
@author: yehxqq151376026
"""
import numpy as np
import pandas as pd
#按照市值从小到大的顺序活得100支股票的代码
df = get_fundamentals(
query(fundamentals.eod_derivative_indicator.market_cap)
.order_by(fundamentals.eod_derivative_indicator.market_cap.asc())
.limit(100),'2016-11-17', '1y'
)
#分别对这一百只股票进行100支股票操作
#获取从2016.05.01到2016.11.17的涨跌幅数据
#选取记录大于40个的数据,去除次新股
#将文件名名为“股票代码.csv”
for stock in range(100):
priceChangeRate = get_price_change_rate(df['market_cap'].columns[stock], '20160501', '20161117')
if priceChangeRate is None:
openDays = 0
else:
openDays = len(priceChangeRate)
if openDays > 40:
tempPrice = priceChangeRate[39:(openDays - 1)]
for rate in range(len(tempPrice)):
tempPrice[rate] = "%.3f" %tempPrice[rate]
fileName = ''
fileName = fileName.join(df['market_cap'].columns[i].split('.')) + '.csv'
fileName
tempPrice.to_csv(fileName)