728x90
  1. ES6 코드를 ES5 코드로 변환 해 주는 사이트
    https://babeljs.io/repl
  2. ES6_TEST directory 생성
    npm init 실행
  3. babel 요소 설치
    npm install --save-dev @babel/core @babel/cli @babel/preset-env core-js
  4. npm 명령어
    1) npm init : 프로젝트 초기화
    2) npm install : package.json의 패키지 설치
    3) npm install --save [패키지명] : 패키지를 프로젝트 의존성으로 추가
    4) npm install --save-dev [패키지명] : 패키지를 프로젝트 개발 의존성 수준으로 추가
    5) npm install --global [패키지명] : 패키지를 전역 수준으로 추가
    6) npm update --save : 프로젝트 패키지 업데이트
    7) npm run [스크립트명] : package.json의 스크립트 명령 실행
    8) npm uninstall --save [패키지명] : 패키지 삭제
    9) npm cache clean : 캐시 삭제
728x90
728x90
  1. 호스트명 확인
    mycomputer:~$hostname
    mycomputer

  2. 호스트명 변경
    mycomputer:~$sudo hostnamectl set-hostname ubuntudev
    [sudo] mycomputer 암호 :

  3. 터미널 종료 혹은 시스템 재부팅 후

  4. 호스트명 확인
    호스트명이 변경 된 것을 확인 할 수 있다.
    ubuntudev:~$hostname
    ubuntudev

728x90

'프로그래밍 > 우분투' 카테고리의 다른 글

우분투 설치 후 root 비밀번호 변경  (0) 2025.05.31
mysql 백업 및 복원 방법  (0) 2022.07.13
jenkins 셋팅  (0) 2022.07.06
728x90

mycomputer:~바탕화면$sudo password root
[sudo]mycomputer 암호:
새 암호 :
새 암호 재입력 :

mycomputer:~바탕화면$su
암호 :
root@mycomputer:/home/mycomputer/바탕화면#

루트로 변경 되면 $ 표시가 #으로 변경 됨.

728x90

'프로그래밍 > 우분투' 카테고리의 다른 글

우분투 호스트명 변경  (0) 2025.05.31
mysql 백업 및 복원 방법  (0) 2022.07.13
jenkins 셋팅  (0) 2022.07.06
728x90
  1. 리액트 프로젝트 생성
    npx create-react-app [생성할 리액트명]

  2. VSCode 설치
    https://code.visualstudio.com/Download

  3. 프로젝트 내에서 vscode 실행
    d:\work\frontend\testapp>code .

  4. VSCode 터미널에서 리액트 프로젝트 실행
    npm start

  5. tailwind CSS 설치
    npm install -D tailwindcss@3.4.17 postcss autoprefixer

npx tailwindcss init -P

728x90
728x90

1. 윈도 터미널을 실행 할 때 관리자 권한으로 실행한다.

2. 터미널(관리자) 실행 후 커맨드 창에 ExecutionPolicy 를 입력한다.

Restricted로 출력 되면 기본 실행 정책으로 개별 명령을 허용하지만 스크립트를 실행하지 않는다는 의미이다.

3. 커맨드 창에 Set-ExecutionPolicy Unrestricted 혹은 Set-ExecutionPolicy RemoteSigned를 입력 한다.

4. 커맨드 창에 ExecutionPolicy를 입력 한다. 

1) Unrestricted 

가. 서명되지 않은 스크립트를 실행할 수 있음

나. 악의적인 스크립트를 실행할 위험이 있음

2) RemoteSigned

가. 스크립트를 실행 가능

나. 이미 실행한 스크립트와 로컬 컴퓨터에 작성한 스크립트에는 디지털 서명이 필요 없음

 

728x90

'프로그래밍 > 정보보안' 카테고리의 다른 글

Apache Log4j 보안 업데이트 권고  (0) 2022.09.01
HTTP trace 제거  (0) 2019.04.10
개인정보보호 보안 가이드 - 행정자치부  (0) 2015.04.23
728x90

이동평균선(moving average:MA)

  1. 이동 평균선은 특정 기간 동안의 주가를 평균한 값을 나타내는 지표이다.
  2. 이동 평균선은 시장의 추세를 파악하고 지지와 저항 구간을 식별하는 데 도움이 된다.
  3. 일반적으로 5일(일주일 영업일), 20일(한달), 60일(3개월) 이동평균선을 주로 사용한다.
  4. 5일,20일, 60일 이동평균선이 정배열(5일선이 20일선 위에 있고, 20일선이 60일선 위에 있는 경우)이 되면 상승 추세로 간주하고, 5일, 20일, 60일 이동평균선이 역배열(5일선이 20일선 아래에 있고 20일선이 60일선 아래에 있는 경우)이 되면 하락 추세로 간주한다.
  5. 장기 이동평균선은 중기 및 단기 이동평균선과 비교하여 가격 변동성에 덜 민감하며, 주가의 전반적인 추세를 살펴보는 데 유용하다. 이동평균선이 서로 교차할 때에는 추세 전환 신호로 간주한다.

