Type/to search
2
Follow
502
Followers
一个散户的自我驯化实录:用AI拦下80%的烂交易
Discussions
Created 2025-10-10 16:01:11  Updated 2025-10-17 21:18:33
 8
 961

img

一个真实的场景

黑色星期五凌晨3点,你刷着手机看到BTC突破新低。心跳加速,手指悬在"买入"按钮上方。脑子里闪过无数念头:

  • "现在不抄底就晚了!"
  • "技术面怎么样?算了,来不及看了"
  • "我账户还有多少钱?管他呢,先买再说"

点下按钮。第二天醒来,暴跌8%,爆仓出局。

这就是90%散户的日常。我也是,直到搭建了这个工具。

核心思路:在冲动和下单之间加一道闸

这个工具做的事情很简单:

你的交易冲动 → 强制写下理由 → AI冷静分析 → 给出可执行方案 → 记录成长轨迹

关键在于三个独特设计:

1. 强制写下"为什么"

表单必须填写"交易思路"。当你试图用文字描述"为什么要做这笔交易"时,很多冲动就自然消退了。

❌ 模糊的冲动:"感觉要涨" ✅ 具体的理由:"突破120日均线+MACD金叉+成交量放大"

2. AI用多个维度验证你的逻辑

系统会自动收集4类数据并进行综合分析:

数据收集

持仓信息 ──┐ 情绪分析 ──┼──→ 数据合并 → AI分析 技术指标 ──┤ 交易思路 ──┘

AI分析的4个维度:

  • 0️⃣ 交易思路验证(最重要):找出认知偏差,验证逻辑是否成立
  • 1️⃣ 技术信号验证:MACD/RSI/ATR/OBV是否支持你的判断
  • 2️⃣ 情绪风险评估:市场情绪是贪婪还是恐慌
  • 3️⃣ 入场时机判断:现在能进还是等回调/突破

输出多个字段的完整分析:

