카토커 | 토토사이트 카지노사이트 먹튀검증 스포츠중계 스포츠분석 꽁머니

ㅁㅁ

ㅇㅇ 0 3847 2025.04.21 06:35:31
import yfinance as yf import pandas as pd from datetime import datetime, timedelta 설정값들 SPIKE_THRESHOLD = 0.03  # 5분간 3% 이상 상승 VOLUME_MULTIPLIER = 2.0  # 거래량 2배 이상 증가 HOLD_DURATION = timedelta(hours=1)  # 1시간 보유 후 매도 관심 종목 리스트 watchlist = ['AAPL', 'MSFT', 'TSLA', 'NVDA'] 가짜 포트폴리오용 기록 portfolio = {} 급등 탐지 함수 def detect_spike(ticker): df = yf.download(ticker, period="1d", interval="5m") if len(df) < 2: return False, None latest = df.iloc[-1] prev = df.iloc[-2] price_change = (latest['Close'] - prev['Close']) / prev['Close'] volume_ratio = latest['Volume'] / (df['Volume'].mean()) if price_change > SPIKE_THRESHOLD and volume_ratio > VOLUME_MULTIPLIER:     return True, latest['Close'] return False, None 매수 & 예약 매도 now = datetime.now() for symbol in watchlist: spike, buy_price = detect_spike(symbol) if spike: print(f"[매수] {symbol} 급등 탐지됨. 매수가: {buy_price}") portfolio[symbol] = { 'buy_price': buy_price, 'buy_time': now, 'sell_time': now + HOLD_DURATION } 1시간 후 매도 처리 시뮬레이션 print("\n[1시간 후 매도 시뮬레이션]") for symbol, info in portfolio.items(): df = yf.download(symbol, start=info['sell_time'], end=info['sell_time'] + timedelta(minutes=10), interval="1m") if len(df) > 0: sell_price = df.iloc[0]['Close'] profit = sell_price - info['buy_price'] print(f"[매도] {symbol}: 매수가 {info['buy_price']} -> 매도가 {sell_price} | 수익: {profit:.2f} USD") else: print(f"[실패] {symbol}: 매도 시점 데이터 없음.")