50行代码教你买哪只黄金股!这就是Python的魅力

  • A+
所属分类:编程语言

菜鸟独白

最近国际金融动荡,股市起起伏伏,前几天黄金股开始异动,涨幅非常凶猛!但是到底买哪个黄金股票呢,不如我们自己动手分析一下股票的详细数据,只要50行搞定!

1.三大黄金股票

随便打开一个券商的app,我们看一下目前比较猛的三大黄金股票:中金黄金,西部黄金,山东黄金。到底选哪一个好的,每个人都想今天买股票下单,明天涨停,但是股市有一句俗语,“一平一赢八亏损”!想在股市里面赚钱,不仅需要耐心,还需要技术!二者缺一不可,我们先数据分析一下:

50行代码教你买哪只黄金股!这就是Python的魅力

2.获取三大股票的数据

我们可以自己去一些股票网站爬取,也可以用一些开放的接口库比如tushare库,基本上玩量化的都会用这个库,非常方便!

50行代码教你买哪只黄金股!这就是Python的魅力

我们通过API 可以一下子获取三大黄金股票的历史交易详细数据,只需要输入起始时间和结束时间,我们这里去2017-1-1/2018-3-23的数据.

3.拿到数据简单清洗

因为是通过API获取,数据其实已经帮我们清洗过了,因为它的数据非常详细:

  • date:日期

  • open:开盘价

  • high:最高价

  • close:收盘价

  • low:最低价

  • volume:成交量

  • price_change:价格变动

  • p_change:涨跌幅

  • ma5:5日均价

  • ma10:10日均价

  • ma20:20日均价

  • v_ma5:5日均量

  • v_ma10:10日均量

  • v_ma20:20日均量

  • turnover:换手率[注:指数无此项]

我们这里简单粗暴的用收盘价,涨跌幅和成交量,这3个维度!尤其是涨跌幅度,可以快速的反映出这3大黄金股内在特性。

50行代码教你买哪只黄金股!这就是Python的魅力

50行代码教你买哪只黄金股!这就是Python的魅力

我们看一下清洗完成的3个黄金股票的1年零3个月的涨幅情况,一共有298个交易日,但是西部黄金有缺失数据,只有188个交易日,中间有几个月的停牌!

50行代码教你买哪只黄金股!这就是Python的魅力

4.到底买一个股票呢

用数据可视化是非常好的方法,帮我们探索和追踪数据集的内部秘密,我们马上来可视化一下,简单用3幅图示例一下:

50行代码教你买哪只黄金股!这就是Python的魅力

1). 看一下月线图:

50行代码教你买哪只黄金股!这就是Python的魅力

最近一个月西部黄金非常猛,一个月的涨幅达到了33%,相当厉害了,要知道上证指数3月份是跌了-3点几!上面的条形图虽然很好,但是无法反映哪个股票比较活跃,那个比较保守!

2).分布图

50行代码教你买哪只黄金股!这就是Python的魅力

纵观整个1年多的交易,很明显西部黄金非常活跃,震幅非常大,而山东黄金相对要稳定一些。

3).趋势图看

50行代码教你买哪只黄金股!这就是Python的魅力

从趋势图看在春节之后,黄金周线开始趋于平和,西部黄金一直是在三大黄金股票里面扮演最活跃的角色,3/18开始异动,一周的涨幅达到了20%。

4).涨跌概率VS幅度

经过前面几步,我们大致可以分析得出,如果是一个积进的投资者可以买西部黄金,如果是稳健型的可以买山东黄金!但是能否再进一步呢,我统计了这三只股票的涨跌的概率,以及涨幅的幅度,发现下面这个小秘密:

50行代码教你买哪只黄金股!这就是Python的魅力

三大股票,涨的概率:[46.9%, 49.2%, 47.7%],跌的概率:[53.1%, 50.8%, 52.3%],三者很接近,步调一致,而涨跌的比例也差不多5/5开!那么我们看一下如果都在涨的情况下,西部赚的钱是中金的近1倍,而下跌的时候中金比西部要少亏40%,这就是暗示我们一个交易策略,如果想知道,后台输入:输入:黄金股。也欢迎你留言交流你的量化投资策略。

综上所说,几十行代码分析,就可以非常方便的帮我们挑选股票!黄金是用来避险的,当市场情绪波动的时候,可以买一些黄金股来做平衡,进可攻退可守!

当然上面只是从一个非常小的视角去分析,更多的量化技巧可以参考文末的推荐阅读!

50行代码教你买哪只黄金股!这就是Python的魅力

