桓公少与殷侯齐名,常有竞心。桓问殷:“卿何如我?”殷云:“我与我周旋久,宁作我!”
抄底王
今天闲聊,聊到股票跌停要去抄底,风浪越大鱼越贵。
剑走偏锋,是不是可以设计一个抄底选股策略,对这支股票的历史上大跌表现进行量化
代码
import datetime
import baostock as bs
import pandas as pd
import matplotlib.pyplot as plt
#获取股票数据
def get_data(ticket,start_date):
today = datetime.datetime.now().strftime("%Y-%m-%d")
# 登录 Baostock
lg = bs.login()
# 获取股票数据,
rs = bs.query_history_k_data_plus(ticket,
"date,code,open,high,low,close,volume",
start_date=start_date, end_date=today,
frequency="d", adjustflag="3")
data_list = []
while (rs.error_code == '0') & rs.next():
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
# 转换数据类型
result['close'] = result['close'].astype(float)
result['high'] = result['high'].astype(float)
result['low'] = result['low'].astype(float)
# 登出 Baostock
bs.logout()
#是否存储
#result.to_csv(f"stock_data/{ticket}_{today}.csv")
return result
#找到跌的数据,并计算一周内的表现
def cau(stock,start_date):
#获取数据
df = get_data(stock,start_date)
#df['跌停'] = (df['open'] - df['close'])/df[df['open']]
#获取涨跌幅
df['pct_change'] = df['close'].pct_change()
df['is_limit_down'] = (df['pct_change'] <= -0.08)
data=[]
for i in range(1,31):
#{i}天后的收盘价
df[f"close_{i}"] = df['close'].shift(-i)
#上涨比例
df[f'compare_{i}'] = (df[f'close_{i}']- df['close'])/df[f'close_{i}']
result = df[df['is_limit_down'] == True]
#result.to_csv(f"stock_result/MYresult_{stock}.csv")
count_di = result[f'compare_{i}'].count()
count_up = result.loc[result[f'compare_{i}'] > 0, f'compare_{i}'].count()
up_proba=count_up/count_di
row ={'day':i,'触底次数':count_di,'上涨次数':count_up,'上涨概率':up_proba}
data.append(row)
time_result=pd.DataFrame(data)
# time_result.to_csv(f"stock_result/result_{stock}.csv")
print(time_result)
max_row = time_result[time_result['上涨概率'] == time_result['上涨概率'].max()]
print("最大值: ")
print(max_row)
#画图
time_result.set_index('day', inplace=True)
plt.plot(time_result['上涨概率'])
plt.show()
cau("sz.000158","2003-11-05")
(纯整活)
实际
实话实说,一般涨停跌停的这种极端情况,数据量化权重比较低,更多是情绪,市场因素。
通过量化得出的结论还是有点片面,如果以此为依据就有点赌徒了。
所以,想要抄底要怎么做呢?
百度了下:
判断
- 公司利空:如果跌停是由于公司自身的重大利空消息,如业绩大幅下滑、财务造假、重大诉讼等,那么抄底需要格外谨慎。这种情况下,股票可能会继续下跌,甚至面临退市风险。
- 市场因素:如果跌停是由于市场整体下跌、行业板块调整等外部因素引起,而公司基本面没有发生重大变化,那么抄底的可能性相对较大。可以进一步分析市场和行业的走势,判断下跌是否接近尾声。
技术分析
- 趋势判断:观察股票的长期和短期趋势。如果股票处于长期下跌趋势中,即使出现跌停,也可能只是下跌过程中的一个节点,不宜盲目抄底。如果股票在长期上涨趋势中出现跌停,且没有破坏整体趋势,可以考虑抄底。
- 成交量分析:跌停时的成交量也是一个重要的参考指标。如果成交量较小,说明卖压可能不大,有可能是恐慌性抛售导致的跌停。如果成交量巨大,说明市场抛售压力较大,可能需要更长时间的调整。
- 支撑位判断:通过技术分析确定股票的重要支撑位。如果跌停价格接近或触及重要支撑位,可能会有一定的支撑作用,反弹的概率增加。