선물 자동매매프로그램 Ver.2 개발 시 최우선 고려사항(횡보장 피하기)
본문 바로가기

프로그램 기반 주식 응용/선물자동매매 Ver.2 개발 일지

선물 자동매매프로그램 Ver.2 개발 시 최우선 고려사항(횡보장 피하기)

반응형

선물 자동매매프로그램 ver.2 개발 시 최우선 고려사항에 대하여 전달하려고 합니다. 이는 저에게 경각심을 되새기고자 하는 포스팅이 될 수 있습니다.

 

1. 횡보장에서 의미없는 진입 최소화

 아래 그림을 보시면 주가가 의미 없는 횡보를 진행하다가 하락장이 시작되는 것을 확인할 수 있습니다. 녹색의 지지/저항선은 타점선이라 표현하겠습니다. 이평선 또는 볼린져밴드 등의 다양한 기법으로 타점을 잡는다 보고 그 타점을 녹색이라 표현한 것입니다.

 첫번 째 그림의 1분 봉에서 제시된 녹색선을 돌파하면 진입을 해야겠지요. 하지만 약 6번 이상의 fake 신호가 있는 것을 확인할 수 있고 우리는 이때마다 진입을 하게 된다면 계좌가 녹아내릴 것입니다. 그럴 경우 저는 2가지 방법을 적용해 보았습니다.

진입관련 자료
진입관련 자료

 1) 20일선 추가 사용 : 굳이 20일선이 아니여도 되고 다른 보조지표를 추가적으로 사용해도 됩니다. 저 같은 경우는 미래예측 20일선을 사용하였습니다.

  ● 장점 : 만약 20일선이 두 번째 그림과 같이 우상향 하다 하락하게 된다면, No.1/3/5 fake에서는 진입을 하게 되며, No.2/4/6 fake에서의 진입은 막게 되어(20일선이 추세적으로 우상향이므로 하방 진입을 막게 됩니다.) fake신호에 당할 확률을 절반으로 줄일 수 있습니다. 그리고 20일 선도 확실히 하락이 나오는 No.7 real에서 진입이 들어가게 됩니다. 

  ● 단점 : 모든 알고리즘에는 장/단점이 따라오게 되어 있습니다. 20일선을 사용하게 되면, 기울기가 음으로 떨어지기 까지 시간이 소요됨으로 완전한 바닥에서 진입하기가 어려워집니다. 즉 발바닥이 아닌 발목언저리에서 진입하게 됩니다.

  ● 결론 : 20일선 사용으로 진입이 늦어지더라도 추세를 먹는건 동일합니다. 이는 여러 번의 fake 신호에 당하는 것보다 효율적이라 판단됩니다. 저는 프로그램에서 이를 민감도라 표현하여 상승 민감도 강화(매도 후 매수 들어갈 때 20일선을 확인하여 상방일 경우에는 매수로 들어가게 함. 만약 20일선이 하락일 경우에는 매수 진입을 막음), 하락 민감도 강화(매수 후 매도 들어갈 때 20일선의 앞과 같이 확인)로 표현하였습니다.

 

반응형

 

 2) 1분봉이 아닌 5분 또는 15분 봉의 사용

  ● 장점 : 위의 마지막 그림과 같이 분봉이 올라가면 smoothing 효과가 발생하여 fake신호에 강해지는 것을 확인할 수 있습니다.

  ● 단점 : 거래가 늦어져 위 20일선 사용때와 같이 바닥에서 진입하기가 어려워집니다.

  ● 결론 : 20일선과 동일하게 진입이 늦더라도 여러 번의 fake 신호를 피할 수 있기 때문에 좋은 선택지라 생각합니다.

 

 3) 의견

 초단타 스캘핑이냐 적절한 스캘핑이냐를 확실히 정해야 합니다. 코인은 다를 수 있겠지만 우리나라 코스피 200의 경우에는 생각보다 움직임이 많이 없는 편입니다. 이럴 경우 정말 회쳐먹듯 지수를 발라먹으려면 틱단위로 분해해서 먹어야 합니다. 그도 아닐 거면 높은 분단위를 사용하여 안정적인 진입을 시도해야 합니다.

 우선 다음 주부터 위의 두 방법이 적용된 프로그램을 가동하여 결과를 확인하려 합니다. 위의 녹색 타점선의 경우 이전 포스팅에서 어떤 기준으로 잡는지 말씀드렸습니다. 

 

2. 과최적화 회피 : simple is smart

 제가 연구하면서 항상 마주치는 문제는 과최적화 입니다. 이것도/저것도 다 좋은 것처럼 느껴져 RF/위성통신/WiFi/LTE 등을 다 사용하면 어디서든 통신이 되는 장비를 만들 수 있겠지요. 하지만 저것들을 다 넣어서 좋았던 적이 단 1번도 없습니다. 모든 것을 잘하기보다 그 상황에 맞게 대응하는 장비를 simple하게 만드는 것이 가장 samrt 한 행동입니다.

 이것/저것 등을 막기 위해 몇 가지 아이디어를 추가했지만 이게 과최적화로 가지 않도록, 그리고 개인적인 생각이 최대한 배제될 수 있도록 딥러닝을 시켜 그때그때 상황에 맞게 계수를 변경하고자 합니다.

 과최적화로 인해 늦은 진입과 늦은 손절 등이 방생할 수 있는 여지를 최대한 없도록 노력해 보겠습니다. Ver.1을 놓아두고 Ver.2를 개발하면서 상당히 많은 곤욕을 치르고 있지만 다시 한번 더 성장 할 수 있는 아주 좋은 자극제와 경험치가 쌓이고 있습니다. 이는 차 후 많은 역경과 고난을 이겨낼 귀중한 힘이 될 것이라 믿어 의심치 않습니다.

 누군가 그러더군요. 저의 최대 장점은 절대 포기하지 않는 것이라고요. 그 말인 즉 성공할 때까지 아니 개인적으로 만족할 때까지 계속 달려간다는 것입니다. 제가 쓰러지지 않는 이상 여러분들이 돈을 잃는 상황은 오지 않을 것입니다.

 내일을 또 기대해 보겠습니다. 감사합니다.

반응형

.link_tit