乐于分享
好东西不私藏

我用AI Agent炒A股,亏了3000块后顿悟了

我用AI Agent炒A股,亏了3000块后顿悟了

01 第一次上头:全职AI交易员,爆亏

02 血的教训:AI操盘的三个死穴

03 正确姿势:人机协作,这样搞(附完整代码)

上个月,我用AI Agent帮我炒A股。
不是模拟盘,是真金白银10万块,第一个月结束,亏了3000块。
但说实话,我一点不后悔。
因为这3000块学费,让我彻底搞明白了——AI炒股的正确姿势,根本不是让人家替你操盘。
01先说第一次我是怎么作死的。
我花了整整两周,用Python加CrewAI框架,写了一个全自动交易Agent。核心逻辑是这样的:每天收盘前,Agent自动调用Tushare API获取全市场数据,然后用历史模式匹配——找出过去30天内,走势最相似的股票形态,第二天按预设策略买入。
听起来挺美好对吧?
第一天, Agent买了三只票,其中两只小涨,当天收益+2.3%。
第二天继续涨,+1.5%。
我当时贼激动,给朋友发消息说,照这个速度,一个月不得翻倍?
结果第三天开始,市场教我做人了。
连续四天买的票,全部大跌。最狠的一只ST股,第二天直接一字板跌停,挂了跌停价都跑不出来。
一周时间,之前赚的全部吐回去,还倒亏了1500块。
我朋友当时调侃我:你这个AI,比我还韭菜。
02我后来复盘了很久,发现问题有三个:
第一个,A股是政策市,不是技术市。AI分析的是历史数据,但上面一道禁令下来,什么技术面都是浮云。
第二个,纯模式匹配本质是用后视镜开车。你看到的全是过去式,但前面等待你的可能是悬崖。
第三个,也是最致命的——我没有风控模块。Agent这个憨憨,只会买买买,不会止损,不会空仓。
而且最关键的是,我发现很多券商API根本不支持程序化交易。Tushare的数据有延迟,等你收到信号,黄花菜都凉了。
03痛定思痛,我换了一个玩法。
这次不让AI直接操盘了,而是让它给我当「军师」。
具体怎么做的?我让Agent每天早上花10分钟,帮我做三件事:
第一件事:扫描所有A股的量价异动。用Python脚本加上FinGPT接口,找出最近有主力资金大幅流入的板块。
第二件事:对比机构研报和资金流向,判断哪些方向有政策催化。
第三件事,也是最关键的——设置硬止损线。单只票亏损超过7%,Agent自动弹窗提醒我,无条件斩仓。
这才是AI真正能发挥作用的地方:不是代替你做决策,而是放大你的信息获取能力,帮你绕过情绪化操作的坑。
用这个改进后的方法又跑了一个月。虽然没有暴富,但整体避开了两个大坑,资金曲线终于平稳向上了。
所以我的结论是:AI Agent炒A股,可以搞,但要用对姿势。
它不适合代替你做决策——毕竟AI没有情绪,但你有贪婪和恐惧。
它的正确用法是:做你的信息放大器,加风控执行人。
帮你看得更广,跑得更快,关键时刻还能拽住你冲动的手。

【完整可运行的代码】

