AWS를 활용한 LSTM 모델 예측 시스템 구축
지난 포스팅에서는 시황 분석 모델을 훈련시켰고, 해당 모델을 키움 OpenAPI를 이용하여 만들었던 프로그램에 적용한다. 여기서 한 가지 문제를 직면하게 되는데, 모델을 훈련시켰던 환경은 64비트의 ubuntu 환경이고 키움 OpenAPI는 32비트의 환경에서만 돌아...
지난 포스팅에서는 시황 분석 모델을 훈련시켰고, 해당 모델을 키움 OpenAPI를 이용하여 만들었던 프로그램에 적용한다. 여기서 한 가지 문제를 직면하게 되는데, 모델을 훈련시켰던 환경은 64비트의 ubuntu 환경이고 키움 OpenAPI는 32비트의 환경에서만 돌아...
Qthread_9.py 구현 이제 자동매매 시작 버튼을 누르면 거래를 시작하는 코드를 구현한다. Qthread_9 - init() 생성 from PyQt5.QtCore import * from PyQt5.QtTest import * ...
Qthread_10.py 구현 Qthread_10.py 코드에서는 사용자가 지정한 시간마다 조건식에 해당되는 종목을 받아오는 부분을 구현한다. Qthread_8.py에서 구현했던 종목 수동 검색은 사용자가 직접 버튼을 눌러야 종목들이 검색되고 등록되는데 이를 ...
Qthread_8.py 구현 Qthread_8.py 코드에서는 조건식에 해당하는 종목들을 받아오는 부분을 구현한다. 조건식을 선택하고 종목 수동 검색을 누르면 종목들이 나온다. Qthread_8 - init() 생성 from PyQt...
Qthread_7.py 구현 Qthread_7.py 코드는 영웅문4에서 생성했던 조건검색식 목록들을 불러오는 역할을 한다. 조건식에 대한 일련번호를 가져오고 제작한 UI의 조건식 선택 박스에서 선택할 수 있도록 한다. Qthread_7 - in...
전체 흐름의 마지막인 조건식을 이용한 자동매매 구현만이 남았다. 이전 자동매매에서는 사용자가 직접 종목을 선정하여 그 종목에 대해 익절, 손절 분기점을 설정하여 자동매매를 진행하였으나 이번에는 키움에서 제공하는 조건식들을 이용하여 자동으로 종목을 선정하고 해당 종목을...
저번 포스팅에 이어 이번 포스팅에서는 분할 자동매매를 진행하는 코드를 구현한다. Division_Stock.py의 start_real_auto 메서드는 Thread6으로 구현된다. Thread6은 Qthread_6.py 파일로 구현한다. Qthread_6.py...
다음으로 구현할 부분은 분할 자동매매이다. 메인 윈도우의 빨간 동그라미 부분에 해당한다. 먼저 분할 매수매도의 윈도우의 UI와 코드를 연결하고 거래를 제외한 나머지 기능들을 구현하기 위한 Division_Stock.py를 생성한다. Division_St...
메인 윈도우가 되는 pytrader.py에서 현재까지 계좌 정보, 계좌 관리, 자동매매를 구현했다. 이제는 각기 다른 윈도우로 이동하여 시황 분석, 세분화된 자동매매 페이지, 조건식 자동매매 페이지를 구현한다. 먼저 구현할 것은 시황 분석이다. 주식 시장의 중심이 ...
Qthread_3.py 구현 pytrader.py에서 자동매매 부분을 구현하는 코드이다. 선정한 종목을 추가 or 데이터베이스에서 불러와서 실제 거래를 진행한다. Qthread_3.py - init 생성 import os fro...
pytrader.py 이전 포스팅에서 기본 클래스(kiwoom.py)와 UI를 제작하였다. 이제 UI들에 기능을 넣어주고, kiwoom.py의 데이터들을 구현하는 코드를 작성한다. pytrader.py - UI 불러오기 및 init() 생성 ...
Qthread_2.py 구현 pytrader.py에서 계좌 관리 부분을 구현하는 코드이다. 우리가 가진 주식 종목이 얼마나 위험한지 역배열인지 간단하게 파악해 볼 수 있는 코드를 구현한다. Qthread_2.py - init 생성 f...
Qthread_1.py 구현 이전 포스팅인 pytrader.py 구현에서 계좌평가잔고내역 조회가 구현된 코드이다. Qthread_1.py - init 생성 Qthread_1은 pytrader와 마찬가지로 클래스로 구성되므로 생성자 생성 ...
1. Kiwoom 클래스 정의 (자동매매를 위한 프로그램의 기본 클래스) 키움 자동매매를 위해 필요한 기본 클래스를 선언한다. self.kiwoom은 OpenAPI의 ActiveX 컨트롤을 불러와 API와 직접 통신할 수 있도록 하는 변수를 지정한다. 그 외...
명령어 입력 키움 OpenAPI를 사용하기 위해선 우리가 현재 사용하고 있는 64bit 환경이 아닌 32bit 환경이 필요하다. anaconda와 키움 OpenAPI가 설치되었다면 32bit의 가상환경을 구성한다. 물론 자신의 컴퓨터가 원래 32bit 환경이...
이전 Kiwoom 자동 매매 프로그램 구현 포스팅들 중 시황분석 페이지에서 투자 점수 부분을 구현하지 않고 남겨두었다. 해당 부분을 LSTM 모델로 간단하게 오늘 투자 위험 여부를 판단하는 모델을 훈련시켜 적용하도록 구현한다. 데이터 전처리 데이터셋은 Investi...
5. Role and Style Prompting 이번 포스팅에서는 프롬프트 디자인을 위한 두 가지 효과적인 기법을 살펴본다. Role 프롬프트 그리고 Style 프롬프트, 두 기법 모두 Solar 모델에 적합하다. 5.1 모델에 역할 할당...
3. Five Focal Prompt Elements and Types 이번 포스팅에서는 잘 구성된 프롬프트의 다섯 가지 핵심 요소와 이러한 요소를 활용하는 다양한 유형의 프롬프트에 대해 살펴본다. 다섯가지 요소는 Instruction, Context, Exa...
4. Examples and Shot Prompting zero-shot, one-shot, few-shot 프롬프트와 같이 예시를 사용하는 잘 알려진 프롬프트 기법이 많다. 각 접근 방식과 효과적인 예시 설계의 원칙을 이해하면 Solar 모델의 성능을 크게 ...
2. Direct and Clear Prompts Solar 모델은 직접적이고 명확한(Direact and Clear) 프롬프트를 사용할 때 가장 좋은 결과를 제공한다. 대규모 언어 모델로 작업 시, 프롬프트의 문구 표현 방식이 수신되는 응답의 품질에 큰 영향...
1. Basic Prompt Structure Upstage에서 개발한 Solar 모델을 프롬프트 엔지니어링하는 기본적인 틀 및 심화 과정에 대해 요약한다. 프롬프트 엔지니어링은 해당 모델 뿐만 아니라 다른 LLM에서 사용될 수 있다. 해당 요약글은 다음의 ...
0. 라이브러리 불러오기 및 저장된 데이터 가져오기 import numpy as np import pandas as pd import os import random from tqdm import tqdm from tqdm.auto import tqdm from da...
1. 데이터 다운로드 및 라이브러리 불러오기 import numpy as np import pandas as pd import matplotlib.pyplot as plt import os import warnings warnings.filterwarnings("i...
1. 데이터 다운로드 및 라이브러리 불러오기 import numpy as np import pandas as pd import matplotlib.pyplot as plt import os import seaborn as sns import warnings warn...
간단한 데이터 정제 및 전처리 넘파이와 판다스 라이브러리를 불러오고, ufo 데이터셋을 불러온다. 처음 다운로드 된 데이터셋은 빈 칸에 null 값이 설정되어 있지 않다. 따라서 파일을 직접 수정하여 빈 칸을 null 값으로 대체하였다. import numpy a...
로지스틱 회귀 소개 로지스틱 회귀(Logistic Regression) (또는 Logit Regression)는 데이터 과학의 새로운 이진 분류 문제를 해결할 때, 생각할 수 있는 대표적인 알고리즘이다. 로지스틱 회귀는 이산적인 값을 가지는 클래스를 예측할 때...
import numpy as np import pandas as pd import random as rd import matplotlib.pyplot as plt import seaborn as sns # 머신러닝에 필요한 csv 파일 다운로드 train_set =...
◆ Pytorch - DNN 구현 (25.06.18 위키라이더) LM to LMM 강의의 Large Language Model 기초 정리 What is Large Language Model? Large Language Model(LLM) : 방대한 파라...
◆ Pytorch - DNN 구현 (25.06.18 위키라이더) Pytorch 강의의 Implement Deep Learning Models 챕터의 DNN 구현과 CNN, RNN 구현을 정리 딥러닝에서의 Pytorch 딥러닝을 구현하기 위한 대표적인 라...
1. 경진대회 개요 5월이 시작되고, 서울의 아파트 실거래가를 예측하는 경진대회가 시작되었다. 첫 회의 때 서로가 알고있던 도메인을 공유하여 주어진 데이터 내에서 feature들의 중요도를 파악하고, 추가적으로 어떤 데이터를 추가하여 모델의 성능을 향상시킬 수 있...
이틀에 걸쳐 Git을 이용하여 Github 저장소를 관리하고 팀 협업의 전체적인 흐름을 배웠다. 이전 프로젝트를 진행할 때는 Github Desktop을 이용하여 GUI로 간편하게 작업했었는데, git을 이용하여 작업하는 방법도 배웠다. 기본적인 명령어(Ex: add...
이번 챕터느 어느 대학을 가던지 컴퓨터공학과라면 배우는 내용들을 5일에 걸쳐 실시간으로 진행되었다. 크게 보면 자료구조, 알고리즘, 컴퓨터구조, 운영체제, 데이터베이스 5과목이다. 사실 해당 내용은 2학년 ~ 3학년에 걸쳐 배웠던 내용이었는데 5일이라는 짧은 시간...
기초적인 파이썬 문법, 라이브러리 강의가 끝나고 리서처로 활동하시는 강사분의 AI에 필요한 수학 이론 강의가 있었다. 확률과 통계, 미분(그레디언트) 등 여러가지가 필요했고, 고등학생 및 대학생 시절 배우지 않았던 부분도 존재하여 한편으로는 쉽기도 하고 헷갈리는 부...
부트캠프가 시작되고 첫 한 주를 보냈다. 실시간으로 강사님이 알려주시는 강의와 녹화된 영상을 수강하는 방식의 온라인 강의가 존재했다. 파이썬 기초 문법, 라이브러리 등에 대해 강의가 진행되었는데 전체 강의 중 나에게 유용했던 부분을 기록에 남기고자 한다. 1. ...
1. 현직자 특강 두 번째날 Upstage 현업자이신 김남혁 강사님의 특강으로 시작했다. 내가 목표로 하고 있는 기업에서 실제 현직자로 근무하고 계신 강사님의 특강이라 매우 기대했고, 어떻게 입사하게 되었는지 매우 궁금하기도 하였다. 1.1 약력 ...
해당 과정은 2025년 3월 24일 ~ 2025년 10월 31일 약 7개월 간 진행되며, [패스트캠퍼스] AI 부트캠프 13기 과정입니다. 0. 부트캠프 수강 이유 먼저 AI 분야에서 취업을 준비하며 깨닫게되는 점이 있다. AI 분야에서 석...
1. 생각의 흐름 문제 조건에서 n값이 생각보다 작았다. (30 이하) 이는 완전 탐색을 해도 시간이 모자라지 않을 수도 있다는 점을 시사한다. 그래서 조합을 사용했다. 모든 경우의 수를 전부 나열한 다음 조건에 맞는 조합을 골라 갯수를 센다. 1...
1. 생각의 흐름 자료구조를 공부할 때 맨 처음 접할 수 있는 문제 유형이다. 구현 방식은 stack으로 구현하였으며, 문제에서는 ‘()‘만 나온다고 하였지만, 일반적인 상황에서는 수식 or 텍스트와 같이 사용되므로, 모든 상황에서 괄호가 정상적으로 사용되었는지 체크...
1. 생각의 흐름 문제의 조건을 확인해보면 다음과 같다. [1 ≤ n ≤ 20] [1 ≤ l, r ≤ 5^n] [l ≤ r < l + 10,000,000] 이는 유사 칸토어 비트열로 변환하고 구간 내 1의 갯수를 센다는 것은 불가능함을 보여준다. n이 2...
1. 생각의 흐름 문제가 쉬웠다. 주어진 n값을을 2진수로 변환하고, 1의 갯수를 센다. n += 1 을 해주며 1의 과정과 똑같은 과정을 반복, n과 1의 갯수가 같은지 비교 같다면 반복문을 멈추고 return ...
1. 생각의 흐름 처음 문제를 봤을 때 탐욕 알고리즘을 사용해야하나 싶었다. 맨 처음 한 칸은 무조건 JUMP로 가고, 목표보다 작은 최대값을 가질 때까지 TP하고 나머지는 JUMP하면 되려나? 라고 생각했다. 그런데 뭔가 좀 이상했다. 간단하게 생각해봐도 이는 최...
1. 생각의 흐름 그냥 문제 설명을 보고 그대로 코드를 구현했다. 먼저 작업해 준 것은 k진수 변환 함수와 소수를 검사하는 함수 두 개를 구현했다. # 10진수 → k진수 변환 함수 def convert_k(n, k) : k_number = '' ...
1. 10진법 → 26진법 / 26진법 → 10진법 변환 문제를 접했을 때 영어 알파벳은 26개이므로 26진법을 활용해야겠구나 생각했다. 일단 먼저 주어진 문자를 수로 표현하는 코드를 구현하였다. 26진법을 이용하여 주어진 문자가 몇 번째 숫자인지를 계산한다. d...
1. 홀짝 트리, 역홀짝 트리 판별 문제의 제한사항 - **nodes**의 최대 길이는 400,000 - **edges**의 최대 길이는 1,000,000 이 두 조건을 보고 내린 결론은 모든 노드를 루트 노드로 가능한 모든 트리를 판별하려고 하면 불가능...
링크 많은 프로그래밍 언어에서 컴파일의 마지막 단계로, 프로그램에서 어떤 라이브러리의 함수를 사용한다면, 호출된 함수와 실제 라이브러리의 함수가 링크 과정에서 연결된다. 리눅스에서 C언어로 작성된 코드는 전처리, 컴파일, 어셈블의 과정을 거쳐 ELF 형식을 갖춘 오...
지난 과거에서부터 공격 및 보호 기법의 발전 양상을 보면 알 수 있듯이, 어떤 보호 기법이 등장하면 이를 우회하는 새로운 공격 기법이 등장하고, 이러한 공격 기법을 막기 위해 다시 새로운, 더 좋은 보호 기법이 등장하였다. 어느 공격 기법이 등장할 지는 예측이 불가...
C 코드 분석 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { puts("...
스택 버퍼 오버플로우 스택 버퍼 오버플로우란 스택의 버퍼에서 발생하는 오버플로우이다. 스택 버퍼 오버플로우를 이해하기 전 버퍼와 오버플로우가 무엇인지 먼저 알아야한다. 버퍼 데이터가 목적지로 이동되기 전 보관되는 임시 저장소이다. 만약, 데이터 처리속도가 다른 ...
C 코드 분석 #include <fcntl.h> #include <seccomp.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #includ...
C 코드 분석 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { pu...
pwntools는 파이썬으로 익스플로잇을 수행할 수 있도록 도와주는 라이브러리이다. 일반적으로, 어떤 대상의 컴퓨터를 어택할 때에는 어셈블리어를 이용하여 익스플로잇을 수행한다. 하지만 어셈블리어는 기계와 친화적인 언어로, 인간이 이해하기에는 다소 난해한 부분이 존재한...
Abstract 대표적인 sequence transduction(EX 문장 번역 등) 모델은 인코더와 디코더를 포함하는 RNN or CNN으로 구성 가장 뛰어난 성능을 보이는 모델은 attention mechanism을 통해 인코더와 디코더를 연결 기존에 존재...
연구의 필요성 및 목적 AI 시스템이 일상생활에 보편화 되면서 AI 거버넌스, 즉 AI를 이용한 국정운영에 사람들의 관심이 증가하면서 AI의 윤리적 의사 결정에 대한 관심도 증가하고 있다. 하지만, 이는 AI 연구자들 사이에서는 아직 익숙치 않은 주제인데, 이는 기존...