Deep Learning Stock Trading

인공지능으로 나만의 주가 예측기 만들기 도전

traderbaekdoosan 2025. 5. 24. 22:56

 

트하! 안녕하세요? 트레이더 백두산 입니다.

 

요즘 장이 정치테마주 때문에 정상적인 매매가 쉽지많은 상태입니다. 빨리 대선이 치뤄지고 불확실성이 해소되어서 우리 장이 다시 활발히 돈맥경화가 뚫리고, 장의 판세가 다시 연초에 말씀드린 트럼프와 일론의 큰 방향성에 올라타게 되기를 바랍니다. (안보신분들은 확인해보고 오세요, SMR쪽은 확신가지고 말씀드렸었습니다 ^^)

 

인공지능, 발전, 전기, 자율주행, 로봇 등이 주도 테마가 될것이라고 생각하고, 베터리들이 완전 바닥을 뚫고 내려가고 있어서, 이제 슬슬 적립식으로 모아가셔도 2~3개월안에 좋은 열매 맺을것으로 판단됩니다. 배터리는 매일 조금씩 계속 사는 전략이 좋은 바닥주 줍줍 전략입니다. 가능하면 대장 (삼성 SDI, LG엔솔, 에코프로비엠 등) 중심으로 모아가 보시면, 빠른 시일내에 좋은 흐름 올것으로 생각합니다. SMR 원전 주들 슈팅중인데 이거는 이미 보유중이고, 분할매도를 해야하는것이지 이제와서 신규진입한다고 하면 안됩니다.

 

인공지능쪽에 몸을 담고 있는바.. 이쪽의 발전이 계속되고 있고 구글 IO 2025에서 충격적인 수준을 보여준 구글은 OpenAI를 이미 뛰어넘었다고 생각하고.. 36만원짜리 계정도 몇개월간만 이라도 enable해서 사용해보고 싶을 정도입니다. (알파벳 A 없으신분들은 모아가셔도 좋습니다. 테슬라도 바닥에서 유튜브 멤버십 분들있는 텔레그램방에서 테슬라랑 뉴스케일파워 모아가시라고 말씀드렸는데, 날라가고 있습니다. 알파벳은 아직 급등전입니다.) 구글은 구글이고, 제미나이를 통해서 딥러닝으로 SOTA (state of the art)를 달성한 모델이 어떤건지 물어보니 여러가지가 나오는데, FEDformer란 녀석이 눈에 들어옵니다.

 

FEDformer: 시간 순서 대신 '주파수'로 미래를 예측하는 똑똑한 방법 🧐

혹시 주식 가격이나 날씨처럼 시간에 따라 변하는 데이터를 예측하는 모델을 만들어 본 적 있으신가요? 보통 이런 데이터를 시계열 데이터라고 부르는데요. FEDformer는 바로 이 시계열 데이터를 아주 효과적으로 예측하는 최신 딥러닝 모델 중 하나랍니다.

FEDformer가 특별한 이유는 바로 데이터를 주파수 도메인에서 바라본다는 점이에요! 🎶


🤔 시간 도메인 vs. 주파수 도메인, 그게 뭔데?

우리가 흔히 접하는 시계열 데이터는 시간 도메인에 있다고 말해요. 마치 시간이 흘러감에 따라 데이터 값이 어떻게 변하는지 쭉 나열해 놓은 것과 같죠. 예를 들어, 어제, 오늘, 내일의 기온 변화를 순서대로 기록한 것이 바로 시간 도메인 데이터입니다.

하지만 FEDformer는 이 데이터를 다른 관점에서 바라봅니다. 바로 주파수 도메인인데요. 어렵게 들릴 수 있지만, 간단하게 생각하면 데이터가 어떤 **반복적인 패턴(주기)**을 가지고 있는지 분석하는 거예요.

쉬운 예시를 들어볼게요. 🎺

여러 악기가 동시에 연주되는 오케스트라 음악을 듣는다고 상상해 보세요.

  • 시간 도메인에서 이 음악을 본다면, 시간에 따라 소리의 크기가 어떻게 변하는지를 나타내는 하나의 복잡한 파형으로 보일 거예요. 어떤 악기가 어떤 소리를 내는지 한눈에 파악하기 어렵죠.
  • 하지만 주파수 도메인으로 변환하면, 이 음악을 구성하는 각각의 악기 소리(낮은음, 중간음, 높은음 등)를 분리해서 볼 수 있어요. 마치 음향 분석기가 각 주파수 대역별로 소리의 세기를 보여주는 것처럼요! 낮은 주파수는 묵직한 첼로나 드럼 소리, 높은 주파수는 날카로운 바이올린이나 플루트 소리에 해당할 수 있겠죠.

