
블랙 프라이데이 새벽 3시, 휴대폰을 스크롤하다 보니 비트코인(BTC)이 신저가를 기록했습니다. 심장이 쿵쾅거리고, 손가락은 “매수” 버튼 위에 맴돌고 있습니다. 수많은 생각이 머릿속을 맴돌고 있습니다.
버튼을 눌렀습니다. 다음 날 눈을 떴을 때, 시장은 8%나 폭락해 있었고 저는 완전히 망가져 있었습니다.
이는 개인 투자자의 90%의 일상입니다.저도 이 도구를 만들기 전까지는 그랬습니다.
이 도구의 기능은 간단합니다.
你的交易冲动 → 强制写下理由 → AI冷静分析 → 给出可执行方案 → 记录成长轨迹
핵심은세 가지 독특한 디자인:
양식에는 “거래 아이디어”를 적어야 합니다. “왜 이 거래를 하고 싶은가”를 말로 설명하려고 하면 많은 충동이 자연스럽게 가라앉을 것입니다.
❌ 模糊的冲动:"感觉要涨"
✅ 具体的理由:"突破120日均线+MACD金叉+成交量放大"
시스템은 자동으로 4가지 유형의 데이터를 수집하고 포괄적인 분석을 수행합니다.
데이터 수집
持仓信息 ──┐
情绪分析 ──┼──→ 数据合并 → AI分析
技术指标 ──┤
交易思路 ──┘
AI 분석의 4가지 차원:
여러 필드에 대한 완전한 분석을 출력합니다.:
{
"思路原文": "跌了5%,应该到底了",
"思路评价": "不合理",
"致命缺陷": "锚定效应——下跌5%不代表充分",
"验证结果": "MACD=-213深度空头,RSI=31无底背离",
"执行建议": "放弃交易",
"建议入场价格": "不建议入场",
"止损价格": "$115,000",
"止盈目标1_价格": "$125,000",
// ...
}
각 트레이딩 인사이트 분석은 CSV 파일로 자동 저장됩니다. 한 달 후에 열면 다음과 같은 내용을 확인하실 수 있습니다.
| 날짜 | 아이디어 평가 | 치명적인 결함 | 구현 권장 사항 |
|---|---|---|---|
| 10⁄1 | 무모한 | 추격과 추락 | 포기하다 |
| 10⁄5 | 무모한 | 앵커링 효과 | 포기하다 |
| 10⁄8 | 부분적으로 합리적 | 손절매가 너무 넓게 설정되어 있습니다. | 기다리다 |
| 10⁄12 | 합리적인 | 눈에 띄는 결함 없음 | 즉시 실행 |
이것은 충동적에서 합리적으로 진화하는 것입니다。

