[TOC]

양적 거래 전문가에게 “좋은 진입 신호를 찾는 방법” 외에 가장 어려운 질문이 무엇인지 물어보면, “손절매는 어디에 설정해야 할까요?“라는 대답이 나올 것입니다.
손절매에 있어서는 너무 일찍 설정해도 후회하겠지만, 너무 늦게 설정하면 훨씬 더 후회하게 될 겁니다. 예를 들어, 암호화폐가 1.4%의 수익을 내는 것을 보면서 2% 수익 목표를 달성할 수 있을 거라고 자만하는 순간, 가격이 미끄럼틀처럼 곤두박질쳐 -0.1%까지 떨어지고 손절매 주문이 체결되는 상황을 생각해 보세요.
더욱 실망스러운 것은 이것이 단지 한 번의 사건이 아니라 반복적으로 발생하는 현상이라는 점입니다. 수익 곡선은 마치 대본 없는 스릴러 영화를 보는 것처럼 심하게 요동칩니다.
이 글에서는 실제 AI 기반 로테이션 전략을 바탕으로 시도해 본 다양한 손절매 기법을 공유합니다. 손절매 문제로 어려움을 겪는 분들께 도움이 되기를 바랍니다.
다음은 저희 전략 프레임워크에 대한 간략한 소개입니다.

이 전략은 유망한 암호화폐를 발굴하고 추세를 따라 좋은 수익을 올릴 수 있습니다. 그러나 암호화폐 시장은 변동성이 매우 커서 수익이 크게 감소하거나 손실로 전환되는 경우가 빈번하게 발생하기 때문에 손절매 문제는 항상 저희에게 중요한 과제입니다. 따라서 저희는 손절매 솔루션을 찾기 위한 오랜 여정을 시작했습니다.

트레일링 스톱로스(Trailing Stop-loss)는 가장 고전적인 손절매 기법입니다. 핵심 논리는 간단합니다.
포지션을 설정한 이후 최고 수익 지점을 추적하고, 가격이 최고점에서 설정된 비율 이상 되돌림될 때 손절매를 실행합니다.
이러한 접근 방식의 기본 철학은 “가격이 얼마나 오를지는 모르지만, 떨어지기 시작하면 빠져나와야 한다는 것은 안다”는 것입니다.
// 核心逻辑
const currentPnl = (currentPrice - entryPrice) / entryPrice; // 当前盈亏
const drawdown = maxProfit - currentPnl; // 回撤幅度
// 更新最高盈利
if (currentPnl > maxProfit) {
maxProfit = currentPnl;
_G(symbolKey, maxProfit);
}
// 触发止损
if (drawdown >= TRAILING_STOP_PERCENT) {
closePosition(coin, "移动止损");
}
이점:
결점:

손절매를 이동시키는 데 있어 “일률적인” 접근 방식은 정확도가 충분하지 않으므로, 수익 수준에 따라 다양한 전략을 설정할 것입니다.
마치 게임을 하는 것과 같습니다. 처음 시작하는 마을에서는 위험을 감수할 수 있지만, 최고 레벨 캐릭터에 좋은 장비를 갖췄을 때는 더 신중해야 합니다.
레이어드 디자인:
| 수익 범위 | 손절매 수준 | 모델 |
|---|---|---|
| < 0% | -1% | 손실을 방지하고 보호하세요. |
| 0% ~ 0.5% | 0% | 손익분기점과 손절매 |
| 0.5% ~ 1% | +0.5% | 수익 확정 및 손실 방지 |
| 1% ~ 1.5% | +1% | 수익 확정 및 손실 방지 |
| 1.5% ~ 2% | +1.5% | 수익 확정 및 손실 방지 |
| ≥ 2% | 최고점 -1.5% | 이동 스톱 |
const STOP_LOSS_TIERS = [
{ minProfit: -Infinity, maxProfit: 0.0001, stopAt: -0.01 },
{ minProfit: 0.0001, maxProfit: 0.005, stopAt: 0 },
{ minProfit: 0.005, maxProfit: 0.01, stopAt: 0.005 },
// ... 更多层级
{ minProfit: 0.02, maxProfit: Infinity, trailing: 0.015 }
];
// 根据最高盈利找到对应层级,返回止损位
function calculateStopLevel(maxProfit) {
for (let tier of STOP_LOSS_TIERS) {
if (maxProfit >= tier.minProfit && maxProfit < tier.maxProfit) {
return tier.trailing ? maxProfit - tier.trailing : tier.stopAt;
}
}
}
이점:
결점:

