小白学python3实战做量化分析平台_Python3量化分析从小白到破产 - 基本的代码编写规范...

文:蓝兔子读难NOTES

图: 配图 来源于网络

Python3 量化分析从小白到破产笔记

基础语法与规范-编码规范

编码:0004

python的语法规范主要就是讲写代码的格式。就像小时候写作文,标题要居中写,每一段开始要空两格,标点符号要规范,不能使用错别字等。写作文的时候如果犯了错误,老师可能会给你扣分,但是写代码的时候如果犯了错误,死脑筋的计算机可是会直接罢工或者乱来的。不过死脑筋的计算机有一个好处就是,他会一板一眼的告诉你哪一行、那个符号错了。

插入一个题外话:如何才能不粗心大意

python代码的脚本式和交互式两种编程方法我们之前已经介绍过。交互式编程的好处就是所见即所得,感觉就像和电脑在对话一样,你问一句,它回答一句,但是这种方法就是代码不会保存。而脚本式呢,就是将代码写进文本里面,一次性运行得到结果,缺乏与计算机的过程交互。我们使用jupyter notebook这个IDL,相当于是结合了两者的优势,交互式编程与脚本式编程同时进行。

但无论是哪种编程方式,我们都需要遵守python的代码规范。在代码规范中,有些是强制性的,有些是推荐性的。如果不遵守强制性的规范,代码会出错。而推荐性的规范,是为了便于我们阅读和理解。下面列出主要的一些编写规范。

1、首先,注意python所有的代码都是在英文下输入的,比如“()”和“()”是不一样的。当然,如果是字符串的内容,则以实际字符串为准。

2、代码应该顶格写,段首空两格什么的python表示写代码又不是写作文。但是当后面的语句是前面一句的子语句(后面会学到)时,子语句应该统一缩进一个单位。这里的一个单位,有可能是一个tab键,也有可能是四个空格,不同的编辑器,可能略有不同。tab和空格不能混用,不能有些地方缩进用tab,有些地方缩进用空格。所以我建议,为了避免用混乱,tab和空格都不用,一般默认情况下,你的编辑器会自己识别出后面的代码需要缩进,你敲回车时,他会自动缩进,用它的缩进就OK啦。

3、每行的结束不需要分号。在很多语言中,比如C语言,语句末尾是要分号的,甚至可以将很多个语句放在同一行,用分号隔开,但是python不推荐这样,因为python要友好,要优雅,要简洁(尽管这样python可能不会报错)。

4、空行,可以让代码更好看。空行就像是写作文的时候分段落一样,空一行就相当于是换了一个段落。

5、一行代码太长怎么办。在python中,你有可能一行代码太长,例如比你的屏幕的宽度还长,此时你可以用连字符换行,在下一行接着写。不过需要注意的是,python的连字符和英语不一样,python连字符是“\”。但如果该行语句中有{}、[]、()等,且括号里面有多个元素,则可以直接在元素之间换行,而不用“\”。

6、单引号与双引号。引号用来表示一个字符串,本质上,单引号和双引号是一样的,但是应该配对。但是如果字符串里面有引号,为了不和已有的引号串号,应用该整个字符串的引号应该使用另一种。

7、注释,解释这串代码干嘛用的。注释有单行注释和多行注释两种,单行注释直接用#号开始,#号后面的内容就是注释。多行注释用三引号扩起来,内部的内容就是注释。

8、取名字的问题,不要和python自带的东西重名。我们在定义变量时,不要使用python已经占用了的名字(关键字)。另外,尽量使用简单明了的名字,比如代表股票价格的变量就叫stock_price,别整个gupiaojiage这种东西出来,当然上面使用的a、b、c之类的更不可取。因为要优雅,要简单易懂。取名字的学问,可以参考python的创始人Guido van Rossum推荐的规范。

鉴于都是小白水平,且还没进行相关编程内容的学习,内容说多了反而犯懵,消耗学习的激情。所以就先说这么多,大致知道就行,后面咱碰到一个学一个。不过,一开始就规范编写还是很有必要的,可以搜索 「PEP 8 -- Style Guide for Python Code」,查找python专门的编码规范。但是python官网给出的文档是全英文的,可以关注微信gong众号CFArabbit然后回复PEP 8获取中文翻译版的文档学习。

我们下次的内容是python的常用运算符。

相关文章(关注gzhh:CFArabbit获取更多内容)

Python3 量化分析笔记从小白到破产-编程环境准备

Python3 量化分析笔记从小白到破产-学习路线规划

CFA一级财报分析-财务报告质量

CFA一级财报分析-长期资产

CFA一级财报分析-企业所得税

Python3量化分析从小白到破产-变量与基础数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
量化学习-自创指标设计 一、准备工作 1、首先把“HP_formula.py”文件复制到自己的工程目录中。 2、在新文件开始增加下面4条语句。 import numpy as np import pandas as pd from HP_formula import * import tushare as ts 二、对数据预处理 我们采用与tushare旧股票数据格式。 #首先要对数据预处理 df = ts.get_k_data('600080',ktype='D') mydf=df.copy() CLOSE=mydf['close'] LOW=mydf['low'] HIGH=mydf['high'] OPEN=mydf['open'] VOL=mydf['volume'] C=mydf['close'] L=mydf['low'] H=mydf['high'] O=mydf['open'] V=mydf['volume'] 三、仿通达信或大智慧公式 通达信公式转为python公式的过程。 1.‘:=’为赋值语句,用程序替换‘:=’为python的赋值命令‘='。 2.‘:’为公式的赋值带输出画线命令,再替换‘:’为‘=’,‘:’前为输出变量,顺序写到return 返回参数中。 3.全部命令转为英文大写。 4.删除绘图格式命令。 5.删除掉每行未分号; 。 6.参数可写到函数参数表中.例如: def KDJ(N=9, M1=3, M2=3): 例如通达信 KDJ指标公式描述如下。 参数表 N:=9, M1:=3, M2:=3 RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; # Python的KDJ公式 def KDJ(N=9, M1=3, M2=3): RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100 K = SMA(RSV,M1,1) D = SMA(K,M2,1) J = 3*K-2*D return K, D, J #----------------------------------- #根据上面原理,我们把大智慧RSI指标改 # 为Python代码,如下。 def RSI(N1=6, N2=12, N3=24): """ RSI 相对强弱指标 """ LC = REF(CLOSE, 1) RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100 RSI2 = SMA(MAX(CLOSE - LC, 0), N2, 1) / SMA(ABS(CLOSE - LC), N2, 1) * 100 RSI3 = SMA(MAX(CLOSE - LC, 0), N3, 1) / SMA(ABS(CLOSE - LC), N3, 1) * 100 return RSI1, RSI2, RSI3 四、使用公式并绘图 #假定我们使用RSI指标 r1,r2,r3=RSI() mydf = mydf.join(pd.Series( r1,name='RSI1')) mydf = mydf.join(pd.Series( r2,name='RSI2')) mydf = mydf.join(pd.Series( r3,name='RSI3')) mydf['S80']=80 #增加上轨80轨迹线 mydf['X20']=20 #增加下轨20轨迹线 mydf=mydf.tail(100) #显示最后100条数据线 #下面是绘线语句 mydf.S80.plot.line() mydf.X20.plot.line() mydf.RSI1.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) 不懂就看我的博客 https://blog.csdn.net/hepu8/article/details/93378543

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值