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

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

    10 months ago

    claude sonnet 4.5

    10 months ago

    怎么不能用

    10 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)