Node.js 10

[계좌 리팩토링] 10편(심화). 진짜 퀀트의 시작! 일목균형표(Ichimoku Cloud) 매매 로직 연동하기

시스템은 완성되었다, 이제는 '두뇌'를 장착할 시간안녕하세요! 9편의 텔레그램 알림을 마지막으로 자동매매 봇의 물리적인 아키텍처는 모두 완성되었습니다. 하지만 우리 봇은 아직 "언제 사야 할지" 스스로 결정하지 못합니다. 단지 우리가 하드코딩해 둔 특정 가격이나 단순 비율에 의존할 뿐이죠.진정한 자동매매, 즉 '퀀트(Quant)' 투자의 세계로 넘어가기 위해서는 차트의 흐름을 읽고 수학적 통계에 기반한 매매 알고리즘(전략)을 봇에게 심어주어야 합니다.수많은 보조지표(RSI, MACD, 볼린저 밴드 등)가 있지만, 이번 심화편에서는 추세의 방향과 지지/저항을 한눈에 파악할 수 있어 강력한 팬덤을 가진 일목균형표(Ichimoku Cloud)를 활용한 매매 로직을 Node.js로 구현해 보겠습니다.1단계: 차..

[계좌 리팩토링] 9편(외전). 봇의 보고서를 내 폰으로! 텔레그램(Telegram) 실시간 알림 연동

서버에 있는 봇과 소통하는 방법안녕하세요! 내 계좌를 프로그래밍하는 [계좌 리팩토링] 시리즈, 그 대망의 마지막 9편(외전)입니다. 지난 8편에서 우리는 PM2를 통해 서버 구석에서 조용히, 하지만 24시간 쉬지 않고 돌아가는 무중단 자동매매 시스템을 완성했습니다.그런데 시스템이 알아서 매매를 한다고 하더라도, 내 피 같은 돈이 오가는 일인데 "방금 삼성전자 1주를 샀습니다", "수익률 3% 도달로 익절했습니다" 같은 상황을 전혀 모른다면 하루 종일 불안하겠죠? 매번 터미널에 접속해 pm2 logs를 쳐다보고 있을 수도 없는 노릇입니다.그래서 이번 시간에는 텔레그램(Telegram) API를 활용해, 봇이 중요한 행동(매수/매도 체결, 심각한 에러 발생 등)을 할 때마다 내 스마트폰으로 실시간 메시지를 ..

[계좌 리팩토링] 8편. 24시간 잠들지 않는 봇! PM2와 node-cron으로 무중단 자동화 완성하기

우리가 일할 때도, 봇은 차트를 본다안녕하세요. 감정 없는 기계적인 매매로 내 계좌를 든든하게 지켜내는 [계좌 리팩토링] 시리즈 8편입니다. 지난 7편까지 우리는 API 토큰 발급, 잔고 조회, 실시간 시세 연동, 그리고 대망의 매수/매도 로직까지 모두 완성했습니다.하지만 여기까지는 절반의 완성입니다. 우리가 터미널에서 node app.js를 치고 컴퓨터를 켜두어야만 봇이 돌아간다면, 진정한 의미의 '자동화'라고 할 수 없겠죠. 컴퓨터가 꺼지거나, 우리가 직장에서 본업에 집중하는 동안에도 봇은 백그라운드에서 조용히 자신의 임무(수익 창출)를 수행해야 합니다.이번 8편에서는 봇을 서버(또는 항상 켜두는 PC)에 올려두고, 정해진 시간에만 작동하며 에러가 나도 스스로 재시작하는 완벽한 무중단 시스템을 구축해..

[계좌 리팩토링] 7편. 수익의 완성! Node.js 주식 매도 주문 및 수익률 자동 계산

사는 것보다 파는 것이 더 중요하다안녕하세요. 감정을 배제하고 완벽한 로직으로 계좌를 재설계하는 [계좌 리팩토링] 시리즈 7편입니다. 지난 6편에서 우리는 봇에게 주식을 매수하는 '손'을 달아주었습니다. 주문이 체결되는 것을 보며 짜릿함을 느끼셨을 텐데요.하지만 주식 시장에서 오랜 격언이 있죠. "매수는 기술이고, 매도는 예술이다." 아무리 좋은 타점에 주식을 샀더라도, 적절한 시점에 팔지 못하면 그 수익은 결코 내 계좌의 것이 되지 않습니다. 오히려 '조금만 더 오르겠지' 하는 탐욕이나 '다시 오를 거야'라는 미련 때문에 익절과 손절 타이밍을 놓치고 계좌가 망가지는 경우가 허다합니다.이번 7편에서는 봇이 냉철하게 수익률을 계산하고, 목표한 조건(익절/손절 라인)에 도달했을 때 미련 없이 주식을 던지는 ..

[계좌 리팩토링] 6편. 드디어 실전! Node.js로 주식 매수 주문 자동화하기

머리로 생각한 타점, 코드로 실행하다안녕하세요. 내 계좌를 튼튼하게 다지는 [계좌 리팩토링] 자동매매 봇 만들기 시리즈 6편입니다. 지난 시간까지 우리는 봇에게 '눈'과 '귀'를 달아주었습니다. 4편에서는 내 계좌의 예수금 상태(REST API)를 파악했고, 5편에서는 시장의 실시간 시세(WebSocket)를 읽어내는 데 성공했습니다.이제 드디어 봇에게 '손'을 달아줄 차례입니다. 우리가 설정한 로직(타점)이 왔을 때, 망설임이나 감정의 동요 없이 기계적으로 주식을 사들이는 '매수 주문(Buy Order)'을 구현해 보겠습니다.시장가 vs 지정가: 봇에게 어떻게 명령할 것인가?주문을 코드로 구현하기 전에, 증권사 API가 요구하는 주문의 형태를 이해해야 합니다. 자동매매에서 가장 많이 쓰이는 두 가지 주..