工作流触发 → 表单输入 → 空值判断 → [数据收集] → 数据整理 → AI分析 → 存储 → 导出CSV
↓
┌────────────┼────────────┐
↓ ↓ ↓
持仓信息 情绪分析 技术指标
노드 이름: 트랜잭션 스파크 입력
유형: 대기 노드(폼 모드)
// 表单字段配置
{
"交易品种": "text", // 如BTC
"交易方向": "下拉框选择", // LONG/SHORT/COVERLONG/COVERSHORT
"交易数量": "number", // 如1
"交易思路": "text" // 核心!必须填写理由
}
키 디자인:
노드 이름: 위치 정보 수집
유형: accountInfo 노드
// 查询当前品种持仓
symbol: "{{ $json['交易品种'] }}_USDT.swap"
operation: "getPosition"
// 输出示例
{
"symbol": BTC, // 持仓品种
"amount": 0.5, // 持仓数量
"price": 110003 // 方向
}
노드 이름: 감정 데이터 수집 → 감정 정보 분석
유형: MCP Client + AI Agent
1단계: 뉴스를 얻으세요
// Alpha Vantage MCP接口
endpointUrl: "https://mcp.alphavantage.co/mcp?apikey='YOUR_KEY'"
tool: "NEWS_SENTIMENT"
tickers: "CRYPTO:{{ $json['交易品种'] }}"
2단계: AI가 감정을 추출합니다
// AI输出的结构化情绪分析
{
"shortTermSentiment": {
"category": "积极",
"score": 0.7,
"rationale": "24小时内突破关键阻力位,社交媒体热度上升"
},
"longTermSentiment": {
"category": "中性",
"score": 0.0,
"rationale": "监管不确定性仍存,机构入场速度放缓"
}
}
감정 데이터는 왜 중요한가요?
개인 투자자와 기관 투자자 간의 가장 큰 격차 중 하나는 정보 접근성입니다. 최근 뉴스 심리를 분석하면 다음과 같은 최신 정보를 얻을 수 있습니다.
이것은 할 수 있습니다중요한 정보 격차 채우기。
노드 이름: 신호 표시기 계산
유형: 트레이딩 플러그인 노드
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)
};
}
반환된 기술 지표:
유형, 방향, 수량을 포함하여 양식에서 직접 전달합니다.거래 아이디어。
노드 이름: 데이터 수집
유형: 코드 노드(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 거래 스파크 식별
유형: 에이전트 노드
이것이 전체 시스템의 핵심입니다. Prompt는 엄격한 분석 프레임워크를 설계했습니다.
분석 프레임워크(4차원):
0️⃣ 交易思路验证(优先级最高)
- 该理由是否成立?(用技术指标+情绪数据验证)
- 是否存在认知偏差?(追涨杀跌/锚定效应/赌徒谬误)
- 风险收益比是否合理?(至少2:1)
1️⃣ 技术信号验证
- MACD方向是否支持交易方向?
- RSI是否超买/超卖?
- OBV与价格是否背离?
2️⃣ 情绪风险评估
- 短期情绪分数?(>0.6极度贪婪/<-0.6极度恐慌)
- 是否存在黑天鹅事件?
3️⃣ 入场时机判断
- 当前价位是否合理?
- 是否需要等待回调/突破?
출력 요구 사항: 완전한 분석 필드
{
"分析时间": "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形成底背离或出现放量阳线"
}
현장 분석
특수 상황 처리 규칙:
Prompt는 구체적으로 세 가지 특별한 경우를 정의합니다.
“거래 아이디어”가 명백히 비합리적일 때:
시장이 극도로 변동성이 큰 경우:
기술 지표가 충돌할 때:
유형: 코드 노드
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 함수의 값:
유형: convertToFile 노드
모든 필드를 포함하여 JSON 배열을 CSV 형식으로 변환합니다.
유형: writeFile 노드
로컬에 저장tradelog.csv。
CSV 파일의 긴 값:
이 파일은 귀하의 기록을 기록합니다거래 사고의 진화:
第1周: 10次想法 → 7次"不合理" → 认知偏差:追涨杀跌
第2周: 8次想法 → 5次"不合理" → 开始意识到问题
第4周: 6次想法 → 3次"不合理" → 学会等待技术信号
第8周: 5次想法 → 1次"不合理" → 思路开始成熟
...
이것은 트레이딩 마스터의 성장 일기입니다.。
이 도구는 만병통치약이 아닙니다.
❌ 미래를 예측할 수 없다: AI는 과거 데이터를 기반으로 하기 때문에 블랙스완이 나타나더라도 실패할 것입니다.
❌ 직감을 대신할 수 없다: 베테랑 트레이더들의 ‘시장 감각’을 정량화하기는 어렵다
❌ 수익성은 보장되지 않습니다: 이는 의사결정의 질을 향상시킬 수 있지만, 모든 거래가 수익성이 있을 것이라는 보장은 없습니다.
❌ 극한의 시장 상황에 저항할 수 없음: 시장이 미친 듯이 움직일 때, 합리적인 분석은 손실을 초래할 수 있습니다.
하지만 다음과 같은 일이 가능합니다.
✅ 각 거래의 위험을 알려드립니다
✅ 인지적 편견을 식별하는 데 도움이 됩니다
✅ 성장 궤적을 기록하세요
✅ 가장 기본적인 실수를 피하세요
단기 최적화:
더 많은 개선 사항:
기사 마지막에 있는 전략 링크를 클릭하고 전략 복사를 클릭하세요.
3개의 API를 구성해야 합니다.
tradelog.csv# 1. 进入托管者日志目录
cd ~/logs/storage
# 2. 找到你的策略ID目录(如620669)
cd 620669/files
# 3. 查看交易日志
cat tradelog.csv
거래하고 싶은 충동이 들 때마다 양식을 작성하여 AI가 차분하게 상황을 분석하도록 하세요. tradelog.csv 파일을 매주 주말마다 열어 가장 흔한 실수(상승과 하락만 쫓는 것? 하락할 때 맹목적으로 매수하는 것?)를 검토해 보는 것을 추천합니다. 한두 달 동안 꾸준히 사용하다 보면 충동적인 투자에서 합리적인 투자로 변화하는 모습을 확실히 보실 수 있을 것입니다.
이 도구의 가장 큰 가치는 얼마나 많은 돈을 벌 수 있게 해주는지가 아니라,
각 주문 전에 스스로에게 이렇게 질문하게 됩니다. 왜 이 거래를 해야 할까요?
거래의 궁극적인 목표는 시장을 이기는 것이 아니라자신을 이해하세요. 자신의 탐욕, 두려움, 독선을 이해하세요.
이 거래 로그 파일은 당신이 스스로를 알아가는 길입니다.
기술 지원: 댓글 섹션에서 토론을 환영합니다
부인 성명: 이 도구는 학습용으로만 사용됩니다. 거래는 위험합니다. 신중하게 결정하시기 바랍니다.
이 글이 도움이 되었다면, 트레이딩에 어려움을 겪고 있는 친구들에게 공유해 주세요. 우리 모두는 충동이 들 때 “잠깐만, 정말이야?“라고 말해줄 차분한 목소리가 필요합니다.
전략적 링크 :https://www.fmz.com/m/strategy/511337 알아채다:이 프레임워크는 단지 예비 구현일 뿐이며 버그 처리 및 기능 개선을 위해 최적화가 필요합니다.