1 常用内置常量Python解释器在启动时会创建三个常量:None、True和False。None表示“无”,True表示“真”,False表示“假”。None是NoneType类型的唯一值,表示没有值或者为空值,比如当函数没有返回值时,默认返回None值。因为Python用“yes”和“nothing”来表示“true”和“false”,“yes”为true,“nothing”为false,所以None、0、空字符串、空列表、空字典都是false、True对于非“空”数据。True和False是bool类型的值。True和False除了代表true和false之外,还有自己的值。True的值为1,False的值为0,可以用数值计算。比如5+True的结果是6,3*False的结果是0,1==True的结果是True,1是True的结果是False。上面的例子说明True的值是1,但是True在内存中的地址和整数1的地址是不一样的。None、True和False这三个常量常用于量化策略中。还有一个Ellipsis常量,字面意思与省略号相同,常用于注释中。2 整数类型计算交易手数时需要整数类型,如1,2,3,4,Python可以直接使用整数进行计算。当在Python代码中输入整数值时,Python会自动将输入值创建为整数。当然,你也可以使用整数类型int()创建一个整数,将一个数值参数传递给整数类型int(),int()会将数值参数转换为整数。比如int(5.89)的结果是5,转换时只保留整数部分;int('123')的结果是123,字符串类型转换为整数类型。我们可能需要从本地文件中读取数据,比如存储在本地的交易数据。读取的数据通常是字符串类型,必须将字符串类型转化为整数才能参与相关计算。整数可以是正数或负数,例如3和-3。量化策略中可以定义净持仓pos=3,即净多仓3手;pos=-3的定义表示净空仓3手。3 浮点价格、保证金等都是浮点值,浮点值是带小数点的小数。与整数类似,Python可以直接用浮点值进行计算,也可以使用浮点类float()来创建浮点值。比如float(5)的结果是5.0,转换整数时要加小数位;float('5.999')的结果是5.999,将字符串转换为浮点值。整数与浮点数的加减运算,结果会转为浮点数。如果想在计算中保留两位小数,可以使用round()函数,例如a=5.946326598,round(a,2)的结果为5.95,四舍五入后保留两位小数。4 字符串类型字符串是由一对英文单引号、一对英文双引号、一对英文三重单引号或一对英文三重双引号包围的字符。字符串类型。比如'account',"123456",'''password''',"""jkl"""都是合法的字符串。字符串是序列类型的数据。字符串的字符有位置(索引)属性,字符的位置编号从左到右依次为0、1、2、3、4、5、6……从右到左的位置编号为-1,?2,?3,?4,?5,?6...通常,一个字符串用一对英文单引号或一对英文双引号定义,英文三重单引号或三重双引号引号用于多行注释。如果字符串中需要英文单引号,则使用英文双引号;如果字符串中需要英文双引号,则使用英文单引号。此时英文单引号和双引号是字符,不是字符串的标识符,比如"ad'cd",'ef"gh',英文双引号或单引号成对成为一个字符串的标识符string,characters字符串中的引号作为字符来区别于字符串标识,不会有“意思”冲突,字符串中可以有空格,因为空格也是字符,Python用的是“是”而“no”代表“true”和“false”,没有任何字符的字符串为false,有字符的字符串为true。代码中对字符串进行处理,把字符字符串创建到内存中,保存为字符串类型,也可以使用字符串类str()创建字符串,例如str(123)的结果为'123',它将值123转换为字符串'123'。如果要包括控制字符或字符字符串中有特殊含义,需要使用转义字符,常用的转义字符如表2-1所示。表2-1例如print("abc\"de")输出abc"de,中间的英文双引号被\转义为字符,不再与第一个英文双引号组成字符串标识符。当在字符串前加上r或R时,该字符串为原字符串,字符串中的“\”不再是转义字符,而是“\”本身。但是字符串的最后一个字符不能是“\”,原始字符串主要用在文件路径中。代码如下:>>>print(r'C:\new\T0002\export\MA.csv')C:\new\T0002\export\MA.csv>>>print(r'C:\new\T0002\export\')File"