json
{ "思路原文": "跌了5%,应该到底了", "思路评价": "不合理", "致命缺陷": "锚定效应——下跌5%不代表充分", "验证结果": "MACD=-213深度空头,RSI=31无底背离", "执行建议": "放弃交易", "建议入场价格": "不建议入场", "止损价格": "$115,000", "止盈目标1_价格": "$125,000", // ... }

3. 用交易日志记录你的成长轨迹

每次交易灵感分析自动存入CSV文件,一个月后打开你会看到:

日期思路评价致命缺陷执行建议
10/1不合理追涨杀跌放弃
10/5不合理锚定效应放弃
10/8部分合理止损设置过宽等待
10/12合理无明显缺陷立即执行

这就是你从冲动到理性的进化过程

系统架构

完整流程图

img

工作流触发 → 表单输入 → 空值判断 → [数据收集] → 数据整理 → AI分析 → 存储 → 导出CSV ↓ ┌────────────┼────────────┐ ↓ ↓ ↓ 持仓信息 情绪分析 技术指标

第1层:交易灵感捕获

节点名称: 输入交易火花
类型: Wait节点(表单模式)

javascript
// 表单字段配置 { "交易品种": "text", // 如BTC "交易方向": "下拉框选择", // LONG/SHORT/COVERLONG/COVERSHORT "交易数量": "number", // 如1 "交易思路": "text" // 核心!必须填写理由 }

关键设计:

  • 表单后接Switch节点判断交易火花存在,进行下一步AI验证

第2层:数据收集

路径1:收集持仓信息

节点名称: 收集持仓信息
类型: accountInfo节点

javascript
// 查询当前品种持仓 symbol: "{{ $json['交易品种'] }}_USDT.swap" operation: "getPosition" // 输出示例 { "symbol": BTC, // 持仓品种 "amount": 0.5, // 持仓数量 "price": 110003 // 方向 }

路径2:收集情绪数据

节点名称: 收集情绪数据 → 情绪信息分析
类型: MCP Client + AI Agent

第一步:获取新闻

javascript
// Alpha Vantage MCP接口 endpointUrl: "https://mcp.alphavantage.co/mcp?apikey='YOUR_KEY'" tool: "NEWS_SENTIMENT" tickers: "CRYPTO:{{ $json['交易品种'] }}"

第二步:AI提取情绪

json
// AI输出的结构化情绪分析 { "shortTermSentiment": { "category": "积极", "score": 0.7, "rationale": "24小时内突破关键阻力位,社交媒体热度上升" }, "longTermSentiment": { "category": "中性", "score": 0.0, "rationale": "监管不确定性仍存,机构入场速度放缓" } }

为什么情绪数据重要?
散户和机构最大的差距之一就是信息获取能力。通过近期新闻情绪分析,我们能及时了解:

  • 主流媒体对特定币种的报道倾向
  • 市场参与者的情绪变化趋势
  • 重大新闻事件的影响评估

这能填补关键的信息差

路径3:计算技术指标

节点名称: 信号指标计算
类型: tradingPlugin节点

javascript
function main(inputData) { const symbol = inputData + "_USDT.swap" const records = exchange.GetRecords(symbol) // 数据校验 if (records.length <= 10) { Log("Error: 数据不足"); return null; } // 计算技术指标(使用talib库) const macd = talib.MACD(records); const rsi = talib.RSI(records, 14); const atr = talib.ATR(records, 14); const obv = talib.OBV(records); // 获取最近10个值 function getLast10Values(arr) { if (!arr || arr.length === 0) return []; return arr.slice(-10); } return { MACD: { macd: getLast10Values(macd[0]), signal: getLast10Values(macd[1]), histogram: getLast10Values(macd[2]) }, RSI: getLast10Values(rsi), ATR: getLast10Values(atr), OBV: getLast10Values(obv) }; }

返回的技术指标:

  • MACD(趋势指标):金叉/死叉/背离
  • RSI(振荡指标):超买(>70)/超卖(<30)
  • ATR(波动率):用于动态止损
  • OBV(成交量):资金流向

路径4:交易意图本身

直接从表单传递,包含品种、方向、数量、交易思路

第3层:数据整理

节点名称: 数据整理
类型: Code节点(JavaScript)

javascript
// 初始化容器 let posData = null; let contentData = null; let technicalIndicators = null; let tradeIdea = null; // 遍历合并节点的所有输入 for (const item of items) { // =============== 持仓数据 =============== if (item.json.operation === 'getPosition' && item.json.result !== undefined) { posData = item.json.result; // 关键转换:数值→易读文本 posData.amount = posData.amount == 0 ? "无持仓" : posData.amount > 0 ? "多仓" : "空仓"; } // =============== 情感分析结果 =============== if (item.json.output !== undefined) { try { contentData = JSON.parse(item.json.output); } catch (e) { contentData = item.json.output; } } // =============== 技术指标数据 =============== if (item.json.MACD !== undefined || item.json.RSI !== undefined) { technicalIndicators = { "趋势指标MACD": item.json.MACD, "振荡指标RSI": item.json.RSI, "波动性指标ATR": item.json.ATR, "成交量分析OBV": item.json.OBV }; } // =============== 交易意图 =============== if (item.json["交易品种"] !== undefined) { tradeIdea = { "交易品种": item.json["交易品种"], "交易方向": item.json["交易方向"], "交易数量": item.json["交易数量"], "交易思路": item.json["交易思路"] // 核心! }; } } // =============== 返回汇总结果 =============== return [{ json: { "持仓数据": posData, "情感分析": contentData, "技术指标": technicalIndicators, "交易意图": tradeIdea } }];

为什么需要这个节点?

  • 四路数据格式不统一,需要规范化
  • 持仓数值需要转换成易读文本
  • 技术指标加上中文描述,方便AI理解

第4层:AI决策分析(核心中的核心)

节点名称: AI 交易火花鉴定
类型: Agent节点

这是整个系统的灵魂。Prompt设计了严格的分析框架:

分析框架(4维度):

0️⃣ 交易思路验证(优先级最高) - 该理由是否成立?(用技术指标+情绪数据验证) - 是否存在认知偏差?(追涨杀跌/锚定效应/赌徒谬误) - 风险收益比是否合理?(至少2:1) 1️⃣ 技术信号验证 - MACD方向是否支持交易方向? - RSI是否超买/超卖? - OBV与价格是否背离? 2️⃣ 情绪风险评估 - 短期情绪分数?(>0.6极度贪婪/<-0.6极度恐慌) - 是否存在黑天鹅事件? 3️⃣ 入场时机判断 - 当前价位是否合理? - 是否需要等待回调/突破?

输出要求:完整分析字段

json
{ "分析时间": "2025-10-11T10:30:00.000Z", "交易品种": "BTC", "交易方向": "LONG", "交易数量": "1", "思路原文": "跌了5%,应该到底了", "思路评价": "不合理", "验证结果": "MACD=-213深度空头,RSI=31无底背离,OBV持续流出", "致命缺陷": "锚定效应——下跌5%不构成反转理由", "执行建议": "放弃交易", "信心度": "高", "依据_思路验证": "交易逻辑存在严重缺陷", "依据_技术面": "MACD/RSI/OBV均显示空头趋势未结束", "依据_风险点": "盲目抄底可能遭遇二次探底,潜在亏损15%+", "建议入场价格": "不建议入场", "建议入场条件": "交易思路存在重大缺陷", "建议入场时间": "放弃当前计划", "止损价格": "$115,000", "止损理由": "跌破关键支撑位", "止盈目标1_价格": "$125,000", "止盈目标1_仓位": "50%", "止盈目标1_理由": "回测阻力位", "止盈目标2_价格": "$132,000", "止盈目标2_仓位": "剩余仓位", "止盈目标2_理由": "关键整数关口", "核心风险": "当前处于下跌趋势中段,抄底过早可能遭遇止损", "风险收益比": "0.5:1", "潜在收益百分比": "5%", "最大亏损百分比": "10%", "风险等级": "高风险", "操作摘要": "放弃抄底计划,等待MACD金叉+RSI底背离", "决策有效期": "直到技术面出现明确反转信号", "复核条件": "MACD金叉或RSI形成底背离或出现放量阳线" }

字段分析

  • 覆盖交易决策的所有关键要素
  • 完全扁平化,方便后续CSV存储
  • 每个字段都可执行,有明确的触发条件

特殊情况处理规则:

Prompt里专门定义了3种特殊情况:

  1. 当"交易思路"明显不合理时:

    • "执行建议"强制为"放弃交易"
    • "致命缺陷"必须明确指出认知偏差类型
    • "建议入场价格"写"不建议入场"
  2. 当市场极度波动时:

    • "风险等级"标注"极高风险"
    • "决策有效期"缩短至"1小时内有效"
  3. 当技术指标矛盾时:

    • "信心度"标注"低"
    • "执行建议"优先选择"等待入场"

第5层:结果存储和导出

节点1:AI分析整理存储

类型: Code节点

javascript
const rawData = $input.first().json.output; // 提取JSON内容的函数(处理可能的markdown包裹) function extractJSON(outputString) { const jsonMatch = outputString.match(/```json\n([\s\S]*?)\n```/); if (jsonMatch && jsonMatch[1]) { return JSON.parse(jsonMatch[1]); } // 如果没有markdown包裹,直接解析 return JSON.parse(outputString); } const result = extractJSON(rawData); Log("本次交易分析:", result); // 使用_G全局存储函数(关键!) let tradelog = _G('tradelog') || []; // 初始化兜底 // 添加最新记录 tradelog.push(result); // 持久化保存 _G('tradelog', tradelog); return tradelog;

_G函数的价值:

  • 数据持久化存储,重启工作流后依然存在
  • 可以跨工作流共享数据
  • 非常适合记录历史交易决策

节点2:转换文件

类型: convertToFile节点

把JSON数组转换成CSV格式,包含所有字段。

节点3:存储交易日志

类型: writeFile节点

保存到本地tradelog.csv

CSV文件的长期价值:

这个文件记录了你的交易思维演变过程:

第1周: 10次想法 → 7次"不合理" → 认知偏差:追涨杀跌 第2周: 8次想法 → 5次"不合理" → 开始意识到问题 第4周: 6次想法 → 3次"不合理" → 学会等待技术信号 第8周: 5次想法 → 1次"不合理" → 思路开始成熟 ...

这就是一个交易大师的成长日记

局限性(必须说清楚)

这个工具不是万能的:

不能预知未来: AI基于历史数据,黑天鹅来了一样失效
不能替代直觉: 老交易员的"盘感"很难量化
不能保证盈利: 只能提高决策质量,不保证每笔都赚
不能对抗极端行情: 市场疯狂时,理性分析可能反而吃亏

但它能做到:
✅ 让你知道每笔交易的风险
✅ 帮你识别认知偏差
✅ 记录你的成长轨迹
✅ 避免最低级的错误

改进方向

短期优化:

  • 接入更多数据源(链上数据、资金费率)
  • 增加历史回测模块
  • 用ATR动态计算止损

更多完善:

  • 对接交易所API实现半自动下单
  • 多个AI Agent投票(激进派vs保守派)
  • 根据市场环境调整情绪/技术权重

快速开始(5分钟)

第1步:导入工作流

点击文章末尾的策略连接,点击复制策略。

第2步:配置API密钥

需要配置3个API:

  1. Alpha Vantage(情绪数据):在MCP客户端节点配置
  2. OpenAI(AI模型):在两个OpenAI模型节点配置
  3. 交易所(持仓查询,实盘需要配置):在交易所板块配置

第3步:测试运行

  1. 点击"当点击执行工作流时"节点
  2. 填写表单测试(品种:BTC,方向:LONG,数量:1,思路:"BTC持续上涨!")
  3. 等待AI分析
  4. 分析结果整理,查看和存储
  5. 查看本地生成的tradelog.csv
bash
# 1. 进入托管者日志目录 cd ~/logs/storage # 2. 找到你的策略ID目录(如620669) cd 620669/files # 3. 查看交易日志 cat tradelog.csv

第4步:自我驯化

每次有交易冲动就填表单,让AI帮你冷静分析。建议每周末打开tradelog.csv复盘一次,看看自己最常犯哪些错误(追涨杀跌?盲目抄底?),持续使用1-2个月后,你会清晰看到自己从冲动到理性的进化轨迹。

最后想说的

这个工具最大的价值,不是帮你赚了多少钱,而是:

它逼着你在每次下单前问自己:我为什么要做这笔交易?

  • 如果你答不上来 → 这就是赌博
  • 如果你答得上来但AI指出缺陷 → 这是学习
  • 如果你和AI都认为合理但还是亏了 → 这是正常的试错

交易的终极目标,不是打败市场,而是理解自己。理解自己的贪婪、恐惧、和自以为是。

这个交易日志文件,就是你的自我认知之路。

技术支持: 欢迎在评论区讨论
免责声明: 工具仅供学习,交易有风险,请谨慎决策

如果这篇文章对你有帮助,欢迎分享给同样在交易路上挣扎的朋友。我们都需要一个冷静的声音,在冲动来临时说一句:"等等,你确定吗?"

策略链接https://www.fmz.com/strategy/511337
注意 :本框架只是初步实现,需要优化更多Bug处理和功能完善

Comment
All comments (7)

    这是对接的那个ai的api

    9 months ago

    claude sonnet 4.5

    9 months ago

    怎么不能用

    9 months ago

    已恢复

    10 months ago

    收到,谢谢

    10 months ago

    不客气

    10 months ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)