Skip to content

유튜브에서 발견한 backtest 전략 추가하기 #1

사이드 프로젝트 링크 : https://www.github.com/fromitive/backtest

개발하고 싶은 전략

해외에서 100만 뷰 이상 기록된 영상을 가져와 설명해주신 아주 고마운분이 있다. 이분의 영상을 참고하여 백테스팅 전략에 추가 할 예정이다.

해당 영상 :   한 달 만에 10만원 → 6000만원 만든 매매법 분석 - 코비딕

전략 정리

영상을 보면 아래의 원칙을 조건으로 매도, 매수를 진행한다.

선물은 (일단은) 하지 않을거라서 롱 포지션을 잡는 것만 구현하려고 한다.

롱 포지션
준비작업 : EMA 200 곡선, Stocastic RSI, RSI

- 매수 
  1. ema 200 값보다 캔들이 위에 있어야 함
  2. stocastic rsi가 25 미만이어야 함
  3. k(파란색 선)가 d(주황색 선)보다 위에 있어야 한다(이전 캔들과 비교하여 돌파 하는 걸 캐치하면 될 것 같다.)

- 매도 :
  1. 매수를 진행하고 나서 3퍼센트 이상 넘으면 매도하라고 하는데 여기서는 2 퍼센트 이상일 때 매도 한다.
  2. 손절을 1퍼센트 밑으로 떨어질 때 매도

매수는 아래의 그림과 같이 쉽게 찾을 수 있다. 3퍼센트 이상이 지나야 매도를 하기 때문에, 일반 횡보장에서는 다른 전략을 구현해야 할 필요가 있어보인다.

Image title

그림 1 - 매수 타이밍

재료 수집

위의 내용에 따라 구현하기 위한 재료를 수집한다.

1. ema 곡선 구하기

EMA 곡선은 ta-lib에 EMA 함수가 제공하며,

아래와 같이 작성하면 값이 나온다고 한다.

getEMA.py
import talib

ema_200=talib.EMA(data['close'],timeperiod=200)

2 . stocastic rsi 구하기

stocastic rsi 곡선은 ta-lib에 STOCHRSI 함수가 제공되며,

아래와 같이 작성하면 값이 나온다고 한다.

getSTOCHRSI.py
import talib

fastk, fastd=talib.STOCHRSI(data['close'],timeperiod=14,fastk_period=3,fastd_period=3,fastd_matype=0)

매수를 위한 재료는 수집 하였고, 매도에 대해 생각해보는 시간을 갖는다.

매도는 알고리즘을 작성 시 매수 함수와 분리하여 매도 알고리즘을 작성하는 편이 더 편해보이기 때문에 아래의 그림과 같이 작성해 보았다.

Image title

그림 2 - 매도 타이밍

다음은?

다음은 위의 재료를 바탕으로 전략을 추가하여 백테스팅을 전략을 실제로 구현할 것이다.

구현하기 전 1. BUY 시그널을 생성하는 방법 과, 2. BUY 시그널 생성 후 SELL 시그널을 찾는 구체적인 방법을 생각해보고

코드로 짠 후 실제로 잘 구동되는지 검증하는 지 확인할 것이다.


Comments