볼린저 밴드(Bollinger Bands)

  1. 볼린저 밴드는 주가의 변동성을 측정하고 상대적인 과매수 및 과매도 상태를 파악하는데 도움을 주는 도구이다.
  2. 볼린저 밴드는 중심선, 상단 밴드, 하단 밴드의 3개 선으로 이루어져 있다.
  3. 중심선은 이동평균선을 나타내며, 일반적으로 20일 이동평균선을 사용한다.
  4. 상단 밴드는 중심선 위에 일정한 표준편차를 더한 값으로 나타낸다. 일반적으로 20일 이동 평균선 + (표준편차 * 2) 로 계산한다.
  5. 하단 밴드는 중심선 아래에 일정한 표준편차를 뺀 값으로 나타낸다.일반적으로 20일 이동 평균선 - (표준편차 *2)로 계산한다.
  6. 주가가 상단 밴드에 도달하면 과매수 상태로 간주하고, 하단 밴드에 도달하면 과매도 상태로 간주한다. 가격이 밴드 내에 위치하는 경우에는 추세가 일반적으로 지속되는 것으로 간주한다.
  7. 볼린저 밴드의 너비는 주식 가격의 변동성을 나타낸다. 밴드가 좁으면 변동성이 낮고, 밴드가 넓으면 변동성이 높다.
  8. 볼린저 밴드는 주식의 지지 및 저항 수준을 식별하는데 도움이 된다.

볼린저 밴등의 중심선 교차, 밴드의 너비 변화, 상단 및 하단 밴드에서의 가격 행동 등을 살펴보면 매수 또는 매도 신호를 포착 할 수 있다. 

예) 주가가 하단 밴드를 터치하거나 그 이하로 떨어진 후 반등하는 경우, 이는 매수 신호로 받아들일 수 있다. 반대로 주가가 상단 밴드를 터치하거나 그 이상으로 상승한 후 반전하는 경우, 이는 매도 신호로 간주할 수 있다.

이동평균선과 볼린저 밴드를 함께 사용하면 각각의 지표가 제공하는 정보를 보완하여 보다 강력한 분석이 가능하다.

예) 이동평균선이 상승 추세를 보이고, 주가가 하단 볼린저 밴드에 접근한 경우, 강력한 매수 신호로 해석할 수 있다. 이와 반대로 이동평균선이 하락 추세를 보이고 주가가 상단 볼린저 밴드에 접근할 경우, 강력한 매도 신호로 해석할 수 있다.

728x90

'경제 > 주식' 카테고리의 다른 글

주식 펀더멘털 데이터  (2) 2024.10.07
728x90
# 필요한 라이브러리 설치
!pip install pykrx tensorflow matplotlib pandas numpy scikit-learn

# 라이브러리 임포트
from pykrx import stock
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
from datetime import datetime, timedelta

# 1. LG전자의 OHLCV와 펀더멘털 지표 가져오기
def get_lg_data():
    ticker = "066570"  # LG전자 종목코드
    today = datetime.today().strftime("%Y%m%d")
    one_year_ago = (datetime.today() - timedelta(days=365)).strftime("%Y%m%d")

    # OHLCV 데이터 가져오기
    ohlcv = stock.get_market_ohlcv_by_date(one_year_ago, today, ticker)

    # 펀더멘털 데이터 가져오기
    fundamentals = stock.get_market_fundamental_by_date(one_year_ago, today, ticker)
    
    # OHLCV와 펀더멘털 데이터를 합치기
    data = pd.concat([ohlcv, fundamentals], axis=1)

    return data

data = get_lg_data()

# 2. 데이터 전처리 (종가와 PER을 입력으로 사용)
def preprocess_data(data):
    df = data[['종가', 'PER']].dropna()  # 종가와 PER만 사용

    # MinMaxScaler로 데이터 정규화
    scaler = MinMaxScaler()
    scaled_data = scaler.fit_transform(df)

    # LSTM 입력에 맞게 시퀀스 데이터 만들기
    X, y = [], []
    seq_length = 10  # 10일 동안의 데이터를 사용하여 다음날을 예측

    for i in range(len(scaled_data) - seq_length):
        X.append(scaled_data[i:i+seq_length])
        y.append(scaled_data[i+seq_length, 0])  # 종가를 예측

    X = np.array(X)
    y = np.array(y)

    return X, y, scaler

