• 질문
    • 주식 매매 관리 프로그램을 만들어 보려고 하고 있어. python을 이용해서 만들려고 하는데 주식 종목별로 계좌 잔고, 매매내역, 수익현황, 배당금 수령 현황등을 저장하는 database를 만들려고 하는데, database schema를 제안해줘.
  • 답변
    • 흥미로운 프로젝트네요! 주식 매매 관리 프로그램을 위해 필요한 데이터베이스 스키마를 제안드릴게요. 아래는 기본적으로 필요한 테이블과 각 테이블의 구조입니다:

테이블: 계좌(Account)

필드 이름데이터 타입설명
account_id INTEGER 기본 키
account_name TEXT 계좌 이름
balance REAL 계좌 잔고
creation_date DATE 계좌 생성일

테이블: 주식 종목(Stock)

필드 이름데이터 타입설명
stock_id INTEGER 기본 키
stock_symbol TEXT 종목 코드
stock_name TEXT 종목 이름

테이블: 매매 내역(Transaction)

필드 이름데이터 타입설명
transaction_id INTEGER 기본 키
account_id INTEGER 계좌 ID (외래 키)
stock_id INTEGER 주식 종목 ID (외래 키)
transaction_date DATE 거래 날짜
transaction_type TEXT 거래 유형 (매수/매도)
quantity INTEGER 거래 수량
price REAL 거래 가격

테이블: 수익 현황(Profit)

필드 이름데이터 타입설명
profit_id INTEGER 기본 키
account_id INTEGER 계좌 ID (외래 키)
stock_id INTEGER 주식 종목 ID (외래 키)
total_invested REAL 총 투자 금액
total_return REAL 총 수익 금액
profit_date DATE 수익 계산 날짜

테이블: 배당금 수령 현황(Dividend)

필드 이름데이터 타입설명
dividend_id INTEGER 기본 키
account_id INTEGER 계좌 ID (외래 키)
stock_id INTEGER 주식 종목 ID (외래 키)
dividend_amount REAL 배당금 금액
dividend_date DATE 배당금 수령 날짜

이 스키마는 주식 매매 관리 프로그램을 구축하는 데 필요한 기본적인 데이터베이스 구조를 제공합니다. 이를 기반으로 Python과 SQL을 사용해 데이터베이스를 생성하고 관리할 수 있습니다. 추가적으로 필요한 기능이나 데이터가 있다면 언제든지 말씀해 주세요! 😊

  • 질문
    • 제안해준 스키마를 이용해서 django를 이용해 backend server를 만들려고 하는데 model.py를 어떻게 만들면 좋을지 기본 코드를 제공해줘
  • 답변
    • Django를 사용해서 주식 매매 관리 프로그램의 backend server를 만들기 위해 model.py 파일의 기본 코드를 제공해 드릴게요. 아래는 제안해드린 스키마를 기반으로 한 Django 모델들입니다.
python
from django.db import models

class Account(models.Model):
    account_name = models.CharField(max_length=100)
    balance = models.DecimalField(max_digits=20, decimal_places=2)
    creation_date = models.DateField()

    def __str__(self):
        return self.account_name

class Stock(models.Model):
    stock_symbol = models.CharField(max_length=10)
    stock_name = models.CharField(max_length=100)

    def __str__(self):
        return self.stock_name

class Transaction(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE)
    stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
    transaction_date = models.DateField()
    transaction_type = models.CharField(max_length=4, choices=(('BUY', '매수'), ('SELL', '매도')))
    quantity = models.IntegerField()
    price = models.DecimalField(max_digits=20, decimal_places=2)

    def __str__(self):
        return f'{self.account.account_name} - {self.stock.stock_name} - {self.transaction_type}'

class Profit(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE)
    stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
    total_invested = models.DecimalField(max_digits=20, decimal_places=2)
    total_return = models.DecimalField(max_digits=20, decimal_places=2)
    profit_date = models.DateField()

    def __str__(self):
        return f'{self.account.account_name} - {self.stock.stock_name}'

class Dividend(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE)
    stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
    dividend_amount = models.DecimalField(max_digits=20, decimal_places=2)
    dividend_date = models.DateField()

    def __str__(self):
        return f'{self.account.account_name} - {self.stock.stock_name}'