추세 추종 전략이므로 접근 방식을 단순화하고 수익을 극대화하며 손절매 주문만 사용하겠습니다. 때로는 단순함과 직접성이 미덕입니다.
저는 손실을 최소화하는 데에만 집중합니다. 수익을 얼마나 낼 수 있을지는 AI가 포지션을 청산할 시점을 결정하도록 맡겨둡니다.
진입 신호를 신뢰하고 최대 손실만 제어하면 되는 시나리오에 적합합니다.
// 简单到令人发指
if (currentPnl <= -FIXED_LOSS_PERCENT) {
closePosition(coin, "固定止损");
}
이점:
결점:

결과는 이상적이지 않았습니다. 수익을 놓치는 경우가 많았죠. 손절매에만 의존하는 것은 너무 극단적이므로, 양쪽 극단을 모두 고려해 보겠습니다.
동시에 저는 수익 목표와 손절매 한도를 설정합니다. 제가 원하는 금액과 감당할 수 있는 금액을 정확히 알고 있습니다.
굉장히 합리적인 말투네요. 마치 노련한 트레이더가 해야 할 말처럼요.
// 止盈检查
if (currentPnl >= FIXED_PROFIT_PERCENT) {
closePosition(coin, "固定止盈");
}
// 止损检查
if (currentPnl <= -FIXED_STOPLOSS_PERCENT) {
closePosition(coin, "固定止损");
}
이점:
결점:

결과는 여전히 만족스럽지 못했습니다. 차익 실현 한도와 불안정한 진입 신호가 겹쳐 손익률이 마이너스가 되었습니다. 단일 통화쌍으로는 수익을 안정적으로 관리하기 어렵기 때문에 접근 방식을 바꿔 여러 통화쌍의 통계를 결합해 보겠습니다.
수익 실현 및 손절매 수준은 보유 포지션 수에 따라 동적으로 계산됩니다. 팀 전체의 수익성만 확보된다면 개별 성과는 고려 대상이 아닙니다.
예를 들어, 각 포지션의 가격이 100U이고, 총 3개의 포지션을 보유하며, 목표 수익이 0.1인 경우, 목표 수익은 3 × 100 × 0.1 = 30U이고, 손절매 가격은 3 × 100 × -0.05 = -15U입니다.
// 计算动态止盈止损额度
const profitTarget = positionCount * AMOUNT_PER_POSITION * PROFIT_RATIO;
const lossLimit = positionCount * AMOUNT_PER_POSITION * LOSS_RATIO;
// 检查总体盈亏
if (totalProfit >= profitTarget) {
closeAllPositions("止盈");
}
if (totalProfit <= -lossLimit) {
closeAllPositions("止损");
}
이점:
결점:

다양한 손절매 방법을 시도해 본 후, 때때로 철학적인 딜레마에 빠지게 될 수 있습니다.
어쩌면 문제는 내 손절매 방법이 잘못된 것이 아니라, 애초에 자동 손절매 기능을 사용하지 말았어야 했다는 것일지도 모릅니다.
랜덤 모드: 자동 손절매 설정 없이 AI의 진입 및 청산 신호를 완전히 신뢰합니다.
적용 시나리오:
if (STOP_MODE === "随缘") {
// 什么都不做,一切交给AI信号
return { status: "随缘模式", message: "不进行自动平仓" };
}
‘흐름에 맡기기’ 모드는 매우 느긋해 보이지만, 강력한 신호 시스템과 일정 수준의 정신력이 필요합니다. 일반인들은 이 모드를 신중하게 사용해야 하며, 그렇지 않으면 당신보다 먼저 자금이 ‘흐름에 휩쓸려’ 버릴 수도 있습니다.
위 내용은 손절매 주문에 대한 전반적인 전략 프레임워크를 설명합니다. 하지만 실제 손절매 주문을 실행할 때는 더욱 정교한 설계 방식을 적용할 수 있습니다.
예를 들어핀 삽입 방지 손실 방지:

암호화폐 세계에는 “플래시 크래시”라고 불리는 잘 알려진 현상이 있습니다. 이는 갑작스럽고 급격한 가격 변동 후 빠른 회복이 이어지는 현상으로, 특히 손절매 주문을 설정해 둔 사람들을 노리는 것입니다.
이에 대응하는 한 가지 전략은 다음과 같습니다.손실을 즉시 막는 대신, 일정 기간 동안 손절매선에 닿는 횟수를 세고, 임계값에 도달했을 때만 손실을 막습니다.
논리는 이렇습니다. 일시적인 급등이라면 가격은 빠르게 회복될 것이지만, 진정한 추세 반전이라면 손절매선에 계속해서 부딪힐 것입니다.
// 核心逻辑
let triggerCount = 0;
const THRESHOLD = 3; // 需要触及3次才真正止损
// 每次检查时
if (currentPnl <= STOP_LOSS_PERCENT) {
triggerCount++;
if (triggerCount >= THRESHOLD) {
closePosition(coin, "防插针止损");
triggerCount = 0;
}
} else {
triggerCount = 0; // 价格恢复,重置计数
}
물론 이 방식에도 위험이 따릅니다. 시장이 실제로 폭락할 경우, “확실한 움직임을 기다리는” 동안 더 큰 손실을 입을 수도 있습니다. 따라서 가격 급등과 급락이 잦은 시장 환경에 더 적합합니다.
이와 유사한 세련된 디자인들이 많이 있으며, 핵심 아이디어는 동일합니다.전반적인 전략 프레임워크 내에서 특정 시나리오에 맞춰 최적화가 이루어집니다.