这是我现在每天早上在用的AI炒股助手核心代码:
import tushare as tsimport pandas as pdimport requestsfrom openai import OpenAIimport scheduleimport timefrom datetime import datetimeimport tkinter as tk======== 配置 ========TUSHARE_TOKEN = '你的tushare_token'去tushare.pro注册获取OPENAI_API_KEY = '你的openai_key'去openai官网注册MAX_LOSS = 7止损线7%====================初始化ts.set_token(TUSHARE_TOKEN)pro = ts.pro_api()client = OpenAI(api_key=OPENAI_API_KEY)持仓 {代码: 买入价}positions = {}======== 获取数据 ========def get_movers():"""获取当天涨幅>5%的股票"""date_str = datetime.now().strftime('%Y%m%d')df = pro.daily_basic(trade_date=date_str)return df[df['pct_chg'] > 5].sort_values('pct_chg', ascending=False).head(20)def get_sectors():"""获取主力净流入板块"""url = "http://push2.eastmoney.com/api/qt/clist/get"params = {'pn'1'pz'50'po'1'np'1,'ut''bd1d9ddb04089700cf9c27f6f7426281''fl'1'fs'1}response = requests.get(url, params=params, timeout=10)data = response.json()sectors = []for item in data['data']['diff']:inflow = item.get(' inflow'0)if inflow and inflow > 0:sectors.append({'name': item['name'], 'inflow': inflow})return sorted(sectors, key=lambda x: x['inflow'], reverse=True)[:10]======== AI分析 ========def ai_analyze(movers, sectors):"""让AI分析市场"""movers_info = "\n".join([f"{i+1}{row['ts_code']} +{row['pct_chg']:.1f}%"for i, (_, row) in enumerate(movers.head(5).iterrows())])sectors_info = "\n".join([f"{i+1}{s['name']} 净流入{s['inflow']//10000}万"for i, s in enumerate(sectors[:5])])prompt = f"""你是10年经验的A股短线高手。请分析:主力净入板块:{sectors_info}今日强势股:{movers_info}给出:1.市场主线 2.风险点 3.仓位建议。200字内。"""response = client.chat.completions.create(model="gpt-4o-mini",messages=[{"role""user""content": prompt}])return response.choices[0].message.content======== 风控 ========def add_position(code, price):positions[code] = pricedef check_risk():"""检查是否触及止损线"""alerts = []for code, buy_price in positions.items():df = pro.daily_basic(ts_code=code)if df.empty:continuecurrent = df.iloc[0]['close']pct = (current - buy_price) / buy_price * 100if pct < -MAX_LOSS:alerts.append(f"{code}亏损{abs(pct):.1f}%")return alertsdef show_alert(alerts):"""弹窗提醒"""if not alerts:returnroot = tk.Tk()root.title("风控提醒")root.attributes('-topmost'True)tk.Label(root, text="触及止损线:\n\n" + "\n".join(alerts),font=('微软雅黑'14), fg='red').pack(padx=20, pady=20)tk.Button(root, text="知道了", command=root.destroy,font=('微软雅黑'12)).pack(pady=10)root.mainloop()======== 每日运行 ========def daily_routine():print(f"\n{'='*40}\n{datetime.now().strftime('%Y-%m-%d %H:%M')}\n{'='*40}")movers = get_movers()sectors = get_sectors()print("【强势股】")for i, (_, r) in enumerate(movers.head(5).iterrows()):print(f" {i+1}{r['ts_code']} +{r['pct_chg']:.1f}%")print("【主力板块】")for i, s in enumerate(sectors[:5]):print(f" {i+1}{s['name']} +{s['inflow']//10000}万")print("\n【AI分析】")print(ai_analyze(movers, sectors))alerts = check_risk()if alerts:print(f"\n【风控】{len(alerts)}只触及止损线")show_alert(alerts)if __name__ == "__main__":add_position('000001.SZ'12.50)add_position('600519.SH'1800.00)schedule.every().day.at("09:00").do(daily_routine)print("AI炒股助手已启动,每9点自动分析\n按Ctrl+C停止")while True:schedule.run_pending()time.sleep(60)---

【使用方法】

  1. 去 tushare.pro 注册,获取token
  2. 去 openai官网 注册,获取api key
  3. 保存代码为 ai_trader.py,填入token
  4. 运行 python ai_trader.py
每天早上9点自动:扫描强势股→分析主力流向→AI给出建议→监控止损
最后说几句。
代码是工具,不是圣旨。
AI可以帮你分析、帮你监控,但最终执行的还是你自己。
止不止损,AI给提醒,执行在你。
你们都用AI炒过股吗?效果怎么样?
评论区聊聊。