위의 코드에는 5개의 모델이 포함되어 있으며, 각 모델은 데이터베이스 테이블에 매핑됩니다. ForeignKey를 사용하여 모델 간의 관계를 정의하였고, __str__ 메서드를 사용하여 객체의 문자열 표현을 정의했습니다.

이제, 이 모델들을 관리할 Django admin 패널이나 다른 로직을 추가하여 완전한 백엔드 서버를 구축하실 수 있습니다. 추가적인 도움이 필요하시면 언제든지 말씀해 주세요! 😊

반응형

https://mui.com/store/collections/free-react-dashboard/

 

20+ Stunning Free React Dashboard Templates 2024 - MUI

We’ve collected these awesome, useful and advanced free React templates for your next React admin dashboard projects.

mui.com

 

 

https://www.creative-tim.com/product/material-dashboard-react

 

Material Dashboard 2 React by Creative Tim

 

www.creative-tim.com

유료 버전은 89달러...

 

반응형

https://telerik.github.io/kendo-react-finance-portfolio/#/stocks/SNAP

 

React App

 

telerik.github.io

 

https://github.com/DLabbate/stock-dashboard?tab=readme-ov-file

 

GitHub - DLabbate/stock-dashboard: 💸 Stock Dashboard App where users can 🔍 search for a stock, 📝 get details of a stock

💸 Stock Dashboard App where users can 🔍 search for a stock, 📝 get details of a stock, and 📈 view historical data. - DLabbate/stock-dashboard

github.com

 

https://github.com/KTK27YT/Stock_Dashboard

 

GitHub - KTK27YT/Stock_Dashboard: This is a simple Stock Dashboard built with React

This is a simple Stock Dashboard built with React. Contribute to KTK27YT/Stock_Dashboard development by creating an account on GitHub.

github.com

 

반응형

'my-hts' 카테고리의 다른 글

Copilot 으로 DB 스키마 만들어 보기  (0) 2024.12.21
Free react dashboard  (0) 2024.11.21
화면에 무엇을 보여 줄 것인가...  (2) 2024.11.21
HTS App 을 만들어 보기로 했다.  (0) 2024.11.20
  1. Django Model (DB schema)를 어떻게 할지 고민 중이다.
  2. 항목 별
    1. 회사 정보
      1. 회사 이름
      2. 주인, 나인지 아내느님 인지
      3. 최근 PER, PBR
      4. 마지막 3년 분기 매출, 영익, 순이익
    2. 시세 정보
      1. 오늘 기준 현재가, 시작가, 종가
      2. 잔고
      3. 수익률
      4. 매수 평균가
      5. 소유 개수
      6. 총 매입 금액
      7. 매매 이력
        1. 몇 일날, 몇 주, 얼마에, 총 얼마 치
      8. 배당금 이력
      9. 배당금 포함 총 누적 손익
    3. 그래프
      1. 매수 시점 표시
      2. 매도 시점 표시
      3. 매수 평균가 표시
  3. 년도 별 전체 자산 변동 추이
    1. 1월 1일 기준 총 자산 얼마
    2. 현재 자산 얼마
    3. 주요 매매 내역
      1. 총 이익 얼마
      2. 몇 날 몇 월 몇 일 어떤 주식 몇 주를 얼마에 매수 했는가
      3. 몇 날 몇 월 몇 일 어떤 주식을 얼마에 매도했고 이익은 얼마 였는가
    4. 배당 내역
      1. 어떤 주식에 대한 배당을 얼마 받았는가
  4. 자동 매매 기능
    1. 매직스플릿의 기능을 필요한 것만 넣어서 구현
  5. 한투 Rest API 로 모두 지원 가능한지 API 확인
  6. LS Rest API 같이 확인
반응형
  • 일반적인 HTS App 으로는 기업 찾기, 정리, 자산의 변화 등을 한 눈에 보는 것이 쉽지 않아 입맛대로 하나 만들어 보기로 했다.
  • 사용 솔루션
    • db : postgresql
    • backend : django
    • frontend : react
  • github
 

GitHub - goguma/my-hts

Contribute to goguma/my-hts development by creating an account on GitHub.

github.com

 

  • Docker compose 를 이용해서 db와 backend server 까지 뜨는 건 확인 완료
  • Reverse proxy를 이용하여 외부에서 접속되는 것도 확인 완료

  • 무리하지 말고 천천히 하나씩 기능을 넣어 봐야 겠다.
반응형

+ Recent posts