1、概述
你是一个老股民吗?你是一个有着十年交易的股民吗?你是否在太忙没时间看盘?想找免费的自动量化交易程序?如果是,一定不要错过本帖!本教程将手把手教你如何下载股票数据,如何判断交易时间,如何在交易日内发送买卖信号至个人邮箱。鉴于python比较简单,容易上手,本教程将使用python。
2、下载当天实时股价和历史股票数据
下载股票数据的方法有很多,比如编写爬虫爬取东方财富的数据,又比如利用腾讯股票的接口,还有tushare等等。这里使用腾讯股票接口下载当天的股票数据,使用基于python的efinance包来下载历史股票数据。
- 下载当天(交易日)的股票数据
def get_real_stockinfo(stock_code):
url = 'http://qt.gtimg.cn/q='
if stock_code[0] == '3' or stock_code[0] == '0': # 创业板或者深市
stock_code = 'sz' + stock_code
if stock_code[0] == '6': # 科创版或者上证
stock_code = 'sh' + stock_code
url1 = url + stock_code
html_text = urlopen(url1)
html_text1 = html_text.read()
html_text2 = html_text1.decode('gbk')
stock_info_list = html_text2.split('~')
#print(stock_info_list[3])
return stock_info_list[3] #返回实时股价,沪深300目前不支持腾讯接口
2、下载历史股票数据
import efinance as ef
df1=ef.stock.get_quote_history(stockcode,begdate, enddate)
3、判断交易时间
怎么才能判断今天是不是交易日?只有交易日程序才工作,非交易日程序休眠,省电
from chinese_calendar import is_workday
def is_trade_day(date):
if is_workday(date):
if date.isoweekday() < 6:
return 1
return 0
else:
return 0
4、根据股价确定买卖信号
stock_close_price = df1['收盘']
stock_close_price1= stock_close_price.tolist()
if stock_close_price >180:
mailmessage = "卖出信号"
5、将买卖信号发送至个人邮箱,提醒及时登录证券账户操作
def sendmail_stock(emailtext):
from_addr = 'xxx@qq.com'
password = 'xxxxxx'
# 收信方邮箱
to_addr = 'xxxx@163.com'
# 发信服务器
smtp_server = 'smtp.qq.com'
# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg = MIMEText(emailtext, 'plain', 'utf-8')
# 邮件头信息
msg['From'] = from_addr # 发送者
msg['To'] = to_addr # 接收者
subject = time.strftime('%Y-%m-%d %H:%M', time.localtime()) + " RSI information"
msg['Subject'] = Header(subject, 'utf-8') # 邮件主题
try:
smtpobj = smtplib.SMTP_SSL(smtp_server)
# 建立连接--qq邮箱服务和端口号(可百度查询)
smtpobj.connect(smtp_server, 465)
# 登录--发送者账号和口令
smtpobj.login(from_addr, password)
# 发送邮件
smtpobj.sendmail(from_addr, to_addr, msg.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("无法发送邮件")
finally:
# 关闭服务器
smtpobj.quit()
6、总结
整个实现过程其实非常容易的,通过python实现的实时股票行情检测,并发送交易信号到自己的邮箱,这样就不用时时刻刻盯盘了,限于篇幅,本教程只列了核心代码,如需完整代码请关注我,在评论区留下自己的邮箱,我会将完整代码发送至邮箱,如需合作,还请留言。
8309

被折叠的 条评论
为什么被折叠?



