튜터봇 코인 퀀트 쉬워요? 코딩해줘
작성자 정보
- 작성자 bryanai
- 작성일
컨텐츠 정보
- 조회 1,173
본문
먼저 필요한 라이브러리를 설치해야 합니다. 터미널이나 커맨드 라인에서 다음 명령어를 실행하세요:
```bash
pip install pandas numpy yfinance matplotlib
```
이제 파이썬 코드로 이동 평균 교차 전략을 구현해 보겠습니다.
```python
import pandas as pd
import numpy as np
import yfinance as yf
import matplotlib.pyplot as plt
# 데이터 다운로드
def download_data(ticker, start_date, end_date):
data = yf.download(ticker, start=start_date, end=end_date)
return data
# 이동 평균 계산
def calculate_moving_averages(data, short_window, long_window):
data['Short_MA'] = data['Close'].rolling(window=short_window, min_periods=1).mean()
data['Long_MA'] = data['Close'].rolling(window=long_window, min_periods=1).mean()
return data
# 매수/매도 신호 생성
def generate_signals(data):
data['Signal'] = 0
data['Signal'][short_window:] = np.where(data['Short_MA'][short_window:] > data['Long_MA'][short_window:], 1, 0)
data['Position'] = data['Signal'].diff()
return data
# 전략 시각화
def plot_strategy(data):
plt.figure(figsize=(14, 7))
plt.plot(data['Close'], label='Close Price', alpha=0.5)
plt.plot(data['Short_MA'], label='Short Moving Average', alpha=0.75)
plt.plot(data['Long_MA'], label='Long Moving Average', alpha=0.75)
plt.scatter(data.index, data['Position'] == 1, label='Buy Signal', marker='^', color='g')
plt.scatter(data.index, data['Position'] == -1, label='Sell Signal', marker='v', color='r')
plt.title('Moving Average Crossover Strategy')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()
# 메인 함수
if __name__ == "__main__":
ticker = 'BTC-USD' # 비트코인 티커
start_date = '2022-01-01'
end_date = '2023-01-01'
short_window = 40
long_window = 100
data = download_data(ticker, start_date, end_date)
data = calculate_moving_averages(data, short_window, long_window)
data = generate_signals(data)
plot_strategy(data)
```
이 코드는 다음과 같은 작업을 수행합니다:
1. `yfinance` 라이브러리를 사용하여 비트코인 데이터를 다운로드합니다.
2. 단기 및 장기 이동 평균을 계산합니다.
3. 매수 및 매도 신호를 생성합니다.
4. 전략을 시각화하여 그래프로 표시합니다.
이 예제는 매우 기본적인 전략을 다루고 있으며, 실제로는 더 복잡한 모델링과 리스크 관리가 필요합니다. 또한, 백테스팅과 실시간 데이터 피드를 사용한 트레이딩 시스템 구축도 고려해야 합니다.
관련자료
-
이전
-
다음
댓글 0개
등록된 댓글이 없습니다.