안녕하세요?
이번 포스팅에서는 어제 하루종일 주식시장에 제 평균회귀 모델을 적용한 결과를 포스팅 하고자 하는데, 일단 하시는 분은 아시겠지만, 어제는 주식시장이 시작하자 마자 1%의 급락이 있었고, 이 때문에 평균회귀 모델을 적용하는데 정말인지 안 맞는 상황이 이어졌습니다.
먼저 5월 3일의 결과를 한번 분석해 보았는데, 일단 위 스크린샷에서 보이는 것처럼 실현속익이라는 HTS인 영웅문4의 윈도우를 보면, 그날 하루종일 얼마나 손실을 입었는지를 알 수 있습니다. 일단 손실이 나기는 했습니다.
그래서 엑셀로 결과를 정리해 보았더니, 일단 차액으로 이익을 본 경우나 손실을 본 경우나 거의 막상막하라는 것을 볼 수 있습니다. 거기다가 수수료와 세금을 제외하니 실제로 이익이 난 경우는 40번 중에서 1번밖에 없다는 것을 알 수 있었습니다.
그래서 먼저 Average_returning.py에서 이동평균선이 기존에는 10이라는 수치를 사용해서 10일 이동평균선을 사용했습니다만, 여기서는 120일이라고 해야 할까요? 약 120분 이동 평균선으로 잡아 놓았습니다.
그리고 나서 다음으로는 거래 수수료 등이 포함이 될 수 있도록 만들어 주도록 합니다. 일단 기존에는 표준편차보다 difference값이 크기만 하면 되었지만, 이번에는 거래수수료와 세금을 넣어주어서 만들어 주도록 합니다.
그리고 나서 에러가 왜 나오는지 알아보기 위해서, 위 스크린샷처럼 한번 stderr이 나오면, 그 변수를 잡아서 디코딩 시키도록 만들어 주도록 합니다.
그리고 나서 다음으로 만들어 놓을 것은, 아마도 이 부분에서 state가 나오지 않아서 에러가 나왔다고 생각을 해서, 그럴 경우에는 error_list.txt를 생성하라는 명령을 내리도록 합니다.
다음으로는 pytrader를 실행시켜서 유유제약의 분봉차트를 가지고 오는 작업을 수행하도록 합니다. 이렇게 함으로써 이제 7일날 주식시장에 들어가 보고자 합니다.
그리고 나서 다음으로 나와야 하는 것은 역시 대우건설의 분봉차트를 가지고 오는 것 입니다. 이것도 잊으면 곤란하기는 매우 곤란합니다.
다음으로 데이터 베이스 파일에 제대로 된 데이터가 들어온 것이 맞는지 한번 확인해 보고자 합니다. 이렇게 테이블이 2개 생성된 것을 확인할 수 있었습니다.
일단 지금까지 했던 내용을 복습하자면, 원래 평균이 있으면 이 평균에서 더 크거나 더 작은 표준편차가 있습니다. 그런데 이 표준편차 밖에 있으면 다시 평균값을 회복할 가능성이 크기 때문에 평균 + 양의 표준편차 위에 현재가가 형성되면 하락할 가능성이 크니까 매도하고, 반대로 낮으면 매수합니다. 거기다가 점선으로 표시된 거래수수료와 세금을 더해주는 것 입니다.
일단 작업에 들어가 보기는 했습니다만, 에러가 발생하는 원인이 제가 예상한 것이 아니기는 해서, 이래저래 에러를 이번에는 잡아낼 수 없었습니다.
아무래도 지금은 QProcess를 두개나 작동을 시켜서 나오는 오류가 아닌가 하는 생각이 드는데, 이 때문에 이 오류의 해결은 상당히 요원한 일이 되었습니다.
일단 이렇게 해서 7일날의 주식시장이 오후 3시 30분이 되어서 마무리가 되었습니다. 일단 덜 떨어졌을 때 프로그램이 매수를 해서 그런지는 몰라도, 전체적으로 매수만 하였습니다.
일단 유유제약의 현재가인데, 왜 매수밖에 안 했는지 알만합니다. 장이 열리자 마자 이래저래 하락한 다음에, 완전히 바닥을 기는 상황이 벌어지고 있습니다.
대우건설의 주가도 위 스크린샷에서 나와 있는 것처럼 이래저래 상황이 좋지 않아 보입니다. 아무튼간에 일단 시작하자마자 1%의 급락이라는 소식이 나와서 않 좋은 출발이 되었습니다만, 그래도 한번 어떻게 이번 모델이 적응을 하는지를 한번 알아볼까 합니다.
'무모한 도전-주식 인공지능 만들기' 카테고리의 다른 글
QProcess에서 데이터를 서로 주고받기 위한 새로운 시도 (0) | 2019.05.10 |
---|---|
결과조차 나오지 않는 상황과 새로운 시도 (0) | 2019.05.09 |
빅데이터(?)의 처리하는 방법-3- (0) | 2019.05.07 |
빅데이터(?)의 처리하는 방법-2- (0) | 2019.05.07 |
빅데이터(?)의 처리하는 방법 (0) | 2019.05.06 |