python数据类型_在量化交易中的用途
一、整数
1、表示数量或份额,例如交易的股票数量、ETF基金份额等。
num_shares = 1000 # 股票数量为1000
num_futures = 5 # 期货合约数量为 5 张
2、记录交易次数和循环计数器。
num_trades = 0 # 初始化交易次数为0
for i in range(10):
# do something
num_trades += 1 # 记录交易次数
二、浮点数
1、表示价格、收益率和波动率等连续变量。
price = 12.34 # 股票价格为 $12.34
return_rate = -0.05 # 收益率为 -5%
volatility = 0.1 # 波动率为 10%
2、计算加权平均数和对数收益率等。
# 计算加权平均价
prices = [10, 11, 9, 12, 13] # 历史股价
weights = [0.2, 0.2, 0.2, 0.2, 0.2] # 权重
weighted_average = np.average(prices, weights=weights) # 加权平均价为 11
# 计算对数收益率
log_returns = np.log(np.array(prices[1:]) / np.array(prices[:-1]))
三、布尔值
1、控制交易策略的执行流程,例如下单、退出头寸等。
in_position = True # 是否持有头寸
should_exit = True # 是否应该退出头寸
if in_position and should_exit:
# do something
2、判断数字是否在特定范围内,例如止损点和止盈点。
stop_loss = -0.05 # 止损比例为 5%
take_profit = 0.1 # 止盈比例为 10%
current_return = 0.03 # 当前收益率为 3%
should_stop_loss = current_return <= stop_loss * -1 # 检查是否达到止损点
should_take_profit = current_return >= take_profit # 检查是否达到止盈点
四、字符串
1、存储交易品种名称、代码、交易会话ID等。
symbol = 'AAPL' # 股票代码为 AAPL
name = 'Apple Inc.' # 公司名称为 Apple
session_id = '20220101' # 交易会话 ID 为 20220101
2、存储数据文件路径和名称。
file_path = 'C:\\data\\stock_price.csv' # 存储股价文件路径和名称
五、列表
1、存储历史市场价格、交易订单和成交记录。
prices = [10, 11, 9, 12, 13] # 存储过去5天的股票价格
orders = [['AAPL', 'buy', 10, 1000], ['AAPL', 'sell', 12, 500]] # 存储交易订单和成交记录
2、存储参数集合。
ma_params = [10, 50, 200] # 存储移动平均线策略参数:MA1=10、MA2=50 和 MA3=200
params_grid = [(10, 20), (20, 50), (30, 100)] # 存储参数网格搜索范围
六、元组
1、存储有序相关变量。
stock_info = ('AAPL', 1000, 12.34) # 存储股票信息:代码、数量和价格
option_contract = ('AAPL', '20220318', 'call', 150) # 存储期权合约信息:股票代码、到期时间、类型和行权价格
2、返回函数多个值。
import math
def calculate_price_and_greeks():
# do something
price = 10.5
delta = 0.7
gamma = 0.1
vega = 0.15
return price, delta, gamma, vega
# 调用函数,返回多个结果
price, delta, gamma, vega = calculate_price_and_greeks()
print(price, delta, gamma, vega) # 输出 10.5 0.7 0.1 0.15
七、集合
1、去除交易品种列表中的重复项。
symbols = {'AAPL', 'TSLA', 'AAPL', 'GOOG'} # 存储股票代码集合
unique_symbols = set(symbols) # 去除重复项
print(unique_symbols) # 输出 {'AAPL', 'GOOG', 'TSLA'}
2、检查交易品种是否属于某个组合或类别。
technology_stocks = {'AAPL', 'MSFT', 'GOOG', 'FB'}
symbol = 'AAPL'
if symbol in technology_stocks:
print('This is a technology stock.')
else:
print('This is not a technology stock.')
八、字典
字典是一种非常实用的数据类型,它可以将键值对存储在一个集合中,在键被唯一指定的情况下,对应一个相应的值。以下是使用 Python 字典来存储和处理量化交易中的相关信息的详细样例:
# 存储股票代码和名称
stocks = {'AAPL': 'Apple Inc.', 'TSLA': 'Tesla, Inc.', 'GOOG': 'Alphabet Inc.'}
# 查询股票名称
print(stocks['AAPL']) # 输出 "Apple Inc."
# 添加新的键值对
stocks['AMZN'] = 'Amazon.com, Inc.'
# 删除键值对
del stocks['GOOG']
# 访问所有的键
print(stocks.keys()) # 输出 dict_keys(['AAPL', 'TSLA', 'AMZN'])
# 访问所有的值
print(stocks.values()) # 输出 dict_values(['Apple Inc.', 'Tesla, Inc.', 'Amazon.com, Inc.'])
# 访问所有的键值对
print(stocks.items()) # 输出 dict_items([('AAPL', 'Apple Inc.'), ('TSLA', 'Tesla, Inc.'), ('AMZN', 'Amazon.com, Inc.')])
# 使用 for 循环遍历所有键值对
for key, value in stocks.items():
print(key + ': ' + value)
# 输出:
# AAPL: Apple Inc.
# TSLA: Tesla, Inc.
# AMZN: Amazon.com, Inc.
在上面的示例中,Python 字典被用于存储股票代码和名称。首先,使用字典的键值对存储了不同股票代码和相应的名称。随后, 可以通过访问字典的键(代码)或调用 keys() 方法来检索所有的键; 通过调用 values() 方法可以检索所有的值; 使用 items() 方法或通过迭代字典对象可以遍历所有的键值对; 可以使用 del 关键字删除特定的键值对.
总之,使用 Python 字典可以提高在量化交易中处理数据时的效率和灵活性,同时减少程序中重复的代码。