[계좌 리팩토링] 5편. 뚝딱뚝딱 호가창 연동! Node.js 실시간 시세 조회 (WebSocket)

자동매매 봇의 심장, '실시간 시세'안녕하세요. 우리의 계좌를 튼튼하게 리팩토링하는 자동매매 봇 개발 시리즈, 벌써 5편입니다. 지난 4편에서는 REST API를 통해 우리의 계좌 예수금과 보유 잔고를 실시간으로 가져오는 구현을 마쳤습니다. "내가 무엇을 얼마나 가졌는지"는 이제 봇이 정확히 압니다.하지만 무엇을 살 것인가요? 그리고 언제 살 것인가요? 이 질문에 답하기 위해서는 시장의 움직임, 즉 실시간 종목 시세(호가) 데이터가 필요합니다. 4편에서 사용한 REST API 방식(Polling)으로 시세를 1초에 한 번씩 물어볼 수도 있겠지만, 이는 효율적이지 않고 증권사 서버에 부하를 줍니다.그래서 우리는 더 빠르고, 효율적이며, 즉각적인 WebSocket 기술을 사용하여 증권사 호가창을 내 봇의 터..

[계좌 리팩토링] 4편. 내 계좌 정보, 실시간으로 완벽하게 파싱하기 (REST API)

감정에 휘둘리지 않으려면 데이터가 필요하다안녕하세요, 주식 자동매매 봇을 만드는 여러분. 지난 시간까지 우리는 환경 세팅과 API 토큰 발급까지 마쳤습니다. 이제 드디어 증권사 서버에서 우리의 실제 돈, 즉 계좌 정보를 실시간으로 가져오는 구현을 해볼 차례입니다.썸네일에서 보신 것처럼, 이것은 'API 아키텍처 완벽 마스터'의 핵심입니다. 뇌동매매를 줄이고 안정적인 수익을 내기 위해서는, 내 봇이 현재 정확히 얼마를 가지고 있고(D+2 활용금 포함), 어떤 종목을 얼마나 보유하고 있는지(TR 코드 매핑)를 한 치의 오차 없이 알아야 합니다.TR 코드를 통한 계좌 정보 매핑 (with KIS Developers)한국투자증권(KIS) API에서는 TR(Transaction) 코드라는 개념을 사용합니다. 특정..

[계좌 리팩토링] 3편. 매매 봇의 심장을 켜다! KIS API 토큰(Access Token) 발급 및 캐싱 전략

1. 출입증(App Key)이 있어도 임시 방문증(Token)이 필요한 이유지난 2편에서 우리는 한국투자증권(KIS) 개발자 센터를 통해 나만의 고유한 출입증인 'App Key'와 'App Secret'을 발급받고, 이를 안전하게 .env 파일에 보관하는 작업까지 마쳤습니다. 그렇다면 이 두 가지 키만 있으면 바로 증권사 서버에서 주식 가격을 가져오고 매수 주문을 넣을 수 있을까요? 정답은 '아니오'입니다.보안이 가장 중요한 금융 시스템에서는 만약 누군가 여러분의 App Key와 App Secret을 탈취하더라도, 영구적으로 계좌에 접근하는 것을 막기 위해 'OAuth 2.0' 기반의 토큰(Token) 인증 방식을 사용합니다. 쉽게 비유하자면, App Key와 App Secret은 내 고유한 신분을 증명..

[계좌 리팩토링] 2편. 첫 단추가 절반! Node.js 환경 세팅 및 KIS API 발급

1. 봇 개발을 위한 기본 무기 장착 (Node.js & VS Code)감정이 배제된 나만의 자동매매 봇을 만들기 위한 첫걸음입니다. 먼저 코드를 작성하고 실행할 환경을 만들어야 합니다. 이미 개발 환경이 갖춰져 있으신 분들은 이 단계를 건너뛰셔도 좋습니다.Node.js 설치: Node.js 공식 홈페이지(nodejs.org)에 접속하여 LTS(안정적인 버전)를 다운로드하고 설치합니다. 봇은 안정성이 생명이므로 최신 버전보다는 LTS 버전 사용을 강력히 권장합니다.코드 에디터 (VS Code): Microsoft에서 무료로 제공하는 Visual Studio Code를 설치합니다. 수많은 확장 프로그램과 터미널을 내장하고 있어 Node.js 개발에 가장 최적화된 에디터입니다.2. 한국투자증권(KIS) Op..

[계좌 리팩토링] 1편. 감정에 휘둘리는 뇌동매매 탈출! Node.js 주식 자동매매 봇 만들기 입문

1. 나의 계좌에도 '리팩토링(Refactoring)'이 필요하다주식 투자를 경험해 본 사람이라면 누구나 공감하는 뼈아픈 진실이 있습니다. 주식 시장에서 수익을 갉아먹는 가장 큰 적은 다름 아닌 '나 자신의 감정'이라는 것입니다. 머리로는 명확한 손절 라인과 익절 목표가를 설정해 두었음에도 불구하고, 호가창이 요동치는 순간 인간의 본성인 탐욕과 공포가 이성을 지배하게 됩니다.결국 원칙은 무너지고, 충동적인 뇌동매매로 이어지며 계좌는 걷잡을 수 없이 망가집니다. 개발자들이 엉켜버린 스파게티 코드를 깔끔하고 효율적인 구조로 뜯어고치는 작업을 '리팩토링(Refactoring)'이라고 부르듯, 우리의 주식 계좌 역시 인간의 불완전한 감정을 완벽하게 배제하고 철저한 데이터와 로직에 의해 움직이도록 근본적인 리팩토..