엑셀_파이썬_기타 코딩

국채 선물 차트 패턴 트레이딩 전략 (분단위)

2024. 3. 23. 13:50

관련 글: https://oikon-mundi.tistory.com/510

https://oikon-mundi.tistory.com/542

2023.11 작성

2024.03 내용 추가

https://blog.naver.com/chunjein/100154377589

 

6. 알고리즘 트레이딩 - 패턴 인식 매매 (2)

알고리즘 트레이딩 (Algorithmic Trading) - 전략 (6) 알고리즘 트레이딩 - 패턴 인식 매매 (2) 이전 포...

blog.naver.com

" 여기까지 기술적 분석이나, 패턴 분석 등 방향성 투자에 대한 알고리즘 트레이딩에 대해 간단히 살펴보았다. 포스트는 간단히 하였지만 그동안 나름대로 많은 시도를 해본 결과, 필자의 실력으로는 알고리즘에 의한 방향성 트레이딩은 성공하기가 어렵다는 결론을 내게 되었다. 물론 기술적 분석이나, 패턴 분석 분야에 전문가가 있을 수 있고, 알고리즘으로 꾸준히 수익을 내는 분들이 있을 수 있겠으나, (만약 있다면) 그건 그분들의 전문적인 지식, 꾸준한 노력, 오랜 경험, 위험에 대한 대가 등, 이론적으로 설명할 수 없는 어떤 것들을 통해 얻어진다고 밖에 볼 수 없다."


간단한 분단위 차트 패턴에 따른 매매 전략을 만들었다. 특정 차트 패턴이 확인되면 진입/청산하는 것이다. 

프로세스

1.단말기를 통해 국채선물 데이터를 엑셀로 저장한다. 이후 코랩에 업로드하여 코드를 실행할 준비를 한다.

-시간 단위: 국채선물이 생긴 이후의 모든 일자별 1분 단위 데이터. (사진에서는 sample로 5분 데이터) 

-저가/고가/종가/전일 종가대비 종가 등을 사용한다.

-코랩이 아닌 로컬 파이썬 에디터를 사용하는 것이 좀 더 처리 속도가 빠르겠지만, 우선은 좀 더 익숙한 형태인 코랩을 사용했다.

-SQL이나 여타 시계열 데이터를 다룰수있는 다른 라이브러리가 좀 더 처리속도가 빠르다고는 들었지만, 우선은 좀 더 익숙한 형태인 판다스 라이브러리를 활용했다.

2.코드는 크게 두 가지 파트로 나뉜다.

1)차트 패턴 확인 

2)패턴 확인 이후 진입/청산에 따른 손익 집계

-일별로 loop를 돌려 일별 데이터프레임을 형성한다.

-각 일별 데이터프레임에서 차트 패턴을 확인해보자. loop문을 사용해 분단위로 차트패턴을 체크한다.  

-(각 일별 데이터프레임에서) 패턴이 확인될 경우, 전략 수행에 따른 성과 데이터프레임을 형성한다.

-일별 데이터 성과프레임을 집계한 데이터프레임을 만든다.

-시각화한다.

특정일의 패턴 예시


결과 & 더 생각해볼 점들

-> 차트 전략이 안정적으로 수익을 내는 줄 알았으나 재확인해보니 코딩을 잘못했다. 결과는 신통치 않다.  

- 차트 패턴을 양적으로 정의하는 작업에는 자의적인 파라미터 설정이 수반된다. 흔히 하는 것이지만 파라미터 값을 바꾸어 가며 좀 더 최적의 결과를 뽑는 것도 가능할 것이다. 파라미터별로 성과를 확인하려면 코드 중 일부를 함수 형태로 바꾸는 것이 편할 듯하다.

-성과를 측정하는 방식을 좀 더 다양화할 필요가 있다. 현재는 평균수익과 히스토그램, 누적수익률만 사용했다. skew값같은 좀 더 통계 수치를 뽑아내든, 샤프 지수를 뽑든 (이런 트레이딩 전략에 샤프 지수를 쓰는게 적절한진 잘 모르겠다), 궤양 지수를 쓰든 다른 성과 측정 방식을 써보는 것을 생각해봐야겠다.

-더 많은 차트 패턴을 테스트하고 싶다. 그렇지만 차트 형태가 복잡해질 수록 차트 패턴 인식을 코드로 짜는게 어려워지고, 더 자의적이게 될 것이다. 패턴 인식을 위한 파라미터 수가 늘어나면서 성과 측정이 어려워질 것이다. ex) 추세선, 다이아몬드 패턴을 코딩으로 짜는 걸 생각해보라. 할 수야 있겠지만, 파라미터를 덕지덕지 세팅해서 패턴을 인식한 결과가 robust하다고 할 수 있을까.