본문 바로가기
무모한 도전-주식 인공지능 만들기

프로그램의 시운전과 에러잡기 -7-

by 인터넷떠돌이 2020. 12. 3.
반응형

안녕하세요?

 

일단 지난번 포스팅에서 설명을 더 해야 할 것이 있는 와중에 중간에 끊었는데, 일단 그건 그것이고, 지금부터 해야 할 것이 있습니다. 우선 자동으로 주식시장이 서는 시간에 맞춰 주는 기능하고, 그 다음으로 해야 하는 기능으로는 시간에 맞춰서 시작을 하고 늦추는 기능이 있습니다. 일단 2020년도 수능인 오늘에는 9시 시작이 아니라 10시에 시작하고, 4시 30분에 끝나기는 합니다.

 

가장 먼저 한 일로는 위 스크린샷에서 볼 수 있었던 것처럼, 일단은 시간을 비교하는 일인데, 장이 열려 있는 시간이라면 특별히 on Market이라고 뜨고, 그 외에는 일단 닫는 것으로 했습니다.

 

일단 이 시간대가 새벽시간대여서 그런데, 일단은 장외시간이기 때문에 장이 닫혔다고 나오는 것을 확인할 수 있었습니다. 이것만 해도 될것 같지만, 무언가가 부족합니다.

 

그래서 위 스크린샷처럼 일단 1초 기다린 이후에 장이 서기 전 시간 - 새벽 0시부터 오전 9시 이전이면 계속 기다리면서 장이 열리라고 하고, 나머지 경우 - 오후 3시 30분을 넘어서 장이 닫힌 경우라면, 그냥 프로그램을 끝내라는 명령을 내리도록 합니다.

 

일단 이걸 테스트한 시간대가 새벽에 하다보니, 역시 계속해서 기다리고 있다는 명령이 나오는 것을 확인할 수 있었습니다. 이런 이유로 인해서 어찌저찌 기다리는 쪽은 완성이 되었습니다.

 

그리고 나서 다음으로 손봐야 하는 부분이 하나 있습니다. 바로 위 스크린샷에서 보이는 것처럼, 기존에는 매수 주문이 있는 것을 보고서 매도 여부를 결정했는데, 문제는 이 데이터 베이스는 거의 언제나 비어 있는 상황이 많았기 때문에, 매도주문이 언제난 Hold로 처리가 되어 버리는 문제가 있습니다.

 

 

그래서 위 스크린샷에서 보이는 것처럼, 일단 새로운 데이터 베이스 파일을 생성해서 여기다가 관련된 내용을 넣어 보도록 하였습니다.

 

그리고 나서 다음으로 진행하고자 하는 것으로는 이 데이터 베이스를 가지고서 손절매 상황도 봐야하는 경우가 나옵니다. 일단 이 경우는 이 경우대로 놔 주도록 합니다.

 

그리고 나서 다음으로 해야 하는 것은 일단 매도가 일어나고 나면, 해당하는 Buy_Marking안에 있는 항목은 삭제가 되어야 합니다.

 

그리고 나서 해당하는 메서드를 만들어서 여기서 해당하는 코드가 있으면, 해당되는 내용을 모두 없애라는 식으로 SQL 쿼리를 만들어서 실행시킵니다.

 

그리고 매수 취소가 되었으면, 여기서도 해당하는 내용을 지우기 위해서 이 메서드를 매치하도록 합니다. 이렇게 해서 배치가 되었으면......

 

그리고나서 다음으로 한 것은 역시나 그전에는 Buy_order라는 데이터 베이스를 매도할 때 참고했는데, 이번에는 위 스크린샷처럼 Buy_Marking을 참고하라는 식으로 바꾸었습니다.

 

알던 이런 상황에서도 위 스크린샷에서 보이는 이 마이너스 예산의 상황은 조금도 좋아지지는 않았습니다. 이걸 어떻게 해결할 길이 없기는 없었습니다.

 

특히나 어디서 이런 에러가 나온 지는 모르겠지만, 일단 한꺼번에 상식을 넘어갈 정도로 많은 값이 마이너스로 빠져 버리는 상황을 볼 수 있었습니다.

 

어찌어찌 되었건 간에 일단, 매도를 제대로 할 수 있도록 바꾸어 놓았기 때문에, 이 작업을 하기 위해서, 위 스크린샷에서 볼 수 있는 것처럼 새로 모의투자 신청을 합니다.

 

그리고 나서 제대로 한번 작업을 해 보기 위해서, 나머지 데이터 베이스를 제거한 상태에서 한번 작업을 하고자 합니다. 이 작업을 하기 위해서 이제 준비를 다 마치고, 화요일 아침이 되기를 기다리고 있는 상황이기는 합니다. 다음 포스팅에서 화요일에 있었던 결과를 올리고자 합니다.

반응형