FEDformer는 시계열 데이터도 이와 비슷하게 접근합니다. 복잡하게 얽혀있는 시간의 흐름 속에서 숨겨진 주기적인 패턴들을 찾아내는 거죠. 예를 들어, 매년 여름에 아이스크림 판매량이 증가하거나, 매일 아침 출근 시간에 교통량이 많아지는 것처럼요.


✨ FEDformer는 주파수 도메인을 어떻게 활용할까?

FEDformer는 **푸리에 변환(Fourier Transform)**이라는 수학적 도구를 사용해서 시간 도메인의 데이터를 주파수 도메인으로 바꿔줍니다. 이렇게 변환된 주파수 정보 중에서 중요한 패턴들만 쏙쏙 골라내서 미래를 예측하는 데 활용해요.

FEDformer의 핵심 아이디어:

  1. 푸리에 변환으로 변신!: 입력된 시계열 데이터를 주파수 도메인으로 옮겨서 어떤 주기 성분들이 있는지 살펴봅니다.
  2. 핵심 주파수만 선택!: 모든 주파수 정보가 예측에 중요한 것은 아니에요. FEDformer는 이 중에서 미래 예측에 가장 영향력 있는 소수의 핵심 주파수 성분들만 똑똑하게 골라냅니다. 이렇게 하면 계산량도 줄이고, 불필요한 정보(노이즈)도 제거할 수 있어요.
  3. 어텐션 메커니즘 활용: Transformer 모델의 핵심 기술인 어텐션 메커니즘을 주파수 도메인에서 적용하여, 선택된 핵심 주파수들 사이의 관계를 파악하고 예측 정확도를 높입니다.
  4. 다시 시간 도메인으로!: 주파수 도메인에서 예측된 결과를 다시 우리가 이해하기 쉬운 시간 도메인으로 변환하여 최종 예측값을 얻습니다.

마치 오케스트라 음악에서 중요한 멜로디 라인을 담당하는 악기 소리만 추출해서 앞으로 이어질 음악을 예측하는 것과 비슷하다고 생각할 수 있어요!


이해를 돕기 위해서 Visualization을 해봤어요.

삼성전자를 예를 들어서 종가 차트를 그려봤습니다.

여기서 파란색 60일치 OHLCV데이터를 이용해서 푸리에 변환을 하면

이런식으로 표현을 할수 있게됩니다. 그다음 녹색도 이런식으로 표현, 빨간색도 이런식으로 표현을해서 그 값을 학습시키는것이죠. 그냥 OHLCV를 쓰는게 아니고 차원을 변경해서 사용하는거에요. 이렇게 학습을 하면서 이동평균선, 볼린저밴드, RSI, MACD 등의 지표와 코스피 종가지수와 거래량 데이터를 같이 feature로 넣고 학습을 시켰습니다. 그래서 지금 코스피 200여 종목의 10년치 데이터로 학습한 모델이 완성되었습니다.

 

그래서 이런식으로 엑셀파일로 out을 시켜주고 있어요

이중 추천할만한 놈을 엄선해서 Recommended_stocks으로 정리해주게끔 해서 내일 주가를 예측하고, 내일 장이 마치면 실제 종가를 업데이트해서 맞고 틀리고를 표시하면서 당분간 그 흐름을 지켜보려고 합니다. 아직 전혀 검증되지 않았고, 계속 모델을 가다듬고 있는 중입니다. 많은 응원부탁드립니다. 파이썬으로 추천한 종목에 대한 차트를 대략적으로 그려봤습니다.

이런식으로 최근 거래량이 활발하게 나오면서 급등했다 눌린 종목이 나왔네요. 과연 어찌 흘러갈지 지켜봐야겠습니다. (추천주로 드리는거 아니에요! 아직입니다.)

 

📈 FEDformer를 사용하면 뭐가 좋을까?

  • 장기 예측 능력 향상: 기존의 많은 모델들이 시간의 흐름에만 집중하다 보니 장기적인 미래를 예측하는 데 어려움을 겪었습니다. 하지만 FEDformer는 주파수 도메인에서 주기적인 패턴을 학습하기 때문에 장기 예측에서 뛰어난 성능을 보여줍니다.
  • 계산 효율성 증대: 중요한 주파수 성분만 선택적으로 사용하기 때문에 계산 복잡도를 크게 줄일 수 있습니다. 즉, 더 빠르고 효율적으로 모델을 학습하고 예측할 수 있다는 뜻이죠!
  • 노이즈에 강인함: 불필요한 주파수 성분을 제거하는 과정에서 데이터에 섞여 있는 노이즈의 영향을 줄여 더 안정적인 예측이 가능합니다.

 

📄 FEDformer 논문 링크

더 자세한 내용이 궁금하시다면 아래 FEDformer 공식 논문을 참고해 보세요!