위의 방법들을 테스트해본 결과, 다소 직관에 반하는 결론에 도달했습니다.
이 접근 방식에서는 가장 간단한 트레일링 스톱로스 전략이 전반적으로 가장 좋은 성과를 보입니다.
왜 그랬을까요?
이 전략의 목적은 유망한 암호화폐를 선별하는 것이므로, 일부 암호화폐의 급등이 다른 암호화폐의 손실을 가릴 수 있습니다. 따라서, 보다 유연한 이동 손절매 주문을 사용하면 추세를 더 잘 포착할 수 있습니다.
하지만 그렇다고 해서 트레일링 스톱 로스가 모든 전략에 적용 가능한 만능 해결책이라는 의미는 아닙니다. 결론은 다음과 같습니다.
솔직히 말씀드리면, 손절매 문제를 완전히 해결한 것은 아닙니다. 현재로서는 비교적 만족스러운 해결책을 찾았을 뿐입니다.
우리는 앞으로 계속 탐구해 볼 가치가 있다고 생각하는 몇 가지 방향이 있습니다.
변동성에 기반한 동적 매개변수 조정현재 손절매 매개변수는 고정되어 있지만, 변동성은 통화 및 시장 상황에 따라 크게 다릅니다. 이론적으로, 최근 손실 조정 시도 횟수(ATR)를 기반으로 손절매 수준을 자동으로 조정할 수 있다면 시장 상황에 더 잘 적응할 수 있을 것입니다. 물론 “이론적으로”와 “실제로”는 큰 차이가 있는 경우가 많습니다.
각 통화별로 다른 전략이 사용됩니다.비트코인과 알트코인의 가격 변동은 완전히 다르기 때문에 동일한 손절매 논리를 사용하는 것은 본질적으로 부적절합니다. 각 코인의 과거 변동성 특성을 기반으로 가장 적합한 손절매 방법을 자동으로 적용하는 것이 더 나은 방법일 수 있습니다.
대기 시간을 고려하여포지션을 개설할 때 손절매 주문을 더 타이트하게 설정하면 원금을 보호할 수 있습니다. 포지션을 오래 보유할수록 추세는 더욱 안정되고, 추세의 변동성이 커질수록 손절매 범위를 넓혀 유연성을 확보할 수 있습니다. 이러한 논리는 타당해 보이지만, 시간 경과에 따른 수익 감소 함수를 구체적으로 어떻게 설계해야 할지는 아직 더 연구해야 할 부분입니다.
더 많은 신호 소스를 결합하세요현재 손절매 주문은 오로지 가격에만 기반하지만, 비정상적인 거래량, 펀딩 비율 변화, 심지어 뉴스 심리와 같은 신호들을 결합하면 “정상적인 조정”인지 “추세 반전”인지를 더욱 정확하게 판단할 수 있을 것입니다. 물론 신호 소스가 많아지고 시스템이 복잡해질수록 문제 발생 가능성도 커집니다.
이 아이디어들은 현재 ‘아이디어’ 단계에 머물러 있습니다. 실제로 실행되어 결과가 나오면 모두와 공유하겠습니다.
이 시점에서 여러분은 “어떤 유형의 손절매를 사용해야 할까요?“라는 질문을 던질 수 있습니다.
제 대답은 다음과 같습니다.둘 다 한번 시도해 보세요.
모든 전략에는 고유한 “성격”이 있고, 모든 시장에는 고유한 “성향”이 있습니다. 전략과 시장 사이의 시너지를 찾아야 합니다. 손절매 방법은 단지 도구일 뿐이며, 도구를 효과적으로 사용하기 위한 전제 조건은 도구를 이해하는 것입니다.
손절매에 대한 더 나은 아이디어가 있다면 언제든지 공유해 주세요. 결국 양적 거래의 길에서 우리 모두는 시행착오를 통해 배우는 여행자이니까요.
마지막으로 조언 하나 드리겠습니다.
손실을 막는다는 것은 패배를 인정하는 것이 아니라, 다음번에 더 나은 공격을 준비하는 것입니다.
성공적인 거래 되시길 바랍니다! 🚀