Python全系列 教程
3567个小节阅读:5931.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
获取单个股票行情数据,进行周四买,周一卖的操作,计算单次收益率,不能出现连续买卖的现象。
xxxxxxxxxx
import numpy as np
import datetime
"""
获取单个股票行情数据函数
"""
def get_single_price(code, time_freq, start_date=None, end_date=None):
# 如果start_date=None,默认为从上市日期开始
if start_date is None:
start_date = get_security_info(code).start_date
# 如果end_date为None,默认为今天
if end_date is None:
end_date = datetime.datetime.today()
# 获取行情数据
data = get_price(code, start_date=start_date, end_date=end_date,frequency=time_freq, panel=False)
return data
"""
整合信号函数
"""
def compose_signal(data):
data['buy_signal'] = np.where((data['buy_signal'] == 1)
& (data['buy_signal'].shift(1) == 1), 0, data['buy_signal'])
data['sell_signal'] = np.where((data['sell_signal'] == -1)
& (data['sell_signal'].shift(1) == -1), 0, data['sell_signal'])
data['signal'] = data['buy_signal'] + data['sell_signal']
return data
"""
计算单次收益率
"""
def calculate_prof_pct(data):
data.loc[data['signal'] != 0,'profit_pct'] = data['close'].pct_change()
return data
"""
周期选股(周四买,周一卖)函数
"""
def week_period_strategy(code, time_freq, start_date=None, end_date=None):
data = get_single_price(code, time_freq, start_date, end_date)
# 新建周期字段
data['weekday'] = data.index.weekday
# 周四买入
data['buy_signal'] = np.where((data['weekday'] == 3), 1, 0)
# 周一卖出
data['sell_signal'] = np.where((data['weekday'] == 0), -1, 0)
data = compose_signal(data) # 整合信号
data = calculate_prof_pct(data) # 计算收益
return data
# 测试
df = week_period_strategy('000001.XSHE','daily')