아래는 AI 기반 자동 트레이딩 봇을 위한 Python 코드 예제입니다. 이 코드는 머신러닝을 사용하여 주식 가격을 예측하고, 예측에 따라 거래를 실행합니다.
# AI 자동 트레이딩 봇: 예제 코드
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import yfinance as yf
import alpaca_trade_api as tradeapi # 암호화폐 거래를 위한 ccxt로 대체 가능
# Step 1: 데이터 수집
def get_stock_data(ticker, start_date, end_date):
"""야후 금융에서 주식 데이터를 가져옵니다."""
data = yf.download(ticker, start=start_date, end=end_date)
data['Returns'] = data['Adj Close'].pct_change()
data['Target'] = data['Adj Close'].shift(-1) # 다음 날 종가를 예측
data = data.dropna()
return data
# Step 2: 피처 엔지니어링
def create_features(data):
"""모델에 사용할 피처를 생성합니다."""
data['SMA_10'] = data['Adj Close'].rolling(window=10).mean()
data['SMA_50'] = data['Adj Close'].rolling(window=50).mean()
data['Volatility'] = data['Returns'].rolling(window=10).std()
features = ['SMA_10', 'SMA_50', 'Volatility', 'Returns']
return data[features], data['Target']
# Step 3: 머신러닝 모델
def train_model(X, y):
"""주식 가격을 예측하는 머신러닝 모델을 학습시킵니다."""
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
error = np.sqrt(mean_squared_error(y_test, predictions))
print(f"모델 RMSE(평균제곱근오차): {error:.2f}")
return model
# Step 4: 거래 로직
def execute_trade(api, ticker, prediction, threshold=0.01):
"""예측에 따라 거래를 실행합니다."""
current_price = float(api.get_last_trade(ticker).price)
if prediction > current_price * (1 + threshold):
print(f"{ticker} 구매 중: 현재 가격 {current_price}")
api.submit_order(symbol=ticker, qty=1, side='buy', type='market', time_in_force='gtc')
elif prediction < current_price * (1 - threshold):
print(f"{ticker} 판매 중: 현재 가격 {current_price}")
api.submit_order(symbol=ticker, qty=1, side='sell', type='market', time_in_force='gtc')
# Step 5: 브로커 API 통합
def main():
# Alpaca API 설정 (여기에 본인의 API 키 입력)
api = tradeapi.REST('YOUR_ALPACA_API_KEY', 'YOUR_ALPACA_SECRET_KEY', 'https://paper-api.alpaca.markets')
# 예제: AAPL 주식 거래
ticker = 'AAPL'
start_date = '2020-01-01'
end_date = '2023-01-01'
# 데이터 수집 및 처리
data = get_stock_data(ticker, start_date, end_date)
X, y = create_features(data)
# 모델 학습
model = train_model(X, y)
# 다음 날의 가격 예측
latest_data = X.iloc[-1].values.reshape(1, -1)
prediction = model.predict(latest_data)[0]
print(f"{ticker}의 예측 가격: {prediction:.2f}")
# 거래 실행
execute_trade(api, ticker, prediction)
if __name__ == "__main__":
main()
코드의 주요 구성 요소:
- 데이터 수집
- 모델 학습
- 거래 로직
- API 통합
추가 주의 사항:
- 리스크 관리: 손절매(stop-loss)와 목표 수익선(take-profit)을 반드시 설정하세요.
- 테스트: 실제 환경에 배포하기 전에 백테스트와 모의 거래를 철저히 진행하세요.
- 규제 준수: 해당 지역의 거래 규정을 반드시 준수하세요.
- 확장 가능성: 감정 분석, 뉴스 스크래핑, LSTM과 같은 고급 AI 모델을 추가하여 성능을 개선할 수 있습니다.
'정보' 카테고리의 다른 글
건설안전기사자격요건 (0) | 2025.01.13 |
---|---|
자동매매프로그램제작과정 (0) | 2025.01.13 |
추억의 게임 켈러그 소스 입니다 (0) | 2025.01.02 |
무료 AI 이미지제작 사이트 (2) | 2025.01.02 |
초보자부터 전문가까지 알아야 할 핵심 전략 (3) | 2024.12.30 |