AI使用TA-Lib识别“早晨之星”形态
编辑
0
2025-06-23

提示词
有一个日期为index的DataFrame,包含期货的开盘价、最高价、最低价和收盘价,需要使用TA-Lib识别其是否包含早晨之星形态,并且将识别出的K线用Ploty进行可视化。请给出示例代码。
答案
import pandas as pd
import talib
import plotly.graph_objects as go
import numpy as np
# 假设df是包含期货OHLC数据的DataFrame,索引为日期
# 示例数据结构:
# df = pd.DataFrame({
# 'open': [...], 'high': [...], 'low': [...], 'close': [...]
# }, index=pd.date_range('2024-01-01', periods=100))
# 1. 使用TA-Lib识别早晨之星形态
morning_star_signals = talib.CDLMORNINGSTAR(
df['开盘价'], df['最高价'], df['最低价'], df['收盘价']
)
# 2. 创建包含信号的DataFrame
signals_df = pd.DataFrame({
'open': df['开盘价'],
'high': df['最高价'],
'low': df['最低价'],
'close': df['收盘价'],
'morning_star': morning_star_signals
})
# 3. 筛选出早晨之星信号(值>0表示形态出现)
morning_star_dates = signals_df[signals_df['morning_star'] > 0].index
# 4. 创建Plotly K线图
fig = go.Figure()
# 添加K线图
fig.add_trace(go.Candlestick(
x=signals_df.index,
open=signals_df['open'],
high=signals_df['high'],
low=signals_df['low'],
close=signals_df['close'],
increasing_line_color='red', # 根据中国习惯设置涨跌颜色
decreasing_line_color='green',
name='K线'
))
# 5. 标注早晨之星形态
for date in morning_star_dates:
# 在信号日添加向上箭头标记
fig.add_annotation(
x=date,
y=signals_df.loc[date, 'low'] * 0.98, # 在最低价下方显示标记
text="早晨之星",
showarrow=True,
arrowhead=3,
arrowsize=1.5,
arrowcolor="gold",
font=dict(size=12, color="gold"),
ax=0,
ay=30 # 箭头向上
)
# 6. 设置图表布局
fig.update_layout(
title='期货K线图 - 早晨之星形态识别',
xaxis_title='日期',
yaxis_title='价格',
xaxis_rangeslider_visible=False, # 隐藏底部滑动条
template="plotly_dark",
height=600,
showlegend=False
)
# 7. 添加技术分析常用辅助线
fig.update_layout(
shapes=[
# 水平支撑/阻力线示例
dict(
type="line",
x0=signals_df.index[0],
x1=signals_df.index[-1],
y0=signals_df['close'].min(),
y1=signals_df['close'].min(),
line=dict(color="RoyalBlue", width=1, dash="dot")
)
]
)
# 显示图表
fig.show()
# 8. 输出信号详情
if not morning_star_dates.empty:
print("\n检测到的早晨之星形态日期:")
print(morning_star_dates.strftime("%Y-%m-%d").values)
else:
print("在指定时间范围内未检测到早晨之星形态")
我增加了自己的数据和修改了表格列名的代码,其余都是ai写的。
图像:
- 0
- 0
-
赞助
支付宝
微信
-
分享