X, y, scaler = preprocess_data(data)

# 3. LSTM 모델 생성 및 학습
def create_lstm_model():
    model = Sequential()
    model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))
    model.add(Dropout(0.2))
    model.add(LSTM(units=50))
    model.add(Dropout(0.2))
    model.add(Dense(1))  # 종가 예측을 위한 출력층

    model.compile(optimizer='adam', loss='mean_squared_error')
    return model

model = create_lstm_model()

# 모델 학습
model.fit(X, y, epochs=20, batch_size=32)

# 4. 주가 예측 및 시각화
def predict_future_prices(model, data, scaler, days=7):
    # 최근 10일간의 데이터를 가져와서 예측에 사용
    recent_data = data[-10:]
    scaled_recent_data = scaler.transform(recent_data[['종가', 'PER']].values)

    # 예측할 일주일 동안의 데이터
    predictions = []
    for _ in range(days):
        input_data = scaled_recent_data[-10:].reshape(1, 10, 2)
        predicted_price = model.predict(input_data)
        predictions.append(predicted_price[0, 0])

        # 새로운 예측값을 기존 데이터에 추가
        scaled_recent_data = np.vstack([scaled_recent_data, [[predicted_price[0, 0], scaled_recent_data[-1, 1]]]])

    # 예측된 종가 값을 스케일링 복원
    predicted_prices = scaler.inverse_transform(np.array(predictions).reshape(-1, 1))

    return predicted_prices

predicted_prices = predict_future_prices(model, data, scaler)

# 실제 종가와 예측 종가 시각화
def plot_predictions(data, predicted_prices):
    plt.figure(figsize=(10,6))

    # 실제 데이터 시각화
    plt.plot(data.index, data['종가'], label='Actual Prices', color='blue')

    # 예측 데이터 시각화
    future_dates = pd.date_range(start=data.index[-1] + timedelta(days=1), periods=len(predicted_prices))
    plt.plot(future_dates, predicted_prices, label='Predicted Prices', linestyle='--', color='orange')

    plt.title("LG Electronics Stock Price Prediction")
    plt.xlabel("Date")
    plt.ylabel("Price")
    plt.legend()
    plt.grid()
    plt.show()

plot_predictions(data, predicted_prices)

 

  • LG전자의 데이터 가져오기: get_lg_data() 함수에서 LG전자의 종목 코드를 사용하여 오늘부터 1년 동안의 OHLCV 및 펀더멘털 지표를 가져옵니다.
  • 데이터 전처리: preprocess_data() 함수에서 종가와 PER를 사용하여 LSTM 모델의 입력 데이터로 변환합니다. 데이터를 정규화하고, 시퀀스 데이터를 생성합니다.
  • LSTM 모델 생성: create_lstm_model() 함수에서 LSTM 모델을 구성합니다. 여기서는 두 개의 LSTM 레이어와 드롭아웃 레이어를 추가하여 과적합을 방지합니다.
  • 모델 학습: LSTM 모델을 학습시킵니다.
  • 주가 예측 및 시각화: predict_future_prices() 함수에서 모델을 사용하여 향후 7일 간의 주가를 예측합니다. plot_predictions() 함수에서 실제 주가와 예측된 주가를 시각화합니다.

 

 

 

 

728x90

'프로그래밍 > 파이썬' 카테고리의 다른 글

주식 예측 모델  (2) 2024.10.10
주식거래 시스템을 위한 준비  (0) 2024.10.06
728x90

1. LSTM(Long Short-Term Memory) 모델

순환신경망의 한 종류로, 시계열 데이터를 예측하는데 효과적이다.
LSTM은 과거 정보를 기억하고 현재 및 미래의 주식 가격과의 관계를 파악하는데 유용하다.

2. CNN(Convolution Neural Network) 모델

이미지 처리에 주로 사용하지만, 주식 가격 데이터를 이미지로 변환하여 예측하는 데에도 활용할 수 있다.
주식 가격 데이터를 시간축으로 변경하여 이미지로 인식하고 CNN을 사용하여 패턴을 감지 할 수 있다.

3. 변형 Transformer 모델

주로 자연어 처리에 사용하지만, 주식 가격 예측과 같은 시계열 데이터에도 적용할 수 있다.
트랜스포머 모델은 멀티헤드어텐션 메커니즘을 활용하여 주식 가격의 시간적인 의존성을 모델링 할 수 있다.

4. ARIMA(AutoRegressive Integrated Moving Average) 모델

전통적인 통계적 방법으로, 주식 가격 예측에도 자주 사용되고 있다. 
ARIMA는 시계열 데이터의 자기회귀 및 이동평균 성분을 모델링하여 예측을 수행한다.
728x90

+ Recent posts