文章结束给大家带来福利了!开放Python书籍:一本短小精悍的初学者入门指南

如何快速熟悉 Python 编程一直是很多初学者的疑问,我们经常考虑要不要系统地从头开始啃 Python 教程,但这种方法不仅非常枯燥且很难坚持。因此,对于很多入门读者,更好的方式是学习基础的 Python 编程,然后在实践中完善代码技巧。文章结尾介绍一本非常精炼的 Python 免费书籍,它不仅有基础知识,同时每一章节还有非常多的练习与源代码。

该书是使用实践方法教授基础的 Python 编程语言。其方法相当基础:在简要介绍每个主题之后,读者要解答练习题来巩固知识点。这些练习题都是非常经典的任务,它们可以让我们在短时间内熟悉 Python 的使用。

本书在第二章介绍了 Python 在各种操作系统上的安装并依次介绍了最基本的数据结构、数值和字符串、函数和模块、循环、字典和最后的类与目标。该书每一章都有非常多的配套练习题,且整本书非常短小精悍(22 页)。在该 GitHub 项目的发布页中,作者提供了 PDF 和 Epub 两种阅读版本和源代码。

目录

1 前言

2 安装

2.1 Windows 上的安装

2.2 macOS 上的安装

2.3 Linux 上的安装

3 基本数据类型

3.1 数值型习题

3.2 字符串型习题

3.3 列表型习题

4 模块和函数

4.1 数学模块习题

4.2 函数习题

4.3 递归函数

4.4 递归函数习题

5 迭代和循环

5.1 循环习题

5.2 while 循环习题

6 字典

6.1 字典习题

6.2 子字典习题

7 类

7.1 类习题

7.2 类继承

7.3 类继承习题

Python 的安装其实非常简单,方法也非常多,本书介绍的安装都是不使用 pip 等包管理工具的方法,其它方法还可以安装 Anaconda 等集成开发环境。

第三章介绍了基本的数据类型与数据结构,如下展示了字符串与列表的基本使用:
>>>"Hello"∗3

’HelloHelloHello’

字符串执行乘积运算可以复制多次,以下展示了列表的简单索引方法。
>>> l =[’a’,’b’,’c’,’d’,’e’]

>>> l[1:3]

[’b’,’c’]

第四章介绍了基本的模块与函数。首先在机器学习中,模块的导入与调用时非常重要的,因为很多时候科学计算库与模型框架能节省很多时间。以下简单地导入了一个数学模块:

>>>import math>>> math.cos(0.0)1.0>>> math.radians(275)4.799655442984406

当我们重复使用一个过程时,我们可以将这个过程定义为函数,以在主体函数中重复调用。

>>> def add_one (val): pr int("Function got value", val)return val +1>>> value = add_one(1)Function got value 1>>> value2

第五章介绍了迭代与循环,这是在训练过程中不可缺少的部分。这一部分主要描述了 for 循环与 while 循环,其中 for 循环经常用于列表循环。

>>>for value in [0,1,2,3,4,5]: print ( value ∗ value ) 0 1 4 9 16 25  #另一种列表循环 >>> mylist =[1,5,7] >>>for i in range(len (mylist)):  pr int("Index :", i," Value :", mylist[i])  Index:0Value:1 Index:1Value:5 Index:2Value:7

根据个人经验,我们感觉 while 循环在机器学习中使用得比 for 循环少。大家在迭代训练训练或处理列表时基本上都是使用的 for 循环,以下展示了简单的 while 循环。

>>> n =4>>>while n >0: pr int( n ) n = n−14321

第 6 章介绍了字典,它在机器学习中是非常重要的数据结构。例如我们在 TensorFlow 中使用占位符定义输入数据,那么我们就需要使用字典馈送输入数据与对应的标注。

ages ={"Peter":10,"Isabel":11,"Anna":9,"Thomas":10,"Bob":10,"Joseph":11,"Maria":12,"Gabriel":10,}>>> print (ages["Peter"])10

最后一章介绍了面向对象编程的基础,即类和对象。在机器学习中,使用类来定义模型是非常常见的方法,如果希望简单的看懂模型源代码,那么类与对象的知识就必不可少了。

class Person: def __init__(self, name, age): self.name = name self.age = age  def greet(self):  print("Hello, my name is %s!" % self.name)>> a = Person("Peter", 20)>>> b = Person("Anna", 19)>>> a.greet()Hello, my name is Peter!>>> b.greet()Hello, my name is Anna!>>> print(a.age) 20

感谢阅读,如果我的分享对你有帮助,还请多多转发和收藏,关注菜鸟学Python头条号,分享更多知识。

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: