일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 개발자
- python
- 토플
- GeorgiaTech
- 자동차sw
- AUTOSAR
- can
- backtest
- it
- 토플 라이팅
- probability
- Cloud
- toefl writing
- 파이썬
- 자동매매
- Bitcoin
- AWS
- TOEFL
- 블록체인
- 확률
- 암호화폐
- 비트코인
- 프로그래밍
- 백트레이더
- 오토사
- 아마존 웹 서비스
- 백테스트
- backtrader
- 클라우드
- 퀀트
- Today
- Total
목록python (34)
Leo's Garage

OpenAI의 Dall-E 라는 engine을 이용하여 Image를 자동으로 생성해주는 코드를 작성해보자. 우선 OpenAI의 API가 필요한데 아래 링크를 가면 OpenAI API생성과 python 환경에서 OpenAI API를 연결하는 방법에 대한 기본적인 내용이 들어있다. 해당 내용을 모른다면, 먼저 아래 포스팅을 읽고오자. OpenAI/ChatGPT API를 Python에 연동하는 방법 (tistory.com) OpenAI/ChatGPT API를 Python에 연동하는 방법 prompt를 통해서 문답하는 OpenAI의 API를 Python에서 사용하는 방법에 대해 간략히 설명하겠다. Setting up API credentials Python에 통합하기에 앞서서 먼저 OpenAI의 API를 발급받..
BackTrader를 통해서 여러가지 전략을 손쉽게 작성하고 백테스트를 하고 있었는데 생각해보니 BackTrader에 대해 정확하게 소개한 적이 없어서 이 글을 쓴다. BackTrader는 Trader나 투자자들이 마켓에 본인만의 전략이나 알고리즘을 이용해서 테스트하는 것을 도와주는 일종의 오픈 소스 프레임워크라고 이해하면 된다. 이 프레임워크는 기본적으로 자동매매 시스템을 개발, 테스트, 실행하는데 굉장히 강건하면서도 유연한 플랫폼을 제공해주고 사실 강력한 Back Testing Tool이라고 보는것이 더 정확할 수 있다 . BackTrader를 설명하는 몇 가지 키워드가 있다. 1. 다양한 데이터 사용 가능 : BackTrader는 다양한 소스로 부터 다양한 데이터 형식을 넣을 수 있는데, 가량 일반..

이전에 올렸던 역추세 매매 전략은 볼린져 밴드를 이용한 방법이었다. https://downyk.tistory.com/50 BackTrader - 역추세 매매 Backtrader로 간단한 역추세 매매 로직을 만들어보자 역추세 매매란 결국 시장의 가격이 평균으로 회귀하는 성질을 이용하는 것이라 볼 수 있다. 그래서 이를 평균회귀 전략이라고도 한다. MeanRevers downyk.tistory.com 오늘 해 볼 역추세 매매는 SMA(Simple Moving Average)를 이용해 보려고 한다. 전략은 간단한데 사는 전략은 아래와 같다. 30일 SMA가 10일 SMA보다 커지는 순간에 산다. 이 때 가격을 기준으로 3% 손실이 나거나 5% 수익인 경우에 대해서 stop loss와 take profit 가격..

두번째 상승장 판단 전략을 만들어보자. 이번에는 단순히 SMA 2개를 가지고 장세를 판단해본다. 20일 SMA과 50일 SMA 2개와 금일 종가와 비교를 한다. 두 SMA보다 종가가 높으면 매수한다. 두 SMA보다 종가가 낮으면 매도한다. 이때 매수는 and 조건, 매도는 or 조건이다. 코드는 아래와 같다. import backtrader as bt import yfinance as yf class UpTrend(bt.Strategy): params = ( ('fast_ma_period', 20), ('slow_ma_period', 50), ) def __init__(self): self.fast_ma = bt.indicators.SimpleMovingAverage( self.data.close, pe..

이번에는 상승장을 판단하는 전략을 간단하게 만들어서 테스트해보겠다. SMA(Simple Moving Average)와 RSI(Relative Strength Index)를 섞어서 상승장을 판단한다. 금일 종가가 200일과 50일 SMA보다 위에 있고, 동시에 RSI가 50보다 크면 매수한다. 금일 종가가 SMA 50일보다 작을 때 매도한다. import backtrader as bt import yfinance as yf class BullishStrategy(bt.Strategy): def __init__(self): self.sma200 = bt.indicators.SimpleMovingAverage(self.data.close, period=200) self.sma50 = bt.indicators...

이번에는 MACD를 활용해서 전략을 작성해보겠다. MACD(Moving Average Convergence Divergence)는 장단기 이동평균선(SMA) 차이를 이용해서 매매신호를 포착하는 기법이다. MACD의 원리는 장기 이동평균선과 단기 이동평균선이 서로 멀어지면 (Divergence) 다시 가까워지는 (Convergence) 성질을 이용하여 두 개의 이동평균선이 멀어지는 시점을 찾으려 하는 것이다. 공식은 아래와 같다. MACD : 12일 이동평균선 - 26일 이동평균선 Signal : MACD의 9일 지수이동평균선 Osillator : MACD - Signal MACD 곡선과 Signal선이 교차하는 신호를 매매 신호로 본다. 보통 MACD가 Signal보다 커질 때 매수하고, MACD가 Si..

이번에는 볼린져 밴드 지표와 RSI 지표를 섞어서 전략을 만들어 보겠다. 볼린져 밴드는 기간 20일과 Factor는 2로 지정한다. 볼린져 밴드에 Factor에 대한 설명은 아래 링크를 참조 바란다. https://downyk.tistory.com/63 BackTrader - 볼린져 밴드 전략 이번에는 볼린져 밴드 전략을 이용하여 BackTrader로 BackTesting을 해보겠다. 우선 볼린져 밴드에 대해 간략히 설명하자면, 주가 또는 지수와 같은 시계열 데이터의 변동 범위를 설정해서 데이터의 downyk.tistory.com RSI는 14일을 기준으로 하고, 30 이하를 과매도, 70 이상을 과매수 조건으로 지정한다. 그리고 전략은 다음과 같다. 포지션이 없을 경우, 현재 종가가 볼린져 밴드 하단보..

이번에는 지표 2개를 섞어서 매수 매도 하는 전략을 만들어보겠다. 사용할 지표는 SMA(이동평균선)과 RSI(상대 강도)이다. 전략의 내용은 간단하게 아래와 같다. 포지션이 없을 경우, 20일 SMA가 50일 SMA보다 크면서 동시에 7일 RSI가 40보다 작으면 매수한다. 포지션이 있을 경우, 20일 SMA가 50일 SMA보다 작거나 7일 RSIrk 60보다 크면 매도한다. import backtrader as bt import yfinance as yf class MultiIndicatorStrategy(bt.Strategy): params = ( ('sma1_period', 20), ('sma2_period', 50), ('rsi_period', 7), ('rsi_oversold', 40), ('r..

이번에는 볼린져 밴드 전략을 이용하여 BackTrader로 BackTesting을 해보겠다. 우선 볼린져 밴드에 대해 간략히 설명하자면, 주가 또는 지수와 같은 시계열 데이터의 변동 범위를 설정해서 데이터의 변동성을 분석하는 도구라고 보면 된다. 쉽게 말해서 주가나 지수같은 데이터들은 특정 범위 내에서 변동성을 가지는데 그 상한과 하한을 표현하는 방법이라고 보면 된다. 볼린져 밴드를 계산하는 방법은 다음과 같다. 중심선 : 이동 평균선 상단선 : 주가 이동 평균 + (주가 표준편차 * Factor) 하단선 : 주가 이동 평균 - (주가 표준 편차 * Factor) 이동 평균은 흔히 생각하는 SMA를 뜻하고 표준편차란 결국 얼마나 중심에서 멀어져 있는가를 의미한다. 이를 이용해 BackTrader에서 전략..

이번에는 골든 크로스와 데드 크로스를 이용해서 간단한 전략을 만들어보자 이번에 작성할 전략은 두 개의 이평선이 서로 교차하는 지점을 기준으로 매수 / 매도를 하려고한다. 하나는 20일선, 그리고 50일 선이다. 기본적으로 20일선이 50일선 위로 올라가는 시점을 골든크로스 지점으로 보고 매수한다. 50일선이 20일선 위로 올라가는 시점을 데드크로스 지점으로 보고 매도한다. 간단한 전략을 기반으로 BackTrader를 이용해서 전략을 세워보자. import backtrader as bt import yfinance as yf class GoldenDeadCross(bt.Strategy): params = ( ('fast_period', 20), ('slow_period', 50), ) def __init_..