스토캐스틱 슬로우(Stochastic Slow) 활용 트레이딩 시뮬레이션 프로그램(1)

lg 화학 주가 및 투자금 변화

Stochastic Slow 이용 주식 거래 시뮬레이션을 소개한다. Stochastic Oscillator는 널리 알려진 보조지표이다. 자세한 내용은 본 블로그의 스토캐스틱(Stochastic Oscillator) 보조지표 글을 참고하자. 본 글에서는 Stochastic Slow를 파이썬과 Pandas를 이용하여 구현한다. 또한 몇몇 주식들을 대상으로 거래 시뮬레이션을 구현 검증한다. 가장 간단한 Stochastic Slow 이용 방법인 Slow %K 선이 Slow %D 선 위로 상향 돌파 시 매수, 하향 돌파 시 매도하는 방법을 이용한다.

목차

  1. Python과 Pandas 활용 Stochastic Slow 계산
  2. Stochastic Slow 트레이딩 시뮬레이션
  3. LG 화학 대상 시뮬레이션 및 결과 분석
  4. 셀트리온 대상 시뮬레이션 및 결과 분석
  5. 크린앤사이언스 대상 시뮬레이션 및 결과 분석
  6. 결론

Python과 Pandas 활용 Stochastic Slow 계산

먼저 Stochastic Slow를 계산하는 함수를 작성한다. Stochastic Slow 계산식을 참조하자. python의 pandas를 이용하면 rolling() 함수를 이용하여 쉽게 구현이 가능하다. 함수의 인자는 총 네 가지이다. Stochastic 계산에 필요한 프레임 크기 세 개를 넘긴다. 그리고 마지막으로 주식의 고가, 저가, 종가를 포함하는 하루 별 데이터(이하 일봉데이터)를 넘긴다. python 구현 코드는 다음과 같다.

Stochastic Slow 트레이딩 시뮬레이션

Stochastic Slow 보조 지표를 이용하여 트레이딩하는 시뮬레이션을 함수로 구현하였다. 함수는 일봉데이터와 프레임 크기, 시뮬레이션 금액을 입력으로 받는다. CalculateStochasticSlow() 함수를 내부에서 호출하여 Stochastic 값을 계산한다. For 문을 이용하여 전체 데이터를 순회하면서 Slow %K와 Slow %D를 비교한다. 값 들의 우위 관계가 바뀌면 다음날 시가에 매수 또는 매도하는 방법을 이용한다. 구현 코드는 다음과 같다.

시뮬레이션에서 매수와 매도 시 0.015%의 수수료를 적용하였고 매도 시에는 0.3%의 세금도 적용 하였다. resultDf를 반환값으로 출력하며 이를 활용, 매매 결과를 분석 한다.

LG 화학 대상 시뮬레이션 및 결과 분석

Stochastic Slow 보조지표를 가장 간단하게 이용하는 Slow %K와 Slow %D 비교 방법으로 LG 화학을 거래 했을 때의 결과를 살펴보자. 총 8개의 이동프레임 셋에 대해서 시뮬레이션을 진행하고 결과를 비교하였다. 다음의 코드 구현을 살펴보자.

아래의 그림은 결과 그래프이다. 좌측 y축은 주가를 우측 y축은 보유 투자금의 금액을 나타낸다. 매도 금액은 다음번 매수에 그대로 사용한다. 남색의 그래프가 LG 화학의 종가 그래프이다. 각 변수 별 결과는 색상으로 구별된다. 최종 시점에서 가장 우수한 결과는 (15, 6, 6)의 프레임 크기를 줬을 때이다. 일반적으로 널리 사용하는 (12, 3, 3)보다 약 10배 정도 우수한 결과를 냈다.

LG 화학 Stochastic Slow 트레이딩 결과 그래프
좌측 y축은 주가를 우측 y축은 보유 투자금의 금액을 나타낸다. 남색의 그래프가 LG 화학의 종가 그래프이다. 각 변수 별 결과는 색상으로 구별된다. 최종 시점에서 가장 우수한 결과는 (15, 6, 6)의 프레임 크기를 줬을 때이다. 일반적으로 알려진 12, 3, 3,보다 약 10배 정도 우수한 결과를 냈다.
LG 화학 Stochastic Slow 트레이딩 결과 그래프

코드 구현의 결과 부분에서 각 변수 별 결과를 더 자세히 살펴 볼 수 있다. integrated1 표를 보면 최종 시점 잔고는 (15, 6, 6)이 좋았지만 최대 금액은 15, 3, 3이 도달한 6488만원이라는 것을 확인 할 수 있다. 이때는 2002년 4월 19일로 상장 시작한 2001년 4월 25일부터 약 1년간은 Stochastic Slow 방식의 트레이딩이 우수한 성과를 냈음을 확인 할 수 있다. 하지만 최종에 와서는 가장 우수한 결과라도 원금의 반 정도만 남았다.

글을 두 개로 나눈다. Stochastic Slow 활용 트레이딩을 진행한 셀트리온과 크린앤사이언스의 결과와 결론은 링크에서 확인하자.

7 댓글

  1. SoGentle 응답

    안녕하세요. 매번 좋은 글 감사합니다.
    궁금한게 있는데요, StockFunctions 은 어디서 받을 수 있는건가요..?
    직접 만드신 패키지인지, 구글링 해도 잘 안나오네요.

    • OpenAITrading 글쓴이응답

      안녕하세요. StockFunctions는 자작 패키지입니다. 함수 중에 제 데이터 베이스에 접근하는 것들이 있습니다.
      제 데이터베이스가 NAS에서 돌리다보니 성능이 한계가 있어서 그 부분을 공개를 못하고 있습니다.
      혹시 어떤 함수 때문에 그러신지 알려주시면 그 부분만 알려드리도록 하겠습니다. 감사합니다.

      • atunh9988 응답

        안녕하세요! 시스템 트레이딩을 공부하고 있는 학생입니다! 혹시 실례가 안된다면 sfs.Buy, sfs.Sell, tv부분만 코드를 따로 올려주실 수 있으신가요?? 부탁드리겠습니다 ㅠㅠ

  2. 김태형 응답

    크린앤사이언스…

    4000원에 샀다가 5000원에 팔았더니 몇달뒤에 보니 2만원 찍고있던…

    • OpenAITrading 글쓴이응답

      그래도 20프로 수익 보셨으니 다행이네요.
      주식이 그런거죠 뭐 ㅎㅎ

  3. 최무겸 응답

    파이썬으로 주식매매할려고 하는데,
    보조지표는 증권사꺼 안쓰는 가정하에요
    직접 보조지표를 만들어서 종목을 검색할 수 있나요?

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다