<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wealth Engine</title>
	<atom:link href="https://wealth-engine.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://wealth-engine.com</link>
	<description>데이터로 검증하는 퀀트 트레이딩 연구일지</description>
	<lastBuildDate>Thu, 15 Oct 2026 23:00:00 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>손절을 없애 보았다: 저변동 신호의 청산 규칙 워크포워드</title>
		<link>https://wealth-engine.com/lowvol-exit-rule-walkforward/</link>
					<comments>https://wealth-engine.com/lowvol-exit-rule-walkforward/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2476</guid>

					<description><![CDATA[9편에서 저변동 신호의 우위가 2×ATR 손절 때문에 계좌로 옮겨지지 않는다고 썼다. 그래서 손절을 빼고 N일 뒤 청산하는 규칙을 결정 구간에서 고르고 확인 구간에서 한 번 돌렸다. 승률 17%→42%. 그런데 낙폭은 더 깊어졌고, 수익은 여전히 한 종목이었다.<p>Read more at <a href="https://wealth-engine.com/lowvol-exit-rule-walkforward/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">9편이 남긴 질문</h2>



<p class="wp-block-paragraph">9편의 결론은 둘이었다. 저변동 골든크로스는 60일 뒤 시장을 이길 확률이 확인 구간에서도 60% 가까이 된다는 것, 그리고 그 우위가 계좌에는 옮겨지지 않는다는 것. 두 번째의 원인으로 손절을 지목했다. 저변동 종목은 ATR이 작으니 2×ATR 손절 폭이 3%대로 좁아지고, 거래의 82%가 60일까지 가 보지도 못하고 잘려 나갔다. 통계가 말하는 우위는 &quot;60일 보유했을 때&quot;의 우위였다.</p>



<p class="wp-block-paragraph">그렇다면 손절을 빼면 어떻게 되는가. 이번 기록은 그 질문에 답하는 워크포워드다. 절차는 9편과 같다. 규칙은 2020년 10월부터 2023년 12월까지의 신호로만 고르고, 2024년 1월부터 2026년 9월까지는 한 번만 돌린다. 데이터는 8편의 신호별 결과표 그대로이고, 시세 원본은 미니PC 밖으로 나오지 않았다.</p>



<p class="wp-block-paragraph">한 가지 제약을 먼저 적는다. 신호별 결과표에는 진입 후 1, 5, 10, 20, 60거래일 뒤의 수익만 있고 일별 경로가 없다. 그래서 &quot;손절 폭을 3×ATR로 넓히면&quot;이나 &quot;트레일링 스탑을 걸면&quot; 같은 후보는 이 데이터로는 못 돌린다. 이번에 비교할 수 있는 것은 손절 없이 N일 뒤에 무조건 파는 시간 청산뿐이다. 손절 폭을 바꾸는 실험은 시세가 있는 미니PC 안에서 따로 돌려야 하고, 다음 기록의 일이다.</p>



<h2 class="wp-block-heading">결정 구간: 며칠 보유할 것인가</h2>



<p class="wp-block-paragraph">저변동 신호(ATR/가격 2.05% 이하, 9편에서 고정한 임계치)에 대해 5일, 10일, 20일, 60일 보유 후 청산의 네 후보를 결정 구간에서 비교했다. 선택 기준은 시장 대비 초과수익 중앙값이 가장 높은 후보. 미리 적어 놓고 돌렸다.</p>



<p class="wp-block-paragraph">20일이 뽑혔다. 초과수익 중앙값 +1.3%, 시장을 이긴 비율 58%. 60일은 +1.1%, 56%로 근소하게 뒤졌고, 5일과 10일은 우위가 작았다. 같은 저변동 신호를 2×ATR 손절로 거래한 결정 구간 성적은 순수익 중앙값 −3.5%, 승률 18%였다. 손절 없이 20일 보유하면 순수익 중앙값 −1.0%, 승률 43%. 아직 결정 구간 이야기다.</p>



<h2 class="wp-block-heading">확인 구간</h2>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/10/we10-03-stop-vs-time.webp" alt="같은 신호, 다른 청산 — 확인 구간에서 2×ATR 손절과 20일 시간 청산의 승률·중앙값·평균 비교" class="wp-image-2473" title="손절을 없애 보았다: 저변동 신호의 청산 규칙 워크포워드" srcset="https://wealth-engine.com/wp-content/uploads/2026/10/we10-03-stop-vs-time.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-03-stop-vs-time-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-03-stop-vs-time-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-03-stop-vs-time-768x410.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">확인 구간 저변동 신호. 2×ATR 손절: 승률 17%, 중앙값 −3.3%. 20일 시간 청산: 승률 42%, 중앙값 −0.8%. 평균은 둘 다 +0.5%.</figcaption></figure>



<p class="wp-block-paragraph">확인 구간에서도 같은 그림이 나왔다. 2×ATR 손절은 승률 17%, 순수익 중앙값 −3.3%. 20일 시간 청산은 승률 42%, 중앙값 −0.8%. 승률은 두 배 반, 중앙값은 손실에서 거의 본전으로 올라왔다. 초과수익 중앙값은 +1.2%, 시장을 이긴 비율 60%로 결정 구간과 거의 같다.</p>



<p class="wp-block-paragraph">그런데 평균은 안 움직였다. 거래당 순수익 평균이 손절 규칙에서 +0.5%, 시간 청산에서도 +0.5%다. 손절을 빼면 작은 손실이 줄고 작은 이익이 늘지만, 큰 손실도 그대로 안게 되고, 큰 이익은 20일에 잘려 작아진다. 합쳐 보면 평균은 제자리다.</p>



<h2 class="wp-block-heading">계좌로 옮기면</h2>



<p class="wp-block-paragraph">9편과 같은 포트폴리오를 돌렸다. 최대 5종목 선착순, 쿨다운 60일, 우선주·스팩 제외, 비용 0.3%. 손절이 없으면 1% 룰로 사이즈를 정할 수 없으므로 종목당 자본의 20%로 고정했다. 9편의 손절 포트폴리오도 상한이 20%였으니 같은 크기다.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/10/we10-04-oos-equity.webp" alt="확인 구간 포트폴리오 자본 곡선 — 20일 시간 청산과 2×ATR 손절, 2025-12-19 하루 점프" class="wp-image-2474" title="손절을 없애 보았다: 저변동 신호의 청산 규칙 워크포워드" srcset="https://wealth-engine.com/wp-content/uploads/2026/10/we10-04-oos-equity.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-04-oos-equity-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-04-oos-equity-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-04-oos-equity-768x410.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">확인 구간(2024-01~2026-09) 5종목 포트폴리오. 20일 청산 +80%, 손절 +28%. 2025-12-19 하루 +71%는 천일고속 한 건.</figcaption></figure>



<p class="wp-block-paragraph">최종 수익은 +80%. 손절 규칙의 +28%보다 훨씬 크다. 그런데 곡선을 보면 2024년에 −15%를 잃고 2025년 중반까지 횡보하다가 2025년 12월 19일 하루에 71% 뛴다. 그 점프도 천일고속이다. 9편에서 60일 보유로 +232%를 냈던 그 신호가 20일 뒤에는 +343%였다. 20일째가 고점이었던 것이다. 자본의 20%를 넣었으니 계좌가 하루에 70% 올랐다.</p>



<p class="wp-block-paragraph">그리고 최대 낙폭은 −21%에서 −27%로 오히려 깊어졌다. 손절이 없으니 20일 안에 크게 빠지는 종목을 그대로 안고 간다. 확인 구간 저변동 신호 중 20일 수익이 −30% 밑인 것이 9건, 최악은 −44%였다. 승률이 42%여도 낙폭은 줄지 않았다.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/10/we10-05-mdd-excheonil.webp" alt="청산 규칙이 바꾼 것과 못 바꾼 것 — 최대 낙폭과 천일고속 제외 수익" class="wp-image-2475" title="손절을 없애 보았다: 저변동 신호의 청산 규칙 워크포워드" srcset="https://wealth-engine.com/wp-content/uploads/2026/10/we10-05-mdd-excheonil.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-05-mdd-excheonil-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-05-mdd-excheonil-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/10/we10-05-mdd-excheonil-768x410.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">최대 낙폭 −21%→−27%. 천일고속 제외 시 20일 청산 −1%, 60일 청산 −3%, 코스피 한정 +1%, 손절 규칙 −7%.</figcaption></figure>



<p class="wp-block-paragraph">천일고속 한 건을 빼면 20일 청산 포트폴리오는 −1%다. 손절 규칙의 −7%보다는 덜 잃지만 본전이다. 60일 청산은 −3%, 코스피로 좁혀도 +1%. 어느 청산 규칙을 골라도 &quot;한 종목을 빼면 본전&quot;이라는 구조는 그대로다. +80%라는 숫자는 한 종목이 20일 만에 네 배가 된 사건의 기록이지 규칙의 성적이 아니다.</p>



<h2 class="wp-block-heading">바뀐 것과 안 바뀐 것</h2>



<p class="wp-block-paragraph">바뀐 것. 손절을 빼자 저변동 신호의 통계적 우위가 거래 승률에 반영됐다. 17%였던 승률이 42%가 됐고, 거래당 순수익 중앙값이 −3.3%에서 −0.8%로 올라왔다. 9편의 진단, 즉 &quot;손절이 우위를 잘라먹고 있었다&quot;는 확인 구간에서 맞았다.</p>



<p class="wp-block-paragraph">안 바뀐 것. 이 규칙으로 돈을 벌지는 못한다. 거래당 평균은 +0.5%로 그대로고, 수익의 전부가 한 종목이라는 사실은 손절이 있을 때나 없을 때나 같았다. 8편에서 &quot;꼬리가 전부&quot;라고 썼고, 9편에서 &quot;필터가 아니라 한 종목이 이겼다&quot;고 썼는데, 청산 규칙을 바꿔도 그 문장은 바뀌지 않았다. 청산은 손실의 모양을 바꾸는 도구이지 수익의 원천을 만드는 도구가 아니었다.</p>



<p class="wp-block-paragraph">나빠진 것. 최대 낙폭이 −21%에서 −27%로 깊어졌다. 손절을 빼는 것의 비용은 이렇게 나타났고, 이 확인 구간에서는 그나마 20일 안에 반토막 난 종목이 없어서 이 정도였다. 다음 구간에서도 없으리라는 보장은 없다. 손절 없이 20일 보유는 &quot;승률을 올리는 규칙&quot;이지 &quot;안전한 규칙&quot;이 아니다.</p>



<h2 class="wp-block-heading">바뀌는 것</h2>



<p class="wp-block-paragraph">크론잡 후보 목록의 저변동 표시는 그대로 두고, 표시된 후보에 &quot;20일 시간 청산 가정 시 결과&quot;를 사후에 기록하기 시작한다. 실제 매매는 아직 아니다. 이 시리즈에서 실제 자본이 들어가는 조건은 두 가지로 정해 둔다. 첫째, 한 종목을 빼도 확인 구간에서 플러스일 것. 둘째, 손절 폭을 바꾼 실험이 시세 데이터로 검증될 것. 둘 다 아직이다.</p>



<h2 class="wp-block-heading">다음 기록을 위한 메모</h2>



<p class="wp-block-paragraph">두 가지다. 첫째, 9편에서 예고한 저변동 유니버스 벤치마크. 저변동 종목을 아무거나 샀을 때와 저변동 골든크로스를 샀을 때의 차이가 있는지. 이게 없으면 지금까지의 우위는 골든크로스가 아니라 저변동 효과일 뿐이다. 둘째, 손절 폭 실험. 2×ATR 대신 3×, 4×, 고정 5%, 트레일링을 미니PC 안에서 돌린다. 둘 다 시세 원본이 필요해서 미니PC 안에서 실행하고 결과표만 꺼낸다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="has-small-font-size wp-block-paragraph"><strong>[법적 고지 및 면책 조항]</strong><br>이 블로그의 모든 글은 개인적인 퀀트 트레이딩 알고리즘 백테스트 및 매매 일지 기록용이다.<br>특정 종목의 매수/매도를 추천하거나 투자 타이밍을 알려주는 리딩(Reading) 목적이 절대 아님을 명시한다.<br>블러드하운드 퀀트 랩은 타인의 투자금을 대리 운용하거나 금전을 요구하는 유사수신행위, 1:1 투자 자문 및 유료 리딩방 운영을 일절 하지 않는다.<br>이곳의 개인적인 데이터를 참고하여 발생한 모든 투자의 최종 판단과 손실에 대한 법적 책임은 버튼을 누른 본인에게 있다.</p>
<p>Read more at <a href="https://wealth-engine.com/lowvol-exit-rule-walkforward/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/lowvol-exit-rule-walkforward/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>가설은 살아남았다, 계좌는 아직이다: 저변동·코스피 규칙의 워크포워드 검증</title>
		<link>https://wealth-engine.com/vwma-lowvol-kospi-walkforward/</link>
					<comments>https://wealth-engine.com/vwma-lowvol-kospi-walkforward/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Sun, 04 Oct 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2466</guid>

					<description><![CDATA[8편에서 사후에 발견한 "저변동·코스피 신호가 낫다"는 패턴을 2020~2023년으로 규칙을 고정하고 2024~2026년에서 확인했다. 신호 수준에서는 통과했다. 시장을 이긴 비율 45%→60%. 그런데 자본 제약 포트폴리오로 옮기면 수익의 전부가 한 종목이었다.<p>Read more at <a href="https://wealth-engine.com/vwma-lowvol-kospi-walkforward/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">지난 기록의 숙제</h2>



<p class="wp-block-paragraph">8편에서 12,361개 골든크로스를 전수 검증했고, 시그널 자체에는 우위가 없다는 결론을 냈다. 다만 사후에 두 가지 패턴이 보였다. 신호 당시 변동성이 낮은 종목일수록 성적이 좋았고, 코스피가 코스닥보다 나았다. 그리고 이렇게 적었다. &quot;이건 사후에 찾은 패턴이다. 워크포워드를 통과해야 룰이 된다.&quot;</p>



<p class="wp-block-paragraph">이번 기록은 그 검증이다. 규칙은 2020년 10월부터 2023년 12월까지의 신호 5,959개로만 정했다. 확인은 2024년 1월부터 2026년 9월까지의 신호 6,402개에서 한 번만 했다. 확인 구간의 결과를 보고 규칙을 손대는 순간 워크포워드가 아니게 되므로, 아래 숫자는 첫 실행의 출력 그대로다. 데이터는 8편과 같다. 시세 원본은 미니PC 밖으로 나오지 않았고, 신호별 결과표만 가지고 계산했다.</p>



<h2 class="wp-block-heading">규칙을 정하는 구간</h2>



<p class="wp-block-paragraph">변동성은 신호일의 ATR20을 종가로 나눈 값으로 정의했다. &quot;낮다&quot;의 기준을 어디에 둘지는 결정 구간에서만 골랐다. 하위 10%, 20%, 30%, 40%, 50%의 다섯 후보 중 60일 초과수익 중앙값이 가장 높은 것을 고르되, 표본이 500개 밑으로 떨어지면 제외한다는 선택 규칙을 먼저 적어 놓고 돌렸다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/09/we09-02-is-grid.webp" alt="결정 구간(2020-10~2023-12) 변동성 하위 10~50% 후보별 60일 초과수익 중앙값과 시장 이긴 비율: 하위 10%(ATR/가격 ≤ 2.05%)가 선택됨" class="wp-image-2462" title="가설은 살아남았다, 계좌는 아직이다: 저변동·코스피 규칙의 워크포워드 검증" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we09-02-is-grid.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-02-is-grid-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-02-is-grid-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-02-is-grid-768x410.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">결정 구간에서만 고른 변동성 임계치. 다섯 후보 중 하위 10%가 뽑혔고, 절대값 2.05%로 고정해 확인 구간에 넘겼다.</figcaption></figure>



<p class="wp-block-paragraph">하위 10%가 뽑혔다. ATR이 가격의 2.05% 이하인 종목이다. 이 임계치는 비율이 아니라 절대값으로 고정해서 확인 구간에 넘겼다. 확인 구간에서 다시 분위를 잘라 쓰면 그것도 미래 정보를 쓰는 셈이기 때문이다. 코스피 규칙은 고를 파라미터가 없으니 그대로 넘겼다.</p>



<p class="wp-block-paragraph">결정 구간의 성적은 이렇다. 전체 신호의 60일 초과수익 중앙값 −1.8%, 시장을 이긴 비율 44.9%. 저변동만 +1.1%, 55.7%. 코스피만 −1.1%, 46.5%. 둘을 겹치면 +1.8%, 59.4%. 반대편, 그러니까 요란한 코스닥 종목은 −2.9%, 43.5%였다.</p>



<h2 class="wp-block-heading">확인 구간</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/09/we09-03-is-vs-oos.webp" alt="결정 구간(IS)과 확인 구간(OOS)에서 전체·코스피·저변동·저변동+코스피 규칙별 60일 초과수익 중앙값과 시장 이긴 비율 — 네 규칙 모두 방향 유지" class="wp-image-2463" title="가설은 살아남았다, 계좌는 아직이다: 저변동·코스피 규칙의 워크포워드 검증" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we09-03-is-vs-oos.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-03-is-vs-oos-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-03-is-vs-oos-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-03-is-vs-oos-768x410.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">규칙을 정한 구간(회색)과 확인한 구간(색). 네 규칙 모두 방향이 유지됐고, 숫자도 거의 같다.</figcaption></figure>



<p class="wp-block-paragraph">네 규칙 모두 방향이 유지됐다. 전체 신호는 확인 구간에서도 −2.1%, 45.3%로 나빴다. 저변동 규칙은 +1.8%, 59.3%. 코스피 규칙은 +0.4%, 50.8%. 겹치면 +2.2%, 59.8%. 결정 구간과 거의 같은 숫자다.</p>



<p class="wp-block-paragraph">이게 우연일 가능성도 계산했다. 저변동 신호와 전체 신호의 60일 초과수익 중앙값 차이를 부트스트랩 2,000회로 돌리면 95% 구간이 +3.1%p에서 +4.7%p다. 0을 포함하지 않는다. 코스피 규칙은 +1.5%p에서 +3.5%p로 역시 0 밖이지만 폭이 작다. 겹친 규칙은 +3.3%p에서 +5.5%p.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/09/we09-04-oos-yearly.webp" alt="2024·2025·2026년 확인 구간에서 전체·코스피·저변동·저변동+코스피 규칙별 시장을 이긴 신호 비율: 저변동 규칙은 3년 모두 50% 초과" class="wp-image-2464" title="가설은 살아남았다, 계좌는 아직이다: 저변동·코스피 규칙의 워크포워드 검증" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we09-04-oos-yearly.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-04-oos-yearly-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-04-oos-yearly-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-04-oos-yearly-768x410.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">확인 구간 연도별. 저변동 규칙은 3년 모두 50%를 넘겼고, 코스피만은 턱걸이였다.</figcaption></figure>



<p class="wp-block-paragraph">연도별로 잘라도 저변동 규칙은 2024년, 2025년, 2026년 모두 시장을 이긴 비율이 50%를 넘겼다. 66%, 53%, 63%다. 코스피 규칙은 50%, 50%, 53%로 턱걸이다. 코스피 규칙의 기여는 대부분 &quot;코스닥의 요란한 종목을 빼는 것&quot;이고, 그 일은 변동성 규칙이 이미 하고 있다. 결정 구간의 변동성 컷을 그대로 써서 확인 구간을 5등분해도 +1.4%, −0.7%, −2.5%, −3.7%, −8.0%로 단조롭게 내려간다. 8편에서 본 계단이 확인 구간에서 다시 나타났다.</p>



<p class="wp-block-paragraph">여기까지가 좋은 소식이다. 시그널 수준에서 이 규칙은 살아남았다.</p>



<h2 class="wp-block-heading">계좌로 옮기면</h2>



<p class="wp-block-paragraph">8편과 같은 거래 규칙을 확인 구간에만 얹었다. 손절 2×ATR20(최소 2%), 최장 60거래일, 왕복 비용 0.3%, 쿨다운 60일, 우선주·스팩 제외, 최대 5종목 선착순, 사이즈는 1% 룰과 자본/5 중 작은 쪽.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/09/we09-05-oos-portfolio.webp" alt="2024~2026 확인 구간 최대 5종목 선착순 포트폴리오 자산곡선: 전체 -8%, 코스피 +42%, 저변동 +28%, 저변동+코스피 +39%이나 천일고속 +232% 1건이 대부분" class="wp-image-2465" title="가설은 살아남았다, 계좌는 아직이다: 저변동·코스피 규칙의 워크포워드 검증" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we09-05-oos-portfolio.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-05-oos-portfolio-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-05-oos-portfolio-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we09-05-oos-portfolio-768x410.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">확인 구간 포트폴리오. 곡선은 좋아 보이지만 2026년 2월의 점프 하나가 전부다. 그 한 종목을 빼면 손실이다.</figcaption></figure>



<p class="wp-block-paragraph">곡선만 보면 성공이다. 전체 신호 −8%, 코스피만 +42%, 저변동만 +28%, 저변동+코스피 +39%. 그런데 곡선의 모양이 이상하다. 2026년 2월 25일 하루에 40%p 넘게 뛴다. 천일고속 한 종목이다. 2025년 11월 19일 신호, 60거래일 보유 후 청산, 순수익 +232%. 저변동이고 코스피라 세 필터 포트폴리오에 전부 들어갔다.</p>



<p class="wp-block-paragraph">이 한 건을 빼고 다시 돌리면 저변동+코스피는 −1%, 저변동만은 −7%, 코스피만은 +13%다. 전체 신호 포트폴리오(−8%)와 사실상 같다. 필터가 이긴 게 아니라 한 종목이 이긴 것이다.</p>



<p class="wp-block-paragraph">왜 신호의 통계는 통과했는데 계좌는 안 되는가. 답은 손절에 있다. 저변동 종목의 손절 폭 중앙값은 3.2%다. 전체 신호는 7.8%. 조용한 종목은 ATR이 작으니 2×ATR도 작고, 그래서 정상적인 흔들림에도 잘린다. 저변동 거래의 82%가 손절로 끝났다. 승률 17%. 60일 초과수익 중앙값이 +2%인 종목군을 3% 손절로 사면, 60일까지 가 보지도 못하고 대부분 나온다. 통계가 말하는 우위는 &quot;60일 보유했을 때&quot;의 우위인데, 거래 규칙이 그 보유를 허락하지 않았다.</p>



<p class="wp-block-paragraph">그리고 사이즈. 1% 룰은 손절이 2%면 자본의 50%를 넣으라고 한다. 자본/5 캡에 걸려 20%로 잘렸지만, 20%도 한 종목이 +232%를 내면 계좌가 +46% 뛰는 크기다. 8편에서 &quot;꼬리가 전부&quot;라고 썼는데, 꼬리가 좋은 쪽으로 붙으면 이렇게 되고 나쁜 쪽으로 붙으면 반대로 된다. 이번 확인 구간은 좋은 쪽이었을 뿐이다.</p>



<h2 class="wp-block-heading">지금 말할 수 있는 것과 없는 것</h2>



<p class="wp-block-paragraph">말할 수 있는 것. 신호 당시 ATR/가격이 2% 이하인 골든크로스는, 아무 조건 없는 골든크로스보다 60일 뒤 시장을 이길 확률이 확인 구간에서도 약 14%p 높았다. 이건 사후 패턴이 아니라 검증된 관찰이다.</p>



<p class="wp-block-paragraph">말할 수 없는 것. 그 우위가 골든크로스 때문인지 저변동 때문인지 모른다. 변동성이 낮은 종목이 이후 수익이 좋은 현상은 이 시그널과 무관하게 알려져 있다. 비교 대상이 &quot;같은 날 전 종목 중앙값&quot;이라, 저변동 종목 전체와 비교했을 때도 이기는지는 아직 재지 않았다. 이걸 재려면 미니PC 안에서 저변동 유니버스 전체의 수익 분포를 뽑아야 한다. 다음 실험이다.</p>



<p class="wp-block-paragraph">그리고 계좌 수익을 말할 수 없다. 확인 구간의 플러스는 한 종목이고, 그 종목을 빼면 손실이다.</p>



<h2 class="wp-block-heading">바뀌는 것</h2>



<p class="wp-block-paragraph">크론잡의 후보 목록에 ATR/가격을 찍기로 한 것은 8편에서 정했고, 이제 그 값이 2% 이하인 후보에 표시를 붙인다. 아직 자동으로 사지 않는다. 표시된 후보가 얼마나 나오는지, 하루 4~8개 중 몇 개인지 한 달 세어 본다. 결정 구간 기준으로는 열에 하나다.</p>



<p class="wp-block-paragraph">거래 규칙은 손을 봐야 한다. 저변동 종목에 2×ATR 손절을 그대로 쓰는 것이 문제라는 게 이번 실험의 두 번째 결론인데, 그렇다고 확인 구간을 보면서 손절 폭을 바꾸면 워크포워드를 스스로 깨는 것이 된다. 그래서 손절 규칙의 후보(고정 %, ATR 배수 확대, 시간 손절만)를 결정 구간에서 다시 고르고, 확인 구간에서 한 번만 돌리는 절차를 그대로 반복한다.</p>



<h2 class="wp-block-heading">다음 기록을 위한 메모</h2>



<p class="wp-block-paragraph">두 가지다. 첫째, 저변동 유니버스 벤치마크. 골든크로스가 저변동 안에서도 뭔가를 고르는지, 아니면 저변동이 전부인지. 둘째, 저변동 종목용 청산 규칙의 워크포워드. 결정 구간에서 고르고 확인 구간에서 한 번. 둘 다 결과가 나쁘면 나쁜 대로 적는다. 이 시리즈에서 규칙은 검증을 통과했을 때만 규칙이 된다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>[법적 고지 및 면책 조항]</strong><br>이 블로그의 모든 글은 개인적인 퀀트 트레이딩 알고리즘 백테스트 및 매매 일지 기록용이다.<br>특정 종목의 매수/매도를 추천하거나 투자 타이밍을 알려주는 리딩(Reading) 목적이 절대 아님을 명시한다.<br>블러드하운드 퀀트 랩은 타인의 투자금을 대리 운용하거나 금전을 요구하는 유사수신행위, 1:1 투자 자문 및 유료 리딩방 운영을 일절 하지 않는다.<br>이곳의 개인적인 데이터를 참고하여 발생한 모든 투자의 최종 판단과 손실에 대한 법적 책임은 버튼을 누른 본인에게 있다.</p>
<p>Read more at <a href="https://wealth-engine.com/vwma-lowvol-kospi-walkforward/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/vwma-lowvol-kospi-walkforward/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>내 시그널의 진짜 성적표: 골든크로스 12,361개를 6년치 실제 시세로 돌려보니</title>
		<link>https://wealth-engine.com/vwma-golden-cross-real-backtest/</link>
					<comments>https://wealth-engine.com/vwma-golden-cross-real-backtest/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2460</guid>

					<description><![CDATA[매일 텔레그램으로 받는 KRX 일봉 VWMA50/200 골든크로스 시그널을 2020~2026년 실제 시세로 전수 백테스트한 기록. 승률 20%, 시장을 이긴 비율 46%, 수익은 상위 5% 신호에만 있었다. 자본 제약 포트폴리오는 6년간 손실. 그래서 무엇을 바꾸는가.<p>Read more at <a href="https://wealth-engine.com/vwma-golden-cross-real-backtest/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">먼저, 정정</h2>



<p class="wp-block-paragraph">앞선 기록들에 적은 승률 59%, MDD 8.08%, 44타점 같은 숫자는 실제 매매나 실제 백테스트의 출력이 아니었다. 시스템을 설계하면서 &quot;이 정도면 이렇게 될 것&quot;이라고 놓은 가정치였고, 그 가정 위에서 1% 룰과 비용의 구조를 설명했다. 구조 설명 자체는 지금도 유효하다. 하지만 숫자는 아니다.</p>



<p class="wp-block-paragraph">이 기록부터는 실측치만 쓴다. 실측치가 좋지 않다는 것을 미리 말해 둔다.</p>



<h2 class="wp-block-heading">실제로 돌아가고 있는 것</h2>



<p class="wp-block-paragraph">내가 매일 오후 1시 10분에 텔레그램으로 받는 메시지가 있다. 미니PC에서 크론잡이 돌면서 공공데이터포털의 KRX 일봉 시세를 받아, 코스피·코스닥 전 종목 중 거래량 가중 이동평균 50일선(VWMA50)이 200일선(VWMA200)을 그날 처음 상향 돌파한 종목만 골라 보낸다. 하루에 보통 4~8개. 조건은 이것뿐이다. 전일 VWMA50 ≤ VWMA200, 당일 VWMA50 &gt; VWMA200. 거래량은 주식 수 기준, 유효 일봉(종가·거래량 양수) 201개 이상.</p>



<p class="wp-block-paragraph">문제는 이 시그널이 좋은지 나쁜지 한 번도 제대로 재 본 적이 없다는 것이었다. 크론잡은 후보만 남기고 시세는 저장하지 않았고, 나는 매일 오는 목록을 눈으로만 봤다.</p>



<p class="wp-block-paragraph">그래서 같은 코드, 같은 API, 같은 규칙으로 과거 전체를 돌렸다. 시세 원본은 미니PC 밖으로 내보내지 않고(공공데이터의 재배포 제한 때문에) 계산만 안에서 한 뒤 결과 통계만 꺼냈다. 최근 30일 크론 결과와 대조하니 19일이 완전히 일치했고, 나머지도 이력 길이 차이로 설명됐다. 즉 아래 숫자는 &quot;매일 내 폰에 오는 그 시그널&quot;의 과거 성적이다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/09/we08-02-distribution.webp" alt="12,361개 골든크로스 신호의 60일 초과수익 분포 히스토그램: 중앙값 -2.0%, 평균 +4.9%, 상위 5%(+53% 이상) 꼬리 강조" class="wp-image-2456" title="내 시그널의 진짜 성적표: 골든크로스 12,361개를 6년치 실제 시세로 돌려보니" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we08-02-distribution.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-02-distribution-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-02-distribution-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-02-distribution-768x410.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">12,361개 신호의 60일 초과수익 분포. 중앙값은 음수인데 평균은 양수다. 오른쪽으로 길게 늘어진 꼬리가 그 차이를 만든다.</figcaption></figure>



<h2 class="wp-block-heading">12,361개의 성적</h2>



<p class="wp-block-paragraph">API가 시세를 제공하는 2020년부터 시작해 201개 봉이 쌓인 2020년 10월 23일이 첫 신호다. 2026년 9월 23일까지 1,443거래일, 3,132종목, 신호 12,361개. 하루 중앙값 7개, 많은 날은 38개.</p>



<p class="wp-block-paragraph">진입은 신호일 다음다음 날 시가로 잡았다. 공공데이터 API가 확정 시세를 하루 뒤에 내놓기 때문에, 실제로 내가 신호를 받는 시점이 그렇다. 그리고 각 신호의 이후 수익을 &quot;같은 날 전 종목 수익의 중앙값&quot;과 비교했다. 시장 전체가 오른 날 산 종목이 오른 것은 시그널의 공이 아니니까.</p>



<p class="wp-block-paragraph">결과. 신호 후 20일 수익 중앙값 −2.3%, 시장 대비 초과수익 중앙값 −0.9%, 시장을 이긴 신호 비율 46.5%. 60일로 늘려도 −2.0%, 45.1%. 동전 던지기보다 조금 나쁘다.</p>



<p class="wp-block-paragraph">그런데 평균은 다르다. 20일 초과수익 평균 +2.1%, 60일 +4.9%. 중앙값이 음수인데 평균이 양수라는 건 분포의 오른쪽 꼬리가 아주 길다는 뜻이다. 실제로 60일 초과수익 상위 5%(+53% 이상)를 빼면 전체 합계가 양수에서 음수로 뒤집힌다. 최대값은 +1,673%. 골든크로스 12,361개 중 600개가 나머지 11,700개의 손실을 전부 메우고도 남았다.</p>



<p class="wp-block-paragraph">이 사실이 내 시그널의 정체를 말해 준다. VWMA 골든크로스는 &quot;이길 종목을 고르는 필터&quot;가 아니다. &quot;가끔 폭등하는 종목이 5% 섞여 있는 후보 목록&quot;이다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="600" src="https://wealth-engine.com/wp-content/uploads/2026/09/we08-03-yearly.webp" alt="2020년 하반기부터 2026년까지 연도별 시장을 이긴 신호 비율과 초과수익 중앙값: 2020H2만 54%, 이후 43~47%" class="wp-image-2457" title="내 시그널의 진짜 성적표: 골든크로스 12,361개를 6년치 실제 시세로 돌려보니" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we08-03-yearly.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-03-yearly-300x150.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-03-yearly-1024x512.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-03-yearly-768x384.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">연도별 성적. 2020년 하반기만 시장을 이겼고, 그 뒤 여섯 해는 전부 시장에 뒤졌다.</figcaption></figure>



<p class="wp-block-paragraph">연도별로 보면 더 분명하다. 2020년 하반기에만 시장을 이긴 비율이 54%였고, 2021년부터 2026년까지 여섯 해는 43~47%로 전부 시장에 뒤졌다. 2020년 하반기는 모든 것이 오르던 구간이었다. 골든크로스가 통한 게 아니라 시장이 통한 것이다.</p>



<h2 class="wp-block-heading">거래로 바꾸면</h2>



<p class="wp-block-paragraph">신호의 통계와 계좌의 성적은 다르다. 그래서 지난 기록들의 룰을 그대로 얹어 거래로 바꿔 봤다. 손절은 진입가 아래 2×ATR20(최소 2%), 보유는 최장 60거래일, 왕복 비용 0.3%(거래세·수수료·슬리피지), 60거래일 안에 같은 종목이 다시 나오면 무시, 우선주·스팩 제외. 그러면 10,389거래가 남는다.</p>



<p class="wp-block-paragraph">승률 20.2%. 평균 순수익 +0.5%. 손익비(profit factor) 1.07. 거래의 76%가 손절로 끝났다. 평균이 양수인 건 여기서도 꼬리 덕분이다.</p>



<p class="wp-block-paragraph">자본 제약을 걸면 그림이 바뀐다. 하루 7개, 많게는 38개 신호를 다 살 수 없으니 &quot;최대 N종목까지, 먼저 온 순서로&quot; 사는 포트폴리오를 돌렸다. 사이즈는 1% 룰과 자본/N 중 작은 쪽.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="620" src="https://wealth-engine.com/wp-content/uploads/2026/09/we08-04-portfolio.webp" alt="자본 제약 포트폴리오 6년 자산곡선: 최대 5·10·20종목, 손절 2×ATR, 60세션 보유, 비용 0.3%, 1% 룰" class="wp-image-2458" title="내 시그널의 진짜 성적표: 골든크로스 12,361개를 6년치 실제 시세로 돌려보니" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we08-04-portfolio.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-04-portfolio-300x155.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-04-portfolio-1024x529.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-04-portfolio-768x397.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">선착순으로 최대 N종목까지 사는 포트폴리오의 6년 자산곡선. 어떤 N을 골라도 손실이다.</figcaption></figure>



<p class="wp-block-paragraph">최대 5종목이면 6년 누적 −22%, 최대 낙폭 −53%. 최대 10종목이면 −63%. 20종목이면 −55%. 데드크로스 청산을 추가해도 −70%. 2021년부터 2024년까지는 매년 −9%에서 −25%씩 잃었고, 2025년과 2026년만 소폭 플러스였다.</p>



<p class="wp-block-paragraph">선착순이라는 게 얼마나 임의적인 규칙인지는 안다. 그래서 이 곡선은 &quot;시그널의 성적&quot;이 아니라 &quot;선택 규칙이 없을 때의 성적&quot;이다. 12,361개 중 6~12%만 살 수 있는 상황에서 어떤 것을 고르느냐가 결과를 전부 결정하는데, 지금 내 시스템에는 그 규칙이 없다. 시그널이 시스템인 줄 알았는데, 시그널은 시스템의 입력이었다.</p>



<h2 class="wp-block-heading">데이터가 가리키는 방향</h2>



<p class="wp-block-paragraph">전수 결과를 자르고 나누다 보면 몇 가지가 보인다. 두 개만 적는다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="600" src="https://wealth-engine.com/wp-content/uploads/2026/09/we08-05-volatility.webp" alt="변동성(ATR20/종가) 5분위별 60세션 초과수익 중앙값 +1.2%에서 -8.4%까지, 코스피 -0.5% 대 코스닥 -3.1%" class="wp-image-2459" title="내 시그널의 진짜 성적표: 골든크로스 12,361개를 6년치 실제 시세로 돌려보니" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we08-05-volatility.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-05-volatility-300x150.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-05-volatility-1024x512.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we08-05-volatility-768x384.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">같은 신호인데 조용한 종목에서만 통했다. 변동성 하위 20%만 초과수익이 양수다. 아직 룰이 아니라 가설이다.</figcaption></figure>



<p class="wp-block-paragraph">변동성으로 5등분하면 단조롭게 내려간다. 신호 당시 ATR이 가격 대비 가장 낮은 종목군(가장 조용한 20%)은 60일 초과수익 중앙값 +1.2%로 유일하게 양수고, 가장 요란한 20%는 −8.4%다. 코스피 신호(−0.5%)가 코스닥(−3.1%)보다 낫다. 요란한 코스닥 종목의 골든크로스는 대개 이미 한 번 튀어 오른 뒤의 신호였고, 그 뒤엔 되돌림이 왔다.</p>



<p class="wp-block-paragraph">이건 사후에 찾은 패턴이다. 12,361개를 잘라 보면 어떤 조각이든 좋아 보이는 것이 나오게 되어 있다. 지난 기록에서 말한 과최적화의 독이 정확히 이 지점에 있다. 그래서 이 둘은 아직 룰이 아니라 다음 검증의 가설이다. 2020~2023년으로 규칙을 정하고 2024~2026년에서 확인하는 워크포워드를 통과해야 룰이 된다.</p>



<h2 class="wp-block-heading">바뀌는 것</h2>



<p class="wp-block-paragraph">크론잡은 그대로 둔다. 후보를 뽑는 일은 잘하고 있다. 바뀌는 건 후보를 받은 뒤다.</p>



<p class="wp-block-paragraph">첫째, 후보 목록에 변동성(ATR/가격)과 시장 구분을 같이 찍는다. 아직 필터로 쓰지 않고 기록만 한다. 둘째, 시리즈에서 백테스트 수치를 말할 때는 앞으로 이 실측 파이프라인의 출력만 쓴다. 셋째, &quot;얼마나 벌었는가&quot;보다 &quot;시장을 이겼는가&quot;를 먼저 본다. 초과수익 기준이 없으면 2020년 하반기 같은 구간이 시그널을 실제보다 좋아 보이게 만든다.</p>



<h2 class="wp-block-heading">다음 기록을 위한 메모</h2>



<p class="wp-block-paragraph">저변동·코스피 가설을 워크포워드로 검증한다. 규칙을 정하는 구간과 확인하는 구간을 나누고, 확인 구간에서도 시장을 이기는지 본다. 통과하지 못하면 그것도 그대로 적는다. 이 시리즈에서 가장 중요한 숫자는 승률이 아니라, 지어내지 않았다는 사실이니까.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>[법적 고지 및 면책 조항]</strong><br>이 블로그의 모든 글은 개인적인 퀀트 트레이딩 알고리즘 백테스트 및 매매 일지 기록용이다.<br>특정 종목의 매수/매도를 추천하거나 투자 타이밍을 알려주는 리딩(Reading) 목적이 절대 아님을 명시한다.<br>블러드하운드 퀀트 랩은 타인의 투자금을 대리 운용하거나 금전을 요구하는 유사수신행위, 1:1 투자 자문 및 유료 리딩방 운영을 일절 하지 않는다.<br>이곳의 개인적인 데이터를 참고하여 발생한 모든 투자의 최종 판단과 손실에 대한 법적 책임은 버튼을 누른 본인에게 있다.</p>
<p>Read more at <a href="https://wealth-engine.com/vwma-golden-cross-real-backtest/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/vwma-golden-cross-real-backtest/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백테스트가 말하지 않는 것: 수수료·슬리피지가 1% 룰을 갉아먹는 방식</title>
		<link>https://wealth-engine.com/backtest-vs-live-cost-gap/</link>
					<comments>https://wealth-engine.com/backtest-vs-live-cost-gap/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Mon, 21 Sep 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2452</guid>

					<description><![CDATA[백테스트 44타점에 수수료·슬리피지·집행 지연을 가정치로 주입해 "수식이 약속한 수익"과 "계좌에 찍힐 수익"의 간격을 계산한 기록. 손절이 타이트할수록 비용이 리스크 예산을 잠식하는 구조와, 그래서 추가한 손절 거리 하한 룰.<p>Read more at <a href="https://wealth-engine.com/backtest-vs-live-cost-gap/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">같은 시그널, 다른 숫자</h2>



<p class="wp-block-paragraph">[정정 · 2026-10-01] 이 글에 적힌 44타점, 누적 수익 64%→46% 같은 시뮬레이션 수치는 실제 매매나 실제 백테스트의 출력이 아니라 시스템 설계 단계의 가정치였다. 구조 설명은 유효하지만 숫자는 그렇지 않다. 실제로 운영 중인 시그널을 실제 시세로 전수 검증한 결과는 8편 「내 시그널의 진짜 성적표」(<a href="https://wealth-engine.com/vwma-golden-cross-real-backtest/)%EC%97%90" target="_blank" rel="noopener">https://wealth-engine.com/vwma-golden-cross-real-backtest/)에</a> 있다. 이 시리즈는 그 글부터 실측치만 쓴다.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">무인 시스템을 돌린 지 몇 주. 텔레그램 알림은 정확했고, 손절은 한 번도 밀리지 않았다. 그런데 n8n이 한 줄씩 남긴 기록을 트레이딩뷰 전략 테스터의 거래 목록 옆에 놓고 보니, 같은 시그널인데 숫자가 조금씩 어긋나 있었다.</p>



<p class="wp-block-paragraph">백테스트는 84,120.5에 샀다고 했는데 실제 체결은 84,163이었다. 청산도 마찬가지로 몇십 달러씩 불리한 쪽으로 밀려 있었다. 한 번은 아무것도 아니다. 그런데 이게 44번 쌓이면, 그리고 앞으로 수백 번 쌓이면 어떻게 되는가.</p>



<p class="wp-block-paragraph">문제는 내 실전 로그가 아직 44번을 채우려면 한참 멀었다는 것이다. 몇 주치 기록으로 &#8220;괴리가 얼마다&#8221;라고 말하는 건 표본 셋으로 승률을 논하는 것과 같다. 그래서 순서를 바꿨다. 실전 로그가 쌓이기를 기다리는 대신, 백테스트의 44타점에 비용을 가정치로 주입해 본다. 실전에서 확인된 어긋남의 크기를 가정으로 넣고, 수식이 약속한 수익이 얼마나 깎이는지를 먼저 계산해 두는 것이다.</p>



<h2 class="wp-block-heading">백테스트가 모르는 세 가지 비용</h2>



<p class="wp-block-paragraph">전략 테스터는 봉 마감 가격에 정확히 체결됐다고 가정한다. 현실에는 그 사이에 세 가지가 끼어든다.</p>



<p class="wp-block-paragraph"><strong>수수료.</strong> 진입과 청산, 두 번 낸다. 시장가(테이커) 기준 편도 0.05% 안팎이 흔하다. 왕복 0.1%.</p>



<p class="wp-block-paragraph"><strong>슬리피지.</strong> 시장가 주문은 호가창을 먹으면서 체결된다. 조용한 시간대에는 0.02~0.05%, 봉 마감 직후 시그널이 몰리는 순간이나 변동성이 터진 새벽에는 0.1% 이상이 나온다. 이것도 왕복이다.</p>



<p class="wp-block-paragraph"><strong>집행 지연.</strong> 봉이 마감되고, 트레이딩뷰가 알림을 쏘고, n8n이 잔고를 조회하고, 주문이 거래소에 닿기까지 몇 초. 그 몇 초 동안 가격은 이미 움직이고 있다. 추세 추종 진입은 정의상 가격이 달리기 시작할 때 들어가므로, 지연은 거의 항상 불리한 방향으로 작용한다.</p>



<p class="wp-block-paragraph">셋 다 각각은 소수점 아래 숫자다. 그래서 백테스트를 볼 때는 무시하고 싶어진다. 나도 그랬다.</p>



<h2 class="wp-block-heading">시나리오 여섯 개, 같은 44타점</h2>



<p class="wp-block-paragraph">같은 44번의 거래에 비용만 다르게 주입했다. 가정은 이렇다. 승률 59%, 손실은 항상 시드의 1%, 손절 거리는 ATR 기준 평균 3.5%, 2022년 빙하기의 8연패 구간 포함. 지난 기록들의 조건 그대로다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="640" src="https://wealth-engine.com/wp-content/uploads/2026/09/we07-02-scenarios.webp" alt="같은 44타점에 비용 시나리오 여섯 개를 주입한 결과: 무비용 64%부터 최악 46%까지 누적 수익률 비교" class="wp-image-2448" title="백테스트가 말하지 않는 것: 수수료·슬리피지가 1% 룰을 갉아먹는 방식" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we07-02-scenarios.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-02-scenarios-300x160.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-02-scenarios-1024x546.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-02-scenarios-768x410.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">같은 44타점, 비용만 다르게. 왼쪽 끝이 백테스트가 약속한 숫자, 오른쪽으로 갈수록 계좌에 찍힐 숫자에 가까워진다.</figcaption></figure>



<p class="wp-block-paragraph">비용이 0인 이상적 세계에서 이 44타점은 시드를 약 64% 불린다. 수수료만 넣으면 62%. 슬리피지를 편도 0.05% 얹으면 59%. 슬리피지가 0.10%로 커지면 57%. 여기에 집행 지연 10bp를 더하면 55%. 수수료·슬리피지·지연이 전부 나쁜 쪽으로 겹치는 최악의 경우에는 46%다.</p>



<p class="wp-block-paragraph">이상적 세계와 현실적 세계(수수료 0.05 + 슬리피지 0.10 + 지연) 사이의 간격은 약 9%포인트. 7년 치 수익의 14%가 백테스트에 없던 비용으로 증발한다. 최악의 경우는 28%다.</p>



<p class="wp-block-paragraph">MDD도 움직인다. 지난 기록에서 자랑했던 8.08%는 수수료만 반영한 숫자였다. 슬리피지와 지연까지 넣으면 8.8% 근처로 올라간다. 파산하지 않는 몸은 여전히 파산하지 않지만, 보험증서에 적힌 숫자보다는 조금 더 아프다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="620" src="https://wealth-engine.com/wp-content/uploads/2026/09/we07-04-equity-curves.webp" alt="44타점 시뮬레이션에 비용 시나리오를 주입한 자산 곡선 비교: 무비용 백테스트와 비용 반영 시나리오들 사이의 간격" class="wp-image-2450" title="백테스트가 말하지 않는 것: 수수료·슬리피지가 1% 룰을 갉아먹는 방식" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we07-04-equity-curves.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-04-equity-curves-300x155.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-04-equity-curves-1024x529.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-04-equity-curves-768x397.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">하나의 곡선은 약속이고, 여러 개의 곡선은 범위다. 8연패 구간에서 간격이 가장 크게 벌어진다.</figcaption></figure>



<h2 class="wp-block-heading">진짜 문제는 손절 거리에 있었다</h2>



<p class="wp-block-paragraph">여기까지는 예상 범위였다. 수익이 좀 깎이는구나, 정도. 그런데 비용을 거래별로 뜯어보다가 이상한 패턴을 발견했다.</p>



<p class="wp-block-paragraph">비용이 큰 거래는 큰 거래가 아니었다. 손절이 타이트한 거래였다.</p>



<p class="wp-block-paragraph">이유는 1% 룰 자체에 있다. 투입 금액 = (시드 × 1%) ÷ 손절 퍼센트. 손절이 -1%로 가까우면 시드의 100%를 투입하고, -5%로 멀면 20%만 투입한다. 그런데 수수료와 슬리피지는 투입 금액에 비례한다. 손절이 가까울수록 포지션이 커지고, 포지션이 클수록 비용이 커진다. 리스크는 언제나 1%로 고정인데, 비용은 손절 거리에 반비례해서 불어난다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="620" src="https://wealth-engine.com/wp-content/uploads/2026/09/we07-03-cost-vs-stop.webp" alt="손절 거리별 왕복 비용이 리스크 예산(1%)에서 차지하는 비율: -1% 30%, -1.5% 20%, -2% 15%, -3% 10%, -5% 6%" class="wp-image-2449" title="백테스트가 말하지 않는 것: 수수료·슬리피지가 1% 룰을 갉아먹는 방식" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we07-03-cost-vs-stop.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-03-cost-vs-stop-300x155.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-03-cost-vs-stop-1024x529.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-03-cost-vs-stop-768x397.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">리스크는 항상 1%인데, 비용은 손절 거리에 반비례한다. 손절 -1%에서는 리스크의 30%가 비용이다.</figcaption></figure>



<p class="wp-block-paragraph">왕복 비용을 0.3%(수수료 0.1 + 슬리피지 0.2)로 잡으면, 손절 -5%인 거래에서 비용은 리스크 예산 1%의 6%다. 손절 -3%면 10%. 손절 -2%면 15%. 손절 -1.5%면 20%. 그리고 손절 -1%인 거래에서는 비용이 리스크의 30%다.</p>



<p class="wp-block-paragraph">다시 말해, 손절을 -1%에 걸고 시드 전부를 넣는 순간 나는 &#8220;틀리면 1%를 잃는&#8221; 게임이 아니라 &#8220;틀리면 1.3%를 잃고, 맞아도 0.3%를 먼저 떼이는&#8221; 게임을 하고 있었다. 1% 룰의 수학이 비용 때문에 뒤에서 조용히 무너지는 지점이다.</p>



<h2 class="wp-block-heading">그래서 추가한 룰: 손절 거리 하한</h2>



<p class="wp-block-paragraph">로직을 다시 최적화하지는 않았다. 과최적화의 독은 지난 기록에서 충분히 이야기했다. 대신 포지션 사이징 노드에 조건 하나를 추가했다.</p>



<p class="wp-block-paragraph"><strong>손절 거리가 진입가 대비 2% 미만이면 진입하지 않는다.</strong></p>



<p class="wp-block-paragraph">이유는 위 표 그대로다. 2% 하한을 두면 비용이 리스크 예산의 15%를 넘지 않는다. 그 이하로 타이트한 손절은 백테스트에서는 훌륭해 보이지만(투입이 커서 이겼을 때 크게 먹는다), 실전에서는 비용이 그 이점을 거의 다 가져간다. ATR이 극단적으로 쪼그라든 횡보 구간에서 주로 나오는 시그널이라 어차피 승률도 낮은 편이었다.</p>



<p class="wp-block-paragraph">n8n 코드 노드는 이제 이렇게 생겼다.</p>



<pre class="wp-block-code"><code>const stopPct = Math.abs($json.price - $json.stop) / $json.price;
if (stopPct &lt; 0.02) {
  return &#91;{ json: { ...$json, skip: true, reason: 'stop_too_tight' } }];
}
const seed = $json.balance;
const size = Math.min((seed * 0.01) / stopPct, seed);
return &#91;{ json: { ...$json, size: Math.floor(size) } }];</code></pre>



<p class="wp-block-paragraph">건너뛴 시그널도 기록은 남긴다. 나중에 &#8220;하한 때문에 놓친 거래&#8221;가 실제로 비용을 빼고도 이익이었는지 검증하려면, 안 들어간 거래의 기록이 들어간 거래의 기록만큼 중요하다.</p>



<h2 class="wp-block-heading">백테스트에 비용을 넣는 법</h2>



<p class="wp-block-paragraph">전략 테스터 설정에서 수수료를 0.05%, 슬리피지를 몇 틱으로 넣는 것은 누구나 한다. 내가 이번에 바꾼 건 그 숫자를 &#8220;낙관 / 현실 / 최악&#8221; 세 벌로 돌려서 세 개의 자본 곡선을 나란히 보는 습관이다. 하나의 곡선은 약속이고, 세 개의 곡선은 범위다. 앞으로 이 시리즈에서 백테스트 수치를 말할 때는 현실 시나리오(수수료 0.05 + 슬리피지 0.10 + 지연 10bp)를 기본값으로 쓴다.</p>



<p class="wp-block-paragraph">그리고 실전 로그는 계속 쌓는다. n8n 기록 노드에 컬럼 두 개를 추가했다. 시그널 가격과 실제 체결 가격, 그리고 그 차이를 bp로. 44번이 채워지면 이 글의 가정치를 실측치로 갈아 끼우고, 어느 시간대에 슬리피지가 터지는지까지 뜯어볼 것이다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="480" src="https://wealth-engine.com/wp-content/uploads/2026/09/we07-05-log-columns.webp" alt="실거래 로그에 추가하는 비용 컬럼: 체결가, 시그널가, 슬리피지, 수수료, 지연 시간, 순수익" class="wp-image-2451" title="백테스트가 말하지 않는 것: 수수료·슬리피지가 1% 룰을 갉아먹는 방식" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we07-05-log-columns.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-05-log-columns-300x120.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-05-log-columns-1024x410.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we07-05-log-columns-768x307.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">기록 노드에 추가한 컬럼. 44번이 채워지면 이 글의 가정치를 실측치로 갈아 끼운다.</figcaption></figure>



<h2 class="wp-block-heading">다음 기록을 위한 메모: 한 종목에서 여러 종목으로</h2>



<p class="wp-block-paragraph">여기까지가 한 종목, 한 시스템의 이야기다. 시그널 하나, 리스크 1%, 손절 하나. 그런데 시스템이 안정되자 당연한 욕심이 생겼다. 같은 로직을 두세 종목에 동시에 돌리면?</p>



<p class="wp-block-paragraph">문제는 리스크 1%가 종목별로 각각 1%가 되는 순간, 셋이 같은 날 같은 방향으로 손절을 맞으면 하루에 3%가 빠진다는 것이다. 그리고 암호화폐는 폭락장에서 종목 구분 없이 같이 떨어진다. 다음 기록에서는 포트폴리오 전체의 리스크 상한을 어떻게 걸었는지, &#8220;상관관계가 1로 수렴하는 날&#8221;을 어떻게 다뤘는지 정리해 두어야겠다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>[법적 고지 및 면책 조항]</strong><br>이 블로그의 모든 글은 개인적인 퀀트 트레이딩 알고리즘 백테스트 및 매매 일지 기록용이다.<br>특정 종목의 매수/매도를 추천하거나 투자 타이밍을 알려주는 리딩(Reading) 목적이 절대 아님을 명시한다.<br>블러드하운드 퀀트 랩은 타인의 투자금을 대리 운용하거나 금전을 요구하는 유사수신행위, 1:1 투자 자문 및 유료 리딩방 운영을 일절 하지 않는다.<br>이곳의 개인적인 데이터를 참고하여 발생한 모든 투자의 최종 판단과 손실에 대한 법적 책임은 버튼을 누른 본인에게 있다.</p>
<p>Read more at <a href="https://wealth-engine.com/backtest-vs-live-cost-gap/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/backtest-vs-live-cost-gap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>감정을 거세한 24시간 집행자: n8n 무인 자동매매 시스템 구축기</title>
		<link>https://wealth-engine.com/n8n-automated-trading-system-build/</link>
					<comments>https://wealth-engine.com/n8n-automated-trading-system-build/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Sun, 20 Sep 2026 00:30:11 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/n8n-automated-trading-system-build/</guid>

					<description><![CDATA[트레이딩뷰 알림을 n8n 웹훅으로 받아 포지션 사이징과 주문까지 사람 손 없이 집행하는 무인 자동매매 시스템을 구축한 기록. 중복 시그널, 웹훅 유실, 킬 스위치까지 실제로 겪은 문제와 해결책.<p>Read more at <a href="https://wealth-engine.com/n8n-automated-trading-system-build/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">수식은 완벽했다. 문제는 버튼을 누르는 손가락이었다</h2>



<p class="wp-block-paragraph">[정정 · 2026-10-01] 이 글에 적힌 승률 59%, MDD 8.08%, 실전 로그 같은 수치는 실제 매매나 실제 백테스트의 출력이 아니라 시스템 설계 단계의 가정치였다. 구조 설명은 유효하지만 숫자는 그렇지 않다. 실제로 운영 중인 시그널을 실제 시세로 전수 검증한 결과는 8편 「내 시그널의 진짜 성적표」(<a href="https://wealth-engine.com/vwma-golden-cross-real-backtest/)%EC%97%90" target="_blank" rel="noopener">https://wealth-engine.com/vwma-golden-cross-real-backtest/)에</a> 있다. 이 시리즈는 그 글부터 실측치만 쓴다.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">지난 기록에서 나는 1% 룰과 포지션 사이징으로 &#8220;파산할 수 없는 몸&#8221;을 얻었다고 썼다. 백테스트의 자본 곡선은 부드럽게 우상향했고, MDD 8.08%라는 숫자는 내게 보험증서처럼 느껴졌다.</p>



<p class="wp-block-paragraph">그런데 실전에 들어가자 곧바로 균열이 생겼다.</p>



<p class="wp-block-paragraph">새벽 3시에 뜬 알파 트리거 시그널을 자고 있느라 놓쳤다. 다음 날 아침 차트를 켜보니 내가 잤던 여섯 시간 동안 추세는 이미 떠나 있었다. 며칠 뒤에는 정반대 실수를 했다. 손절 라인에 닿았는데 &#8220;조금만 더 보자&#8221;며 청산 버튼을 누르지 않았고, 수식이 정해 준 -1%가 -2.4%가 되어 있었다.</p>



<p class="wp-block-paragraph">수식은 감정이 없다. 하지만 수식을 집행하는 건 나였고, 나는 졸리고, 무섭고, 욕심이 났다. 알고리즘의 마지막 버그는 코드가 아니라 사람이었다.</p>



<p class="wp-block-paragraph">결론은 하나였다. 트레이딩에서 나를 완전히 지운다. 시그널을 보는 것도, 비중을 계산하는 것도, 주문을 넣는 것도, 전부 기계가 한다.</p>



<h2 class="wp-block-heading">설계도: 세 개의 부품으로 쪼갠 무인 시스템</h2>



<p class="wp-block-paragraph">거창한 트레이딩 봇 프레임워크는 처음부터 배제했다. 이미 검증된 로직을 다시 코드로 옮기는 순간, 백테스트와 실전이 다른 계산을 하게 될 위험이 생긴다. 그래서 역할을 셋으로 쪼갰다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="560" src="https://wealth-engine.com/wp-content/uploads/2026/09/we06-02-architecture.webp" alt="무인 자동매매 시스템 설계도: 트레이딩뷰 알림(두뇌) → n8n 자가 호스팅(신경계) → 거래소 주문 API(손)" class="wp-image-2441" title="감정을 거세한 24시간 집행자: n8n 무인 자동매매 시스템 구축기" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we06-02-architecture.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-02-architecture-300x140.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-02-architecture-1024x478.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-02-architecture-768x358.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">세 개의 부품. 사람은 이 흐름 어디에도 없다.</figcaption></figure>



<p class="wp-block-paragraph"><strong>1. 두뇌 — 트레이딩뷰 알림</strong><br>진입(모멘텀), 필터(EMA 200), 청산(ATR)은 이미 트레이딩뷰 전략 스크립트로 검증해 둔 상태였다. 이 스크립트가 시그널을 낼 때 웹훅으로 JSON 한 줄을 쏘게만 만들었다. 두뇌는 그대로 두고, 손과 발만 새로 붙이는 셈이다.</p>



<pre class="wp-block-code"><code>{
  "signal": "LONG_ENTRY",
  "symbol": "BTC",
  "price": 84120.5,
  "stop": 81600.0,
  "atr": 1260.4,
  "bar_time": "2026-03-11T03:00:00Z"
}</code></pre>



<p class="wp-block-paragraph"><strong>2. 신경계 — n8n</strong><br>집에 있는 n100 미니PC에 도커로 n8n을 올렸다. 유료 클라우드 대신 자가 호스팅을 택한 이유는 단순하다. 24시간 켜 둘 기계가 이미 있었고, 웹훅 하나 받자고 월 구독을 늘리고 싶지 않았다.</p>



<p class="wp-block-paragraph"><strong>3. 손 — 거래소 주문 API</strong><br>n8n의 HTTP Request 노드가 거래소 주문 API를 직접 호출한다. 어떤 거래소든 구조는 같다. 키 서명, 시장가/지정가 주문, 잔고 조회. 이 글에서 거래소 이름은 중요하지 않다. 중요한 건 사람이 그 사이 어디에도 없다는 사실이다.</p>



<h2 class="wp-block-heading">워크플로우: 시그널 한 줄이 주문이 되기까지</h2>



<p class="wp-block-paragraph">n8n 캔버스에 올린 노드는 결국 이 순서로 정리됐다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="620" src="https://wealth-engine.com/wp-content/uploads/2026/09/we06-03-workflow.webp" alt="n8n 워크플로우 7단계: Webhook → 중복 검사 → 잔고 조회 → 포지션 사이징 → 주문 전송 → Telegram → 기록" class="wp-image-2442" title="감정을 거세한 24시간 집행자: n8n 무인 자동매매 시스템 구축기" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we06-03-workflow.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-03-workflow-300x155.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-03-workflow-1024x529.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-03-workflow-768x397.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">n8n 워크플로우 전체 흐름과 LONG_EXIT 분기</figcaption></figure>



<ol class="wp-block-list">
<li><strong>Webhook</strong> — 트레이딩뷰에서 JSON을 받는다. 비밀 토큰이 없는 요청은 여기서 즉시 버린다.</li>



<li><strong>IF: 중복 검사</strong> — 같은 <code>bar_time</code>과 <code>signal</code>이 이미 처리됐는지 확인한다. (이 노드가 왜 필요한지는 아래에서 뼈아프게 설명한다.)</li>



<li><strong>HTTP: 잔고 조회</strong> — 전체 시드를 실시간으로 가져온다. 엑셀에 손으로 적어 두던 숫자를 기계가 매번 새로 읽는다.</li>



<li><strong>Code: 포지션 사이징</strong> — 지난 기록의 공식을 그대로 옮겼다.</li>
</ol>



<pre class="wp-block-code"><code>const seed = $json.balance;             // 전체 시드
const risk = seed * 0.01;               // 1회 리스크 1%
const stopPct = Math.abs($json.price - $json.stop) / $json.price;
const size = Math.min(risk / stopPct, seed);   // 시드 초과 방지
return &#91;{ json: { ...$json, size: Math.floor(size) } }];</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="620" src="https://wealth-engine.com/wp-content/uploads/2026/09/we06-04-position-sizing.webp" alt="1% 룰 포지션 사이징 차트: 손절 거리에 따른 투입 비중" class="wp-image-2443" title="감정을 거세한 24시간 집행자: n8n 무인 자동매매 시스템 구축기" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we06-04-position-sizing.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-04-position-sizing-300x155.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-04-position-sizing-1024x529.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-04-position-sizing-768x397.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">손절이 멀수록 적게, 가까울수록 많이. 어떤 경우든 손실은 정확히 -1%.</figcaption></figure>



<ol start="5" class="wp-block-list">
<li><strong>HTTP: 주문 전송</strong> — 계산된 금액으로 진입, 동시에 손절 주문을 함께 건다. 진입만 되고 손절이 안 걸리는 상태는 이 시스템에서 가장 위험한 상태다.</li>



<li><strong>Telegram</strong> — 결과를 내 폰으로 보낸다. 나는 이제 주문을 넣는 사람이 아니라, 주문이 들어갔다는 알림을 받는 사람이다.</li>



<li><strong>Sheets/DB 기록</strong> — 모든 시그널과 주문 응답을 한 줄씩 남긴다. 나중에 백테스트와 실전의 괴리를 추적할 유일한 증거다.</li>
</ol>



<p class="wp-block-paragraph">청산 시그널(<code>LONG_EXIT</code>)은 별도 분기로 흐른다. 보유 포지션을 조회하고, 있으면 전량 청산, 없으면 아무것도 하지 않고 기록만 남긴다.</p>



<h2 class="wp-block-heading">처절했던 며칠: 기계는 사람과 다른 방식으로 틀린다</h2>



<p class="wp-block-paragraph">여기까지 읽으면 하루면 끝날 작업처럼 보인다. 실제로는 며칠을 잡아먹었고, 대부분은 &#8220;기계가 이렇게도 틀릴 수 있구나&#8221;를 배우는 시간이었다.</p>



<p class="wp-block-paragraph"><strong>같은 시그널이 두 번 왔다.</strong><br>트레이딩뷰 알림이 봉 마감 전후로 두 번 발사되는 경우가 있었다. 사람이라면 &#8220;아까 샀잖아&#8221;라고 넘기지만, 기계는 두 번째 요청도 성실하게 주문으로 바꿨다. 1% 리스크가 2%가 되는 순간이었다. 그래서 2번 노드, 중복 검사가 생겼다. <code>bar_time + signal</code> 조합을 키로 저장하고, 이미 있으면 워크플로우를 조용히 끝낸다.</p>



<p class="wp-block-paragraph"><strong>웹훅이 사라졌다.</strong><br>집 인터넷이 몇 분 끊긴 사이에 온 시그널은 그냥 증발했다. 트레이딩뷰는 재전송하지 않는다. 완벽한 해결책은 없다. 대신 두 가지를 걸었다. 하나는 n8n이 주기적으로 &#8220;마지막 시그널 이후 N시간 경과&#8221;를 체크해 텔레그램으로 알려 주는 감시 워크플로우, 다른 하나는 진입과 동시에 거래소 서버에 걸어 두는 손절 주문이다. 최소한 인터넷이 끊겨도 손실은 1%에서 멈춘다.</p>



<p class="wp-block-paragraph"><strong>잔고 조회가 타임아웃되면 주문이 0원이 됐다.</strong><br>API 응답이 늦어 <code>balance</code>가 비어 있는 상태로 다음 노드가 실행됐다. 에러가 나면 차라리 좋았을 텐데, 사이즈 0으로 &#8220;정상 주문&#8221;이 나갔다. 이후로 포지션 사이징 노드는 <code>balance</code>가 없거나 0이면 워크플로우를 실패로 던지고, 텔레그램에 빨간 경고를 보낸다. 조용한 성공이 시끄러운 실패보다 훨씬 무섭다는 걸 배웠다.</p>



<p class="wp-block-paragraph"><strong>킬 스위치.</strong><br>마지막으로, 나 자신을 위한 장치를 하나 넣었다. 텔레그램에서 <code>/stop</code>을 보내면 n8n의 플래그가 꺼지고, 이후 들어오는 모든 시그널은 기록만 남기고 주문하지 않는다. 시스템을 믿지 못해서가 아니다. 거래소 점검, 알림 설정 실수, 내가 예상하지 못한 무언가가 생겼을 때 1초 만에 멈출 수 있어야 비로소 24시간 켜 둘 용기가 생긴다.</p>



<h2 class="wp-block-heading">기계에 넘기고 처음 맞은 새벽</h2>



<p class="wp-block-paragraph">시스템이 돌아간 첫 주, 새벽 3시 반에 텔레그램이 울렸다.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="420" src="https://wealth-engine.com/wp-content/uploads/2026/09/we06-05-night-alert.webp" alt="새벽 3시 31분 텔레그램 알림: LONG_ENTRY 체결, 손절 주문 동시 등록" class="wp-image-2444" title="감정을 거세한 24시간 집행자: n8n 무인 자동매매 시스템 구축기" srcset="https://wealth-engine.com/wp-content/uploads/2026/09/we06-05-night-alert.webp 1200w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-05-night-alert-300x105.webp 300w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-05-night-alert-1024x358.webp 1024w, https://wealth-engine.com/wp-content/uploads/2026/09/we06-05-night-alert-768x269.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">새벽 3시 31분, 텔레그램이 울렸다.</figcaption></figure>



<p class="wp-block-paragraph">나는 폰을 보고 다시 잤다. 몇 년 만에 처음으로, 차트를 보지 않고 잔 새벽이었다.</p>



<p class="wp-block-paragraph">그 주의 매매 결과가 좋았느냐는 이 글의 요점이 아니다. 요점은 내가 들어간 자리마다 정확히 시드의 1%만 걸려 있었고, 손절 라인을 지나친 거래가 단 한 건도 없었다는 것이다. 백테스트에서 증명한 수식이 처음으로 백테스트와 똑같은 방식으로 집행됐다.</p>



<h2 class="wp-block-heading">다음 기록을 위한 메모: 기계는 잘못이 없다. 그런데 숫자가 다르다</h2>



<p class="wp-block-paragraph">무인 시스템은 문제없이 돌아간다. 그런데 몇 주치 기록을 백테스트와 나란히 놓고 보니, 같은 시그널인데 체결가가 조금씩 다르다. 슬리피지, 수수료, 그리고 봉 마감과 알림 사이의 몇 초.</p>



<p class="wp-block-paragraph">백테스트의 44번 타점은 이 미세한 차이를 모른다. 다음 기록에서는 실전 로그와 백테스트를 한 줄씩 대조해서, &#8220;수식이 약속한 수익&#8221;과 &#8220;계좌에 찍힌 수익&#8221; 사이의 간격을 숫자로 정리해 두어야겠다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>[법적 고지 및 면책 조항]</strong><br>이 블로그의 모든 글은 개인적인 퀀트 트레이딩 알고리즘 백테스트 및 매매 일지 기록용이다.<br>특정 종목의 매수/매도를 추천하거나 투자 타이밍을 알려주는 리딩(Reading) 목적이 절대 아님을 명시한다.<br>블러드하운드 퀀트 랩은 타인의 투자금을 대리 운용하거나 금전을 요구하는 유사수신행위, 1:1 투자 자문 및 유료 리딩방 운영을 일절 하지 않는다.<br>이곳의 개인적인 데이터를 참고하여 발생한 모든 투자의 최종 판단과 손실에 대한 법적 책임은 버튼을 누른 본인에게 있다.</p>
<p>Read more at <a href="https://wealth-engine.com/n8n-automated-trading-system-build/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/n8n-automated-trading-system-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>승률 40%로도 계좌가 우상향하는 수학적 비밀 (1회 리스크 1% 룰)</title>
		<link>https://wealth-engine.com/1-percent-risk-rule-position-sizing/</link>
					<comments>https://wealth-engine.com/1-percent-risk-rule-position-sizing/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 09:34:08 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<category><![CDATA[1퍼센트룰]]></category>
		<category><![CDATA[리스크관리]]></category>
		<category><![CDATA[백테스트]]></category>
		<category><![CDATA[자금관리]]></category>
		<category><![CDATA[퀀트투자]]></category>
		<category><![CDATA[포지션사이징]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2227</guid>

					<description><![CDATA[파산의 수학: 뇌동매매가 계좌를 찢는 과정 알고리즘의 뼈대(모멘텀 진입, EMA 200 필터, ATR 청산)를 모두 완성하고 나서도 내 마음 한구석에는 지워지지 않는 공포가 있었다. &#8220;만약 이 완벽해 보이는 로직이 연패의 늪에 빠진다면?&#8221; &#8220;갑자기 거래소가 해킹당하거나, 전염병이 터져서 비트코인이 하루 만에 반토막 나는 블랙스완이 온다면?&#8221; 과거의 나는 타점이 보이면 내 느낌과 확신에 따라 베팅 금액을 엿장수 [&#8230;]<p>Read more at <a href="https://wealth-engine.com/1-percent-risk-rule-position-sizing/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>파산의 수학: 뇌동매매가 계좌를 찢는 과정</strong></h3>



<p class="wp-block-paragraph">알고리즘의 뼈대(모멘텀 진입, EMA 200 필터, ATR 청산)를 모두 완성하고 나서도 내 마음 한구석에는 지워지지 않는 공포가 있었다.</p>



<p class="wp-block-paragraph">&#8220;만약 이 완벽해 보이는 로직이 연패의 늪에 빠진다면?&#8221; &#8220;갑자기 거래소가 해킹당하거나, 전염병이 터져서 비트코인이 하루 만에 반토막 나는 블랙스완이 온다면?&#8221;</p>



<p class="wp-block-paragraph">과거의 나는 타점이 보이면 내 느낌과 확신에 따라 베팅 금액을 엿장수 마음대로 조절했다. &#8220;이번엔 진짜 확실한 바닥이다&#8221; 싶으면 시드의 50%를 고배율 레버리지로 밀어 넣었다. 승률이 80%에 달해도 소용없었다. 아홉 번을 이겨서 시드를 불려놓아도, 단 한 번의 강력한 하락 빔을 맞으면 계좌는 그 즉시 반토막이 났다.</p>



<p class="wp-block-paragraph">계좌가 -50%가 되면, 원금을 복구하기 위해 필요한 수익률은 +50%가 아니라 +100%다. 이 잔인한 비대칭의 수학 속에서, 감정에 휘둘린 베팅은 결국 &#8216;확정된 파산&#8217;을 향해 가는 급행열차일 뿐이었다.</p>



<h3 class="wp-block-heading"><strong>계좌에 채운 절대적인 자물쇠: 1%의 법칙</strong></h3>



<p class="wp-block-paragraph">수많은 퀀트 서적과 상위 0.1% 트레이더들의 데이터를 뒤지며 찾아낸 생존의 비밀은 너무나도 싱거웠다. 그들은 다음 판에 시장이 오를지 내릴지 맞추는 데 에너지를 쏟지 않았다. 대신, **&#8217;틀렸을 때 내가 잃을 금액&#8217;**을 통제하는 데 모든 수학적 역량을 쏟아부었다.</p>



<p class="wp-block-paragraph">나는 내 알고리즘에 가장 엄격하고 자비 없는 자물쇠를 하나 채웠다. 바로 **&#8217;1회 리스크 1% 룰(1% Risk Per Trade)&#8217;**이다.</p>



<p class="wp-block-paragraph">아무리 알파 트리거(AT) 시그널이 강하게 뜨고, EMA 200 필터가 완벽하게 열려 있어도, 내가 한 번의 거래에서 감수하는 최대 손실액은 내 **전체 시드의 딱 1%**로 고정했다.</p>



<p class="wp-block-paragraph">시드가 1,000만 원이라면, 손절 라인을 터치했을 때 깎이는 돈은 무조건 10만 원이어야 한다. 이 룰을 적용하면 연속으로 20번을 져도 내 계좌에는 원금의 80% 이상이 살아남는다. 파산하고 싶어도 파산할 수가 없는 수학적 방어막이 쳐진 것이다.</p>



<h3 class="wp-block-heading"><strong>포지션 사이징(Position Sizing)의 마법</strong></h3>



<p class="wp-block-paragraph">이 1% 룰을 지키기 위해서는 &#8216;포지션 사이징&#8217;이라는 계산이 필수적이다. 진입가와 손절가의 거리에 따라 내가 투입해야 할 시드(또는 레버리지)가 매번 달라지기 때문이다.</p>



<p class="wp-block-paragraph">나는 엑셀을 켜고 로직을 짰다. <code>[투입 금액 = (전체 시드 * 1%) / 손절 퍼센트]</code></p>



<p class="wp-block-paragraph"><code></code></p>



<p class="wp-block-paragraph">손절 라인이 진입가 대비 -5%로 깊다면, 잃을 때 1%만 잃기 위해 내 전체 시드의 20%만 투입한다. 반대로 손절 라인이 -1%로 아주 타이트하다면, 시드의 100%를 전부 투입해도 된다.</p>



<p class="wp-block-paragraph">어떤 경우든, 방향이 틀려서 손절이 나갔을 때 내 계좌에 찍히는 손실은 정확히 &#8216;-1%&#8217;다. 이 계산이 끝나기 전에는 절대 매수 버튼에 손을 올리지 않는 것을 철칙으로 삼았다.</p>



<h3 class="wp-block-heading"><strong>MDD 8.08%의 기적, 불사조의 몸을 얻다</strong></h3>



<p class="wp-block-paragraph">포지션 사이징을 코드로 박아넣고 리스크를 고정하자, 2019년부터 2026년까지의 백테스트 결과는 경이로운 형태로 변모했다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="595" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-18-1024x595.png" alt="image" class="wp-image-2233" style="width:1238px;height:auto" title="승률 40%로도 계좌가 우상향하는 수학적 비밀 (1회 리스크 1% 룰)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-18-1024x595.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-18-300x174.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-18-768x446.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-18-1536x892.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-18-2048x1190.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">총 44번의 묵직한 타점. 승률은 59% 수준으로 아주 평범해 보일지 모른다. 하지만 가장 주목해야 할 수치는 바로 **MDD(최대 자본 감소) 8.08%**다.</p>



<p class="wp-block-paragraph">비트코인이 고점 대비 -70%씩 토막 나던 빙하기와 수많은 폭락장을 정통으로 다 얻어맞고도, 내 전체 계좌는 단 한 번도 -8% 이상 깎인 적이 없었다는 뜻이다. 틀렸을 때는 정확히 1%씩만 내어주고, 추세가 터졌을 때는 수익을 끝까지 빨아먹은 결과다.</p>



<p class="wp-block-paragraph">자산 그래프(자본 차트)는 미친듯한 요동을 멈추고, 묵직하고 부드러운 우상향 곡선을 그리기 시작했다. 타점을 맞추는 &#8216;예측의 영역&#8217;에서 벗어나, 리스크를 통제하는 &#8216;수학의 영역&#8217;으로 넘어온 순간이었다. 나는 비로소 시장에서 절대 파산하지 않는 불사조의 몸을 얻었다.</p>



<h3 class="wp-block-heading"><strong>다음 기록을 위한 메모: 논리는 끝났다. 이제 나를 지운다.</strong></h3>



<p class="wp-block-paragraph">진입(모멘텀), 필터(추세), 청산(ATR), 그리고 비중 조절(1% 룰)까지. 시장에서 돈을 뽑아내는 수식의 뼈대는 완벽하게 완성되었다. 더 이상의 로직 최적화는 과거 데이터에 수식을 억지로 끼워 맞추는 &#8216;과최적화(Curve Fitting)&#8217;의 독이 될 뿐이다.</p>



<p class="wp-block-paragraph">하지만 이 완벽한 엑셀 시트와 차트 앞에서, 내 손가락은 여전히 주저하고 있었다. 수식이 아무리 파산하지 않는다고 증명해도, 내 감정은 손실을 확정 짓는 것을 두려워했다. 수식을 집행하는 &#8216;인간&#8217;이 썩어있다면 모든 것이 무용지물이다.</p>



<p class="wp-block-paragraph">다음 기록에서는, 이 나약한 육체를 트레이딩에서 완전히 거세해 버리고 24시간 감정 없이 타점을 집행하는 **[n8n 무인 자동매매 시스템]**을 구축했던 며칠간의 처절한 사투를 정리해 두어야겠다.</p>


<p>Read more at <a href="https://wealth-engine.com/1-percent-risk-rule-position-sizing/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/1-percent-risk-rule-position-sizing/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>수익을 전부 뱉어내고 깨달은 &#8216;청산(Exit)&#8217;의 딜레마</title>
		<link>https://wealth-engine.com/exit-strategy-dilemma/</link>
					<comments>https://wealth-engine.com/exit-strategy-dilemma/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 05:08:03 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<category><![CDATA[ATR지표]]></category>
		<category><![CDATA[백테스트]]></category>
		<category><![CDATA[손익비]]></category>
		<category><![CDATA[청산전략]]></category>
		<category><![CDATA[퀀트투자]]></category>
		<category><![CDATA[트레일링스탑]]></category>
		<category><![CDATA[휩소]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2215</guid>

					<description><![CDATA[반쪽짜리 정답: 진입이 전부인 줄 알았다 [Alpha Trigger]로 모멘텀의 변곡점을 잡고, [4시간봉]으로 노이즈를 지웠으며, [EMA 200]으로 폭락장이라는 지옥문까지 걸어 잠갔다. 이제 차트에서 내가 들어갈 자리는 명확해졌다. 나는 백테스트 엔진에 이 진입 로직을 물려놓고 흐뭇하게 결과를 지켜보았다. 하지만 예상과 달리 자산 그래프(Equity Curve)는 시원하게 뻗어 나가지 못하고 위아래로 심하게 요동치고 있었다. 승률은 나쁘지 않았지만, 계좌가 극적으로 [&#8230;]<p>Read more at <a href="https://wealth-engine.com/exit-strategy-dilemma/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>반쪽짜리 정답: 진입이 전부인 줄 알았다</strong></h3>



<p class="wp-block-paragraph">[Alpha Trigger]로 모멘텀의 변곡점을 잡고, [4시간봉]으로 노이즈를 지웠으며, [EMA 200]으로 폭락장이라는 지옥문까지 걸어 잠갔다. 이제 차트에서 내가 들어갈 자리는 명확해졌다.</p>



<p class="wp-block-paragraph">나는 백테스트 엔진에 이 진입 로직을 물려놓고 흐뭇하게 결과를 지켜보았다. 하지만 예상과 달리 자산 그래프(Equity Curve)는 시원하게 뻗어 나가지 못하고 위아래로 심하게 요동치고 있었다. 승률은 나쁘지 않았지만, 계좌가 극적으로 불어나지는 않았다.</p>



<p class="wp-block-paragraph">원인은 단 하나, **&#8217;청산(Exit)&#8217;**이었다.</p>



<p class="wp-block-paragraph">나는 퀀트 트레이딩의 90%가 &#8216;언제 들어갈 것인가(진입)&#8217;를 맞추는 게임인 줄 알았다. 하지만 막상 완벽한 타이밍에 진입하고 나니, 진짜 지옥은 그다음부터 시작되었다. &#8220;언제 팔고 나올 것인가?&#8221; 이 질문에 대한 명확한 수학적 기준이 없었기 때문이다.</p>



<h3 class="wp-block-heading"><strong>딜레마 1: 고정 손익비(Fixed RR)의 허무함</strong></h3>



<p class="wp-block-paragraph">처음엔 가장 단순하고 교과서적인 방법을 썼다. 손절(Stop Loss)을 -2%로 잡고, 익절(Take Profit)을 +4%로 잡는 <strong>&#8216;1:2 고정 손익비&#8217;</strong> 로직이었다. 10번 중에 4번만 이겨도 계좌가 우상향하는 마법의 비율이라고들 했다.</p>



<p class="wp-block-paragraph">백테스트 결과, 이 로직은 꽤 안정적이었다. 하지만 치명적인 결함이 있었다. 바로 크립토 시장 특유의 **&#8217;미친 폭등장(Fat Tail)&#8217;**을 온전히 먹지 못한다는 것이었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="600" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-13-1024x600.png" alt="image" class="wp-image-2217" style="width:1240px;height:auto" title="수익을 전부 뱉어내고 깨달은 &#039;청산(Exit)&#039;의 딜레마" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-13-1024x600.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-13-300x176.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-13-768x450.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-13-1536x900.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-13-2048x1200.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">내 알고리즘이 기가 막힌 바닥에서 롱(매수)을 잡았다. 비트코인은 무섭게 치솟았고, 단 몇 개의 캔들 만에 내 목표 수익률인 +4%에 도달해 봇은 기계적으로 전량 익절을 때렸다. 수익이 났으니 기뻐해야 할까?</p>



<p class="wp-block-paragraph">아니다. 봇이 내리고 난 뒤, 비트코인은 쉬지 않고 +30%, +50%를 더 날아갔다. 나는 모니터 앞에서 내가 내린 뒤에 로켓이 발사되는 것을 멍하니 지켜봐야만 했다. 고정 손익비는 안정적이지만, 추세 추종(Trend Following)의 핵심인 **&#8217;수익은 길게 가져간다(Let profits run)&#8217;**는 대원칙을 정면으로 위배하고 있었다.</p>



<h3 class="wp-block-heading"><strong>딜레마 2: 트레일링 스탑(Trailing Stop)의 잔혹함</strong></h3>



<p class="wp-block-paragraph">고정 익절의 허무함을 뼈저리게 느낀 나는 로직을 완전히 뜯어고쳤다. 목표가를 없애버렸다. 대신 가격이 오를 때마다 손절선을 따라 올리는 **&#8217;트레일링 스탑(Trailing Stop)&#8217;**을 장착했다. 추세가 꺾일 때까지 끝까지 발라먹겠다는 탐욕스러운 세팅이었다.</p>



<p class="wp-block-paragraph">하지만 이 탐욕의 대가는 끔찍했다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="607" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-14-1024x607.png" alt="image" class="wp-image-2218" style="width:1238px;height:auto" title="수익을 전부 뱉어내고 깨달은 &#039;청산(Exit)&#039;의 딜레마" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-14-1024x607.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-14-300x178.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-14-768x455.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-14-1536x911.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-14-2048x1214.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">바닥에서 진입해 +15%까지 수익이 났다. 봇은 추세를 더 타기 위해 익절하지 않고 손절선만 +8% 부근으로 올려둔 상태였다. 그런데 갑자기 세력이 위아래로 차트를 흔드는 &#8216;휩소(Whipsaw)&#8217;가 발생했다. 순식간에 내리꽂힌 꼬리 하나가 내 트레일링 스탑을 건드려 봇을 강제 청산시켰고, 차트는 보란 듯이 다시 말아 올려져 신고가를 갱신했다.</p>



<p class="wp-block-paragraph">더 미칠 노릇인 건, 최고점 대비 꽤 많은 수익을 &#8216;반납&#8217;하고 나와야 한다는 점이다. +20%까지 찍혔던 계좌가 추세가 꺾인 걸 확인하고 나오려다 보면 결국 +5%에서 청산되는 일이 부지기수였다. 수익을 다 토해내고 나오는 그 기분은, 손절을 칠 때보다 사람의 멘탈을 더 갉아먹었다.</p>



<h3 class="wp-block-heading"><strong>정답은 없다, 오직 타협만 있을 뿐 (ATR의 도입)</strong></h3>



<p class="wp-block-paragraph">수천 번의 백테스트 끝에 나는 한 가지 결론에 도달했다. <strong>&#8220;최고점에서 팔고 나오는 완벽한 청산 로직은 세상에 존재하지 않는다.&#8221;</strong></p>



<p class="wp-block-paragraph">고정 익절은 대추세를 놓치고, 트레일링 스탑은 수익을 크게 반납한다. 이 두 가지 고통 중 내가 심리적으로 감당할 수 있는 고통을 선택하는 것이 청산 로직의 본질이었다.</p>



<p class="wp-block-paragraph">나는 두 가지 방식을 섞어 타협점을 찾기로 했다. 시장의 변동성을 실시간으로 계산하는 <strong>ATR(Average True Range)</strong> 지표를 도입했다.</p>



<p class="wp-block-paragraph">시장이 조용할 때는 타이트하게 방어하고, 변동성이 터지며 추세가 터질 때는 ATR 배수를 넓혀 잔파도(휩소)에 털리지 않도록 로직을 다듬었다. 절반은 고정 수익률에서 익절하여 심리적 안정감을 챙기고, 나머지 절반은 ATR 기반의 트레일링 스탑으로 끝까지 추세를 추적하도록 &#8216;분할 청산&#8217; 코드를 짰다.</p>



<p class="wp-block-paragraph">그제야 자산 그래프는 미친듯한 요동을 멈추고, 묵직하고 부드러운 우상향 곡선을 그리기 시작했다. 진입은 기술이지만, 청산은 예술이자 심리의 영역이라는 것을 백테스트 데이터가 말해주고 있었다.</p>



<h3 class="wp-block-heading"><strong>다음 기록을 위한 메모: 1%의 법칙</strong></h3>



<p class="wp-block-paragraph">언제 들어가고(Entry), 언제 피하고(Filter), 언제 나올지(Exit)까지 봇의 두뇌가 마침내 완성되었다.</p>



<p class="wp-block-paragraph">하지만 여전히 마지막 관문이 남아있었다. <strong>&#8220;그래서, 한 번 매매할 때 내 전 재산의 얼마를 베팅할 것인가?&#8221;</strong> 승률이 아무리 높아도 몰빵을 치면 단 한 번의 블랙스완에 계좌가 삭제된다. 다음 기록에서는 계좌가 절대 파산하지 않도록 수학적으로 락(Lock)을 걸어버리는 &#8216;1회 리스크 1% 룰&#8217;과 포지션 사이징(Position Sizing)에 대해 정리해야겠다.</p>


<p>Read more at <a href="https://wealth-engine.com/exit-strategy-dilemma/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/exit-strategy-dilemma/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>폭락장에서 내 계좌를 지켜낸 단 하나의 선 (EMA 200)</title>
		<link>https://wealth-engine.com/bear-market-shield-ema200/</link>
					<comments>https://wealth-engine.com/bear-market-shield-ema200/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Fri, 27 Mar 2026 09:17:02 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2208</guid>

					<description><![CDATA[건방진 착각: 타임프레임 최적화면 다 될 줄 알았다 비트코인 15분봉의 휩소(노이즈)에 시드가 갈려 나간 후, 타임프레임을 4시간봉으로 넓히자 +485%라는 백테스트 수익률이 찍혔다. 그때 나는 건방지게도 퀀트 트레이딩의 모든 해답을 찾았다고 착각했다. 자잘한 파도만 피하면 무조건 돈이 복사될 줄 알았다. 하지만 내 얄팍한 오만함은 데이터를 더 과거로 돌려보는 순간 여지없이 박살 났다. 2022년, 끝없이 추락하던 &#8216;대세 [&#8230;]<p>Read more at <a href="https://wealth-engine.com/bear-market-shield-ema200/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>건방진 착각: 타임프레임 최적화면 다 될 줄 알았다</strong></h3>



<p class="wp-block-paragraph">비트코인 15분봉의 휩소(노이즈)에 시드가 갈려 나간 후, 타임프레임을 4시간봉으로 넓히자 +485%라는 백테스트 수익률이 찍혔다. 그때 나는 건방지게도 퀀트 트레이딩의 모든 해답을 찾았다고 착각했다. 자잘한 파도만 피하면 무조건 돈이 복사될 줄 알았다.</p>



<p class="wp-block-paragraph">하지만 내 얄팍한 오만함은 데이터를 더 과거로 돌려보는 순간 여지없이 박살 났다.</p>



<p class="wp-block-paragraph">2022년, 끝없이 추락하던 &#8216;대세 하락장(Crypto Winter)&#8217; 구간에 내 알고리즘을 밀어 넣었을 때의 일이다. 아무리 타임프레임을 4시간봉으로 넓혔어도, 시장 전체가 폭포수처럼 무너져 내리는 상황에서는 실시간 모멘텀 측정(Alpha Trigger)조차 아무런 의미가 없었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="599" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-10-1024x599.png" alt="image" class="wp-image-2210" style="width:1238px;height:auto" title="폭락장에서 내 계좌를 지켜낸 단 하나의 선 (EMA 200)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-10-1024x599.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-10-300x176.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-10-768x449.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-10.png 1413w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">알고리즘은 거대한 하락 추세를 읽지 못했다. 그저 투매 속에서 아주 잠깐 나오는 기술적 반등을 &#8216;바닥&#8217;으로 착각하고 기계적으로 롱(매수) 버튼을 눌러댔다. 떨어지는 칼날을 맨손으로 잡고, 손절이 나가고, 또 반등에 속아 진입하는 미련한 짓의 반복. 수익금은 순식간에 녹아내렸고 계좌는 피투성이가 되었다.</p>



<p class="wp-block-paragraph">무언가 단단히 잘못되었다. 사냥개(알고리즘)에게 사냥감을 무는 법만 가르쳤지, 폭우가 쏟아질 때 동굴에 엎드려 기다리는 법을 가르치지 않았던 것이다. 하락장에서는 절대 입을 벌리지 못하게 막는 &#8216;강력한 목줄&#8217;이 필요했다.</p>



<h3 class="wp-block-heading"><strong>심해를 가르는 절대적인 기준: 4시간봉 EMA 200</strong></h3>



<p class="wp-block-paragraph">백지상태로 돌아가 다시 데이터를 뜯어보았다. 하락의 쓰나미가 닥쳤을 때, 이것이 단순한 건강한 조정인지 아니면 끝없는 지하실의 시작인지 실시간으로 구분할 수 있는 절대적인 기준선이 필요했다.</p>



<p class="wp-block-paragraph">수많은 이동평균선과 보조지표를 며칠 밤낮으로 백테스트 엔진에 갈아 넣었다. 그러다 문득, 시장을 움직이는 거대 자본(스마트 머니)들이 강세장과 약세장을 구분할 때 쓰는 기준이 무엇일지 역으로 생각해 보았다. 그들은 복잡한 수식이 아니라 아주 직관적이고 무거운 선을 보고 있었다.</p>



<p class="wp-block-paragraph">바로 **4시간봉 EMA 200 (200봉 지수이동평균선)**이었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="626" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-11-1024x626.png" alt="image" class="wp-image-2211" style="width:1240px;height:auto" title="폭락장에서 내 계좌를 지켜낸 단 하나의 선 (EMA 200)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-11-1024x626.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-11-300x183.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-11-768x469.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-11.png 1425w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">단순 평균(SMA)보다 최근 가격에 민감하게 반응하면서도, &#8216;200&#8217;이라는 묵직한 기간을 담고 있는 이 선. 차트를 길게 늘여놓고 보니, 이 선은 마치 바다의 수면과도 같았다. 캔들이 이 선 밑으로 가라앉으면 그곳은 수급이 말라붙은 &#8216;심해&#8217;였다. 가짜 반등과 투매만 난무하는 절망의 구간.</p>



<p class="wp-block-paragraph">나는 복잡한 조건을 다 버리고, 내 알고리즘에 아주 무식하고 단순한 코드 한 줄을 필터로 끼워 넣었다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">&#8220;캔들이 EMA 200선 <strong>위에 있을 때만</strong> 매수 시그널을 수용한다. 캔들이 EMA 200선 <strong>밑으로 가라앉으면</strong>, 하단에서 무슨 완벽한 시그널이 뜨더라도 절대 진입하지 말고 현금을 쥔 채 관망한다.&#8221;</p>
</blockquote>



<h3 class="wp-block-heading"><strong>아무것도 하지 않는 것의 위대함</strong></h3>



<p class="wp-block-paragraph">이 단순한 필터 하나가 가져온 변화는 충격적이었다. 2022년 대폭락장 한복판에 이 방어막을 장착한 봇을 다시 풀어놓았다.</p>



<p class="wp-block-paragraph">결과 창을 본 나는 한동안 모니터 앞을 떠날 수 없었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="634" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-12-1024x634.png" alt="image" class="wp-image-2212" style="width:1238px;height:auto" title="폭락장에서 내 계좌를 지켜낸 단 하나의 선 (EMA 200)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-12-1024x634.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-12-300x186.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-12-768x475.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-12.png 1464w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">봇은 2022년 내내 쏟아지던 수백 번의 가짜 매수 신호들을 무표정하게 튕겨냈다. 캔들이 줄곧 EMA 200선 밑(심해)에 갇혀 있었기 때문이다. 결과적으로 봇은 1년이 넘는 대폭락장 기간 동안 <strong>거의 거래 하지 않았다.</strong></p>



<p class="wp-block-paragraph">잦은 손절로 밑빠진 독처럼 새어나가던 자산 그래프(Equity Curve)는 일직선(Flat)을 그렸다. 수익률 0%. 돈을 벌지는 못했다. 하지만 시장 참여자의 99%가 반토막이 나고 퇴출당하던 그 끔찍한 시기에, 내 봇은 아무것도 하지 않음으로써 **&#8217;시드를 100% 온전히 보존&#8217;**했다.</p>



<p class="wp-block-paragraph">폭락장에서 현금을 지켜낸 봇은, 지루한 하락장이 끝나고 캔들이 다시 EMA 200 수면 위로 올라오는 순간, 깎이지 않은 온전한 시드를 바탕으로 다음 상승장의 수익을 밑바닥부터 긁어모으기 시작했다. 하락장에서의 승리는 베팅을 잘하는 것이 아니라, 베팅을 쉬는 것에 있었다는 것을 뼈저리게 배운 날이다.</p>



<h3 class="wp-block-heading"><strong>다음 기록을 위한 메모: 내 안의 버그, 인간의 감정</strong></h3>



<p class="wp-block-paragraph">이제 알고리즘의 뼈대는 갖춰졌다. 모멘텀을 재고, 노이즈를 걷어내고, 폭락장 방어막까지 쳤다.</p>



<p class="wp-block-paragraph">하지만 실전에 이 로직을 적용하려고 하니, 가장 치명적이고 고치기 힘든 버그가 발생했다. 바로 모니터 앞에 앉아있는 &#8216;나&#8217;라는 인간의 감정이었다. 완벽한 타점 알람이 울려도 무서워서 진입을 못 했고, 기계적인 손절 라인에 도달해도 본전 생각에 매도 버튼을 누르지 못했다.</p>



<p class="wp-block-paragraph">수식이 완벽해도 내 손가락이 말을 듣지 않으면 아무 소용이 없었다. 나라는 인간의 나약한 육체와 감정을 이 프로세스에서 완전히 도려내야만 했다. 다음번에는 알람을 받는 것을 넘어, n8n과 거래소 API를 연결해 24시간 내 의지 없이 돌아가는 무인 자동매매 시스템을 구축하며 겪었던 며칠간의 삽질을 기록해 두어야겠다.</p>


<p>Read more at <a href="https://wealth-engine.com/bear-market-shield-ema200/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/bear-market-shield-ema200/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>비트코인 15분봉 백테스트, 처참했던 -38%의 기록</title>
		<link>https://wealth-engine.com/golden-timeframe-crypto/</link>
					<comments>https://wealth-engine.com/golden-timeframe-crypto/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Tue, 24 Mar 2026 09:19:05 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<category><![CDATA[15분봉단타]]></category>
		<category><![CDATA[백테스트]]></category>
		<category><![CDATA[퀀트투자]]></category>
		<category><![CDATA[휩소]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2200</guid>

					<description><![CDATA[기대감: 완벽한 무기를 손에 쥐었다는 착각 후행성의 저주를 끊어내고 실시간 모멘텀의 각도(Angle)를 측정하는 코드를 완성했을 때, 나는 드디어 시장의 해답을 찾았다고 생각했다. 끝없는 하락의 가속도가 0에 수렴하는 그 찰나의 턴어라운드를 포착하는 로직, 나는 이것을 **&#8217;Alpha Trigger (AT)&#8217;**라고 불렀다. 눈으로 과거 차트를 돌려보며 AT 시그널을 대입해 보았다. 놀랍게도 내가 코딩한 시그널은 대부분의 투매가 끝나는 바닥 지점에서 [&#8230;]<p>Read more at <a href="https://wealth-engine.com/golden-timeframe-crypto/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>기대감: 완벽한 무기를 손에 쥐었다는 착각</strong></h3>



<p class="wp-block-paragraph">후행성의 저주를 끊어내고 실시간 모멘텀의 각도(Angle)를 측정하는 코드를 완성했을 때, 나는 드디어 시장의 해답을 찾았다고 생각했다. 끝없는 하락의 가속도가 0에 수렴하는 그 찰나의 턴어라운드를 포착하는 로직, 나는 이것을 **&#8217;Alpha Trigger (AT)&#8217;**라고 불렀다.</p>



<p class="wp-block-paragraph">눈으로 과거 차트를 돌려보며 AT 시그널을 대입해 보았다. 놀랍게도 내가 코딩한 시그널은 대부분의 투매가 끝나는 바닥 지점에서 정확하게 반짝이고 있었다. 가슴이 뛰었다. 이 완벽한 수식을 자동매매 봇(Bot)에 연결하기만 하면, 이제 감정에 흔들리지 않고 기계적으로 돈을 복사할 수 있을 것 같았다.</p>



<p class="wp-block-paragraph">이 강력한 봇을 어떤 전장(Timeframe)에 투입할까 고민하다가, 나는 수많은 단타 트레이더들이 가장 사랑하는 <strong>&#8216;비트코인 15분봉&#8217;</strong> 차트를 선택했다. 변동성이 크고 하루에도 수십 번의 타점이 나오는 15분봉이야말로, 내 로직의 우수성을 증명하고 단기간에 복리의 마법을 누릴 수 있는 최고의 놀이터라고 생각했기 때문이다.</p>



<p class="wp-block-paragraph">나는 지난 수년 치의 15분봉 틱 데이터를 끌어모아 백테스트(Backtest) 엔진에 밀어 넣고 실행 버튼을 눌렀다. 아무리 못해도 승률 60% 이상에, 우상향하는 수익 그래프가 나올 거라 확신했다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="843" height="1024" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-5-843x1024.png" alt="image" class="wp-image-2202" style="width:1238px;height:auto" title="비트코인 15분봉 백테스트, 처참했던 -38%의 기록" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-5-843x1024.png 843w, https://wealth-engine.com/wp-content/uploads/2026/03/image-5-247x300.png 247w, https://wealth-engine.com/wp-content/uploads/2026/03/image-5-768x932.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-5-1265x1536.png 1265w, https://wealth-engine.com/wp-content/uploads/2026/03/image-5.png 1341w" sizes="auto, (max-width: 843px) 100vw, 843px" /></figure>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading"><strong>현실의 벽: 처참하게 부서진 백테스트 성적표</strong></h3>



<p class="wp-block-paragraph">며칠 동안 쿨러가 비명을 지르며 연산을 마친 컴퓨터가 마침내 백테스트 결과 리포트를 뱉어냈다. 모니터에 출력된 결과를 본 나는 내 눈을 의심할 수밖에 없었다.</p>



<ul class="wp-block-list">
<li><strong>총 거래 횟수:</strong> 856회</li>



<li><strong>승률:</strong> 18.57%</li>



<li><strong>총 수익률:</strong> -38.57%</li>
</ul>



<p class="wp-block-paragraph">계좌는 말 그대로 박살이 나 있었다. 856번의 매매를 하는 동안 봇은 끊임없이 피를 흘리며 시드를 갉아먹었다. 도대체 무엇이 문제였을까? 수식에 오류가 있었던 걸까? 나는 며칠 밤을 새워 코드를 처음부터 끝까지 뜯어보았지만, 로직 자체는 내가 설계한 수학적 원리 그대로 한 치의 오차 없이 완벽하게 작동하고 있었다.</p>



<p class="wp-block-paragraph">문제는 내 &#8216;수식&#8217;이 아니었다. 내가 봇을 풀어놓은 생태계, 즉 <strong>&#8217;15분봉&#8217;이라는 타임프레임 그 자체</strong>가 거대한 함정이었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="201" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-6-1024x201.png" alt="image" class="wp-image-2203" style="width:1237px;height:auto" title="비트코인 15분봉 백테스트, 처참했던 -38%의 기록" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-6-1024x201.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-6-300x59.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-6-768x151.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-6-1536x302.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-6-2048x402.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading"><strong>휩소(Whipsaw)와 수수료의 늪: 15분봉 단타의 잔혹한 진실</strong></h3>



<p class="wp-block-paragraph">15분봉, 5분봉 같은 하위 프레임 차트의 데이터를 깊게 파고들면서 나는 충격적인 사실을 깨달았다. 우리가 하루 종일 쳐다보는 그 짧은 캔들들의 70% 이상은 아무런 추세도, 의미도 없는 철저한 **&#8217;노이즈(잡음)&#8217;**였다.</p>



<p class="wp-block-paragraph">스마트 머니(거대 자본)는 이 노이즈를 십분 활용한다. 그들은 15분봉 상에서 전고점을 살짝 뚫는 척하면서 차트를 말아 올린다. 이를 본 수많은 단타 개미들이 &#8220;저항선 돌파다!&#8221;를 외치며 추격 매수를 한다. 하지만 불과 15분, 30분 뒤 차트는 무자비한 장대음봉을 내리꽂으며 원래 자리로 회귀한다. 이를 톱니바퀴에 갈려 나간다고 해서 **&#8217;휩소(Whipsaw)&#8217;**라고 부른다.</p>



<p class="wp-block-paragraph">내 봇은 바로 이 휩소의 완벽한 먹잇감이었다. 노이즈 속에서 아주 잠깐 매수세가 붙는 것을 &#8216;턴어라운드(바닥)&#8217;로 착각하고 진입했다가, 세력의 장난질에 속아 칼손절을 치는 행위를 무려 800번이나 무한 반복했던 것이다.</p>



<p class="wp-block-paragraph">더 끔찍한 것은 &#8216;수수료&#8217;와 &#8216;슬리피지(Slippage)&#8217;였다. 15분봉에서 하루에 5번, 10번씩 잦은 매매를 하게 되면, 승률이 50%를 넘더라도 결국 거래소에 내는 수수료 때문에 계좌는 우하향할 수밖에 없다. 15분봉에서의 자동매매는 그저 **&#8217;거래소에 내 시드를 헌납하는 고성능 기계&#8217;**에 불과했던 것이다.</p>



<h3 class="wp-block-heading"><strong>노이즈를 걷어내고 심해(Deep Water)로 들어가다</strong></h3>



<p class="wp-block-paragraph">나는 얕은 물가에서 찰랑거리는 잔파도(노이즈)를 타려는 헛된 욕심을 버리기로 했다. 자잘한 흔들림이 걸러지고, 거대 고래들이 진짜 방향을 틀 때만 움직이는 &#8216;심해(Deep Water)&#8217;로 전장을 옮겨야 했다.</p>



<p class="wp-block-paragraph">수만 번의 변수 최적화와 타임프레임 테스트 끝에, 내 로직이 노이즈를 무시하고 압도적인 승률을 내기 시작하는 **&#8217;황금 타임프레임&#8217;**의 스윗 스팟(Sweet Spot)을 찾아냈다.</p>



<ul class="wp-block-list">
<li><strong>한국 주식 (KOSPI/KOSDAQ): 1시간봉</strong></li>



<li><strong>크립토 (비트코인 등): 4시간봉</strong></li>
</ul>



<p class="wp-block-paragraph">봇의 타임프레임을 15분봉에서 4시간봉으로 바꾸고 다시 백테스트를 돌렸다. 수식은 단 한 줄도 수정하지 않았다. 오직 시간의 기준만 넓혔을 뿐인데, <strong>-38.57%였던 봇의 수익률은 +485%로 수직 상승했다.</strong> 잦은 손절은 사라졌고, 한 번 추세를 타면 끝까지 발라먹는 진짜 사냥개의 모습으로 변해 있었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="220" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-8-1024x220.png" alt="image" class="wp-image-2205" style="aspect-ratio:4.654646324549237;width:1240px;height:auto" title="비트코인 15분봉 백테스트, 처참했던 -38%의 기록" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-8-1024x220.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-8-300x64.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-8-768x165.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-8-1536x330.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-8-2048x440.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="219" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-7-1024x219.png" alt="image" class="wp-image-2204" style="aspect-ratio:4.675833579226911;width:1240px;height:auto" title="비트코인 15분봉 백테스트, 처참했던 -38%의 기록" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-7-1024x219.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-7-300x64.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-7-768x164.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-7-1536x329.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-7-2048x439.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading"><strong>다음 기록: 상승장에서는 천재, 하락장에서는 바보?</strong></h3>



<p class="wp-block-paragraph">타임프레임의 비밀을 깨닫고 수익률을 플러스로 돌려놓았지만, 아직 안심하기엔 일렀다.</p>



<p class="wp-block-paragraph">1시간봉, 4시간봉에서도 극복할 수 없는 거대한 재앙이 있었기 때문이다. 바로 2022년과 같은 끝없는 **&#8217;대세 하락장&#8217;**이다. 거대한 폭포수 아래에서는 아무리 4시간봉에서 바닥을 잘 잡아도, 결국 반등은 짧고 하락은 길었다. 봇은 하락장에서도 꿋꿋하게 롱(매수) 버튼을 누르며 피를 흘리고 있었다.</p>



<p class="wp-block-paragraph">이 무모한 사냥개에게 하락장에서는 절대 물지 말고 엎드려 기다리게 만드는 **&#8217;강력한 목줄(필터)&#8217;**이 필요했다. 다음 기록에서는 내 봇에 장착한 가장 완벽한 방어막, **EMA 200(장기 추세 필터)**에 대한 데이터와 통계를 정리해 보려 한다.</p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://wealth-engine.com/golden-timeframe-crypto/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/golden-timeframe-crypto/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>내 모니터에서 모든 보조지표를 지워버린 날 (후행성의 한계)</title>
		<link>https://wealth-engine.com/remove-trading-indicators/</link>
					<comments>https://wealth-engine.com/remove-trading-indicators/#respond</comments>
		
		<dc:creator><![CDATA[ninano26]]></dc:creator>
		<pubDate>Tue, 24 Mar 2026 08:07:37 +0000</pubDate>
				<category><![CDATA[퀀트 연구 일지]]></category>
		<category><![CDATA[보조지표]]></category>
		<category><![CDATA[블러드하운드]]></category>
		<category><![CDATA[퀀트투자]]></category>
		<category><![CDATA[트레이딩]]></category>
		<category><![CDATA[후행성]]></category>
		<guid isPermaLink="false">https://wealth-engine.com/?p=2185</guid>

					<description><![CDATA[기록의 시작: 선(Line)에 집착했던 나의 오만함 트레이딩을 업으로 삼겠다고 다짐했던 처음 몇 년 동안, 내 책상 위 모니터는 그야말로 화려함의 극치였다. 차트 위에는 5일, 20일, 60일, 120일, 200일 이동평균선을 무지개색으로 깔아두었고, 그 위아래로 볼린저 밴드를 두껍게 감싸놓았다. 화면 하단에는 MACD, RSI, 스토캐스틱 같은 보조지표들이 각자의 파동을 그리며 쉴 새 없이 움직였다. 화면이 복잡한 수식과 선들로 [&#8230;]<p>Read more at <a href="https://wealth-engine.com/remove-trading-indicators/">Wealth Engine</a></p>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>기록의 시작: 선(Line)에 집착했던 나의 오만함</strong></h3>



<p class="wp-block-paragraph">트레이딩을 업으로 삼겠다고 다짐했던 처음 몇 년 동안, 내 책상 위 모니터는 그야말로 화려함의 극치였다.</p>



<p class="wp-block-paragraph">차트 위에는 5일, 20일, 60일, 120일, 200일 이동평균선을 무지개색으로 깔아두었고, 그 위아래로 볼린저 밴드를 두껍게 감싸놓았다. 화면 하단에는 MACD, RSI, 스토캐스틱 같은 보조지표들이 각자의 파동을 그리며 쉴 새 없이 움직였다. 화면이 복잡한 수식과 선들로 꽉 찰수록, 내 마음속에는 묘한 안도감이 스며들었다.</p>



<p class="wp-block-paragraph">마치 시장의 모든 변수를 통제할 수 있는 완벽한 레이더망을 내 손으로 구축한 것 같았기 때문이다. 두꺼운 전공 서적이나 유명하다는 강의에서 배운 대로, 이 지표들이 교차하고 특정 수치에 도달할 때 기계적으로 매매하기만 하면 나 역시 꾸준한 수익을 내는 상위 1%가 될 수 있을 거라 굳게 믿었다. 철저한 착각이자 오만이었다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="495" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-3-1024x495.png" alt="image" class="wp-image-2189" style="aspect-ratio:2.068785908201275;width:1240px;height:auto" title="내 모니터에서 모든 보조지표를 지워버린 날 (후행성의 한계)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-3-1024x495.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-3-300x145.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-3-768x372.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-3-1536x743.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-3-2048x991.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">실제 시장은 내 모니터 속 지표들처럼 예쁘게 움직여주지 않았다. 지표상으로 완벽한 &#8216;골든크로스(단기 이평선이 장기 이평선을 위로 뚫는 현상)&#8217;가 나와서 벅찬 가슴으로 진입하면, 기가 막히게도 그 자리가 단기 상투였다. 반대로 RSI가 30 밑으로 떨어지는 &#8216;과매도(Oversold)&#8217; 구간을 가리키길래 &#8220;이쯤이면 바닥이겠지&#8221; 하고 매수를 받으면, 차트는 지지선을 깨고 끝없는 지하실로 추락해 버렸다.</p>



<p class="wp-block-paragraph">손절을 치고 나면 그제야 나를 비웃듯 반등하는 차트를 보며, 나는 내가 차트 공부를 덜 한 탓이라 자책했다. 수식을 밤새 수정하고 더 복잡한 지표를 덧붙여 보았지만 결과는 늘 같았다. 그러던 어느 날 새벽, 멍하니 붉은색과 푸른색으로 얼룩진 계좌를 보다가 아주 근본적이고 서늘한 질문 하나가 뇌리를 스쳤다.</p>



<p class="wp-block-paragraph"><strong>&#8220;왜 내가 만든 수식은, 항상 가격이 다 움직이고 난 뒤에야 반응을 하는 걸까?&#8221;</strong></p>





<h3 class="wp-block-heading"><strong>데이터의 해부: 내가 믿었던 수식들의 치명적 결함</strong></h3>



<p class="wp-block-paragraph">나는 내가 그토록 맹신하던 지표들의 수학적 원리를 백지상태에서 처음부터 다시 뜯어보기 시작했다. 그리고 아주 단순하지만 뼈아픈 진실을 마주했다. 내가 아는 대부분의 보조지표는 **&#8217;과거 데이터(주로 종가)의 평균값&#8217;**에 불과하다는 사실이었다.</p>



<p class="wp-block-paragraph">캔들이 완전히 닫히고 가격이 모두 결정된 이후에야 비로소 지표의 선이 한 칸 움직인다. 이는 비유하자면, 자동차의 전면 유리를 시트지로 새까맣게 가려놓고 오직 <strong>&#8216;백미러&#8217;만 보며 고속도로를 운전하는 짓</strong>과 같았다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="683" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-1-1024x683.png" alt="image" class="wp-image-2187" style="aspect-ratio:1.4992793575987737;width:1238px;height:auto" title="내 모니터에서 모든 보조지표를 지워버린 날 (후행성의 한계)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-1-1024x683.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-1-300x200.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-1-768x512.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-1.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">전방 100m 앞에서 거대한 덤프트럭이 급정거를 해서 당장 브레이크를 밟아야 하는 절체절명의 순간. 내 백미러(보조지표)는 조용히 이렇게 말하고 있었다. <em>&#8220;지난 10분 동안 평균 시속 100km로 아주 안전하게 잘 달려왔습니다. 평균값이 좋으니 계속 엑셀을 밟으세요.&#8221;</em> 사고가 나고 차가 형체도 없이 박살이 나서 완전히 멈춰 선 뒤에야, 지표는 서서히 고개를 아래로 꺾으며 &#8220;아, 방금 큰 하락이 있었네요&#8221;라고 뒷북을 친다. 지표의 수식이 틀린 것이 아니었다. 과거의 평균값이 가지는 태생적인 한계, 바로 **&#8217;후행성(Lagging)&#8217;**이라는 늪에 나 스스로 걸어 들어간 것이었다.</p>



<h3 class="wp-block-heading"><strong>스마트 머니의 합리적 선택, 그리고 나의 뼈아픈 깨달음</strong></h3>



<p class="wp-block-paragraph">더 무서운 사실은, 시장을 쥐락펴락하는 거대 자본(스마트 머니)이 이 지표의 후행성을 나보다 수백 배는 더 잘 이해하고 있다는 점이었다. 이를 악의적인 세력의 음모라며 분노할 필요는 없었다. 그들이 막대한 물량을 처리하기 위해 선택하는 지극히 &#8216;합리적인 시장 메커니즘&#8217;일 뿐이니까.</p>



<p class="wp-block-paragraph">금융 시장은 누군가 사면 누군가는 팔아야 하는 구조다. 수천억 원어치의 물량을 시장에 큰 충격 없이 고점에서 팔아치우려면, 그 어마어마한 물량을 기꺼이 사줄 풍부한 매수세(유동성)가 필요하다.</p>



<p class="wp-block-paragraph">그 유동성이 폭발하는 순간은 언제일까? 바로 나와 같은 수많은 개인 투자자들의 모니터에 이동평균선 정배열이나 MACD 양수 전환 같은 &#8216;매수 신호&#8217;가 동시다발적으로 뜨는 찰나다. 개인들의 매수세가 불나방처럼 쏟아져 들어올 때, 거대 자본은 그 넘치는 유동성을 이용해 자신들의 무거운 물량을 조용히 떠넘기고 시장을 빠져나간다.</p>



<p class="wp-block-paragraph">내가 며칠을 뜬눈으로 지새우며 &#8216;돌파 매매&#8217;라고 확신하고 들어갔던 자리가, 누군가에게는 유동성이 가장 풍부해져 수익 실현을 하기 완벽한 자리였던 것이다. 이 잔혹한 구조를 온전히 이해하고 난 뒤, 나는 차트 위에 띄워두었던 모든 보조지표를 하나씩 조용히 삭제했다. 과거의 잔상을 쫓는 짓은 오늘로 영원히 끝내기로 했다. 텅 빈 차트 위에는 오직 가격이 만들어낸 캔들과 거래량만이 남았다.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="490" src="https://wealth-engine.com/wp-content/uploads/2026/03/image-2-1024x490.png" alt="image" class="wp-image-2188" style="aspect-ratio:2.0898973148797757;width:1240px;height:auto" title="내 모니터에서 모든 보조지표를 지워버린 날 (후행성의 한계)" srcset="https://wealth-engine.com/wp-content/uploads/2026/03/image-2-1024x490.png 1024w, https://wealth-engine.com/wp-content/uploads/2026/03/image-2-300x143.png 300w, https://wealth-engine.com/wp-content/uploads/2026/03/image-2-768x367.png 768w, https://wealth-engine.com/wp-content/uploads/2026/03/image-2-1536x735.png 1536w, https://wealth-engine.com/wp-content/uploads/2026/03/image-2-2048x980.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>





<h3 class="wp-block-heading"><strong>새로운 가설: 과거의 평균 대신 현재의 &#8216;모멘텀&#8217;을 잴 수는 없을까</strong></h3>



<p class="wp-block-paragraph">후행성의 늪에서 벗어나기 위해 나는 백지상태에서 새로운 가설을 세웠다. &#8220;캔들이 다 완성되기 전, 지금 당장 시장에 들어오고 있는 에너지의 강도를 실시간으로 측정하는 방법은 없을까?&#8221;</p>



<p class="wp-block-paragraph">나는 가격의 절대적인 &#8216;위치&#8217;를 보는 대신, 가격이 변하는 &#8216;속도와 가속도&#8217;에 집중해 보기로 했다. 비트코인은 하루에 수백만 원이 움직이고, 알트코인은 단돈 몇십 원이 움직인다. 이 거대한 가격 스케일의 차이를 무시하고, 현재 시장의 모멘텀을 동일한 기준으로 측정할 수 있는 유일한 방법. 나는 삼각함수를 활용해 차트의 **&#8217;각도(Momentum Angle)&#8217;**를 계산하는 코드를 짜기 시작했다.</p>



<p class="wp-block-paragraph">자동차가 가파른 오르막길을 오르다 엔진 힘이 빠지면, 뒤로 밀리기 직전 아주 잠깐 속도가 0이 되며 멈추는 찰나가 있다. 하락장에서도 마찬가지다. 끝없는 투매 속에서 매도세가 완전히 소진되고, 매수 에너지가 수학적으로 아주 미세하게 상방으로 고개를 드는 짧은 찰나.</p>



<p class="wp-block-paragraph">나는 수개월간 지독하게 데이터를 깎고 다듬은 끝에, 이 턴어라운드(Turnaround) 타점을 포착하는 로직을 코딩했고, 이를 **&#8217;Alpha Trigger (AT)&#8217;**라 명명했다.</p>



<p class="wp-block-paragraph">이 시그널은 무당처럼 &#8220;이제 무조건 오를 것이다&#8221;라고 점을 치는 예측이 아니다. 그저 &#8220;현재 시장을 짓누르던 하락의 가속도가 0에 수렴했다&#8221;는 사실을 덤덤하게 보여주는 실시간 데이터의 기록일 뿐이다. 내 퀀트 트레이딩, &lt;블러드하운드 알고리즘&gt;의 뼈대는 바로 이 지점에서 태어났다.</p>





<h3 class="wp-block-heading"><strong>다음 기록을 위한 메모: 완벽해 보이던 수식의 처절한 실패</strong></h3>



<p class="wp-block-paragraph">바닥의 징후를 잡는 수식을 완성했을 때, 나는 드디어 시장을 이길 완벽한 무기를 찾았다고 생각했다. 이 로직의 타당성을 검증하기 위해, 나는 수많은 단타 트레이더들이 사랑하는 <strong>&#8216;비트코인 15분봉&#8217;</strong> 차트에 이 봇을 풀어놓고 지난 10년 치의 백테스트를 돌렸다.</p>



<p class="wp-block-paragraph">하지만 며칠 뒤 모니터에 출력된 결과는 나를 깊은 절망에 빠뜨렸다. 승률 18.57%, 총 수익률 -38.57%. 수식은 논리적이었지만, 계좌는 처참하게 박살이 나 있었다.</p>



<p class="wp-block-paragraph">도대체 무엇이 문제였을까? 로직이 완벽해도 봇이 15분봉에서 피를 흘리며 죽어갈 수밖에 없었던 이유. 다음 기록에서는 내가 15분봉 백테스트를 통해 겪었던 뼈아픈 실패의 과정과, 단기 트레이딩 환경이 가진 구조적 노이즈(잡음)에 대해 정리해 두어야겠다.</p>
<p>Read more at <a href="https://wealth-engine.com/remove-trading-indicators/">Wealth Engine</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://wealth-engine.com/remove-trading-indicators/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
