본문 바로가기

파이썬으로 퀀트 프로그램 만들기 project/백테스팅

(6)
[백테스팅]MACD와 RSI를 이용한 선물 매매하기 지금까지 제가 포스팅한 글에서는 상승 배팅만 가능한 백테스팅 코드였습니다. 그러나 이번에는 하락에도 배틱이 가능하면 레버리지 또한 조절 가능한 코드를 소개 해드리겠습니다. 이번 백테스팅에 적용할 매매 아이디어는 다음과 같습니다. 매수조건 1. MACD 와 MACD signal 골든크로스 2. 조건1 발생 5봉 이내에 rsi 과매도 발생 3. 조건 2 발생 시 ema 정배열일 경우 롱 매도 조건 (매수조건의 반대 경우) 1. MACD 와 MACD signal 데드크로스 2. 조건1 발생 5봉 이내에 rsi 과매수 발생 3. 조건 2 발생 시 ema 역배열일 경우 숏 그리고 기본적으로 손익비 5퍼센트, 수수료 0.05퍼센트, 레버리지 3배로 설정하겠습니다. 차트 데이터는 한국 비트코인 5분봉 4만개 데이터를..
[백테스팅]MACD 와 MACD signal을 이용하여 매매하기 차트 보조지표 중 하나인 macd, macd signal, 그리고 rsi을 추가적으로 이용하여 매매 백테스팅을 진행해 보겠습니다. 구체적인 매매 아이디어는 다음과 같습니다. 매수조건 1. macd 선이 macd singnal 상향돌파 (골든 크로스) 발생 2. rsi가 35 이하로 과매도 손익비는 1퍼센트로 하겠습니다. 한국 비트코인 5분봉 2만개 차트에서 백테스팅을 진행해보겠습니다. #코드 본격적인 코드를 소개해드리겠습니다. import pyupbit access = "123abc" # 본인 값으로 변경 secret = "123abc" # 본인 값으로 변경 upbit = pyupbit.Upbit(access, secret) print(upbit.get_balance("KRW-BTC")) # KRW-BT..
[백테스팅] 하이킨아시 캔들 이용하여 매매하기 하이킨아시 캔들을 이용하여 매매 백테스팅을 진행해 보도록 하겠습니다. 기본적인 매매 아이디어는 유튜버 코비딕 님의 "한 달 만에 10만원 → 6000만원 만든 매매법 분석" 에서 따왔습니다. 매매 아이디어는 다음과 같습니다. 매수조건: 1. 200일 이평선 위에 하이킨아시 캔들들이 있음 2. stochastic rsi에서 k가 d를 상향돌파 -> 과매도로 판단 3. 2번째 조건 발생 5봉 이내에, 이전 양봉보다 몸통이 길고 아랫꼬리가 없는 양봉이 나오면 매수! 손익비는 익절 3퍼, 손절 1.5퍼로 맞춰줍니다. 이제 본격적인 코드를 소개해드리겠습니다. import pyupbit access = "abc123" # 본인 값으로 변경 secret = "abc123" # 본인 값으로 변경 upbit = pyup..
[벡테스팅]볼린저 밴드를 이용한 백테스팅 이번 백테스팅에 사용할 지표는 볼린저 밴드입니다. 저의 알고리즘은 다음과 같습니다. 매수 조건: 고점대비 20% 이상 하락을 경험하고, 볼린저밴드의 +1 시그마 상향 돌파시 매수 매도조건1: -1 시그마 터치시 전액 매도 매도조건2: 매도조건 1 충족 안됐을 때, 직전 고점 대비 +10% 달성시 50% 익절 매도조건3: 매도조건 2 충족됐을 때, 1시그마 터치시 전액 청산 본격적으로 저의 코드를 소개하겠습니다. import talib import yfinance as yf stock_data = yf.download('^GSPC')#S&P500 데이터에 해당 count = 5000 stock_data = stock_data.tail(count) stock_data['upper'], middle, stoc..
[백테스팅]EMA 골든 크로스를 응용한 비중 투자 이번에 사용할 알고리즘을 간략하게 소개하겠습니다. 매수 1번째 조건: 20일, 120일 EMA 골든 크로스 발생시 50% 비중으로 매수합니다. 매수 2번째 조건: 1번째 조건 발생후, 캔들이 EMA 20일 선을 터치하면 나머지 50% 추가 매수합니다. 단, 조건 1에서의 매수단가보다 높은 가격에서 추가 진입해야 할 경우 매수하지 않습니다. 매도 조건: 데드크로스 발생시 전액 매도 S&P500의 3000일의 일봉 데이터를 사용하였습니다. 본격적인 코드를 소개하겠습니다. 우선 S&P500데이터를 다운받은 후, talib 패키지를 통해 ema 20일, 120일을 계산해줍니다. import talib import yfinance as yf stock_data = yf.download('^GSPC')#S&P500..
[백테스팅]EMA 60 상향 돌파 시 매수 이번에 사용할 매매 알고리즘은 EMA 60일 선을 봉이 상향 돌파시 매수, 하향 돌파시 매도하는 것입니다. s&p500의 3000일에 대한 일봉 데이터를 가지고 저의 알고리즘을 백테스팅해보겠습니다. 우선 s&p500 데이터를 다운받아 보겠습니다. 그리고 ema 60일 선을 만들어보겠습니다. ema60일선은 talib패키지에서 제공해주는 메소드를 사용하겠습니다. import talib import yfinance as yf stock_data = yf.download('^GSPC')#S&P500 데이터에 해당 count = 3000 stock_data = stock_data.tail(count) stock_data['EMA_60'] = talib.EMA(stock_data['Close'], 60) 다음으로..