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

가장 힘들어 보이는 장애물을 넘기 위한 시도-14-

by 인터넷떠돌이 2019. 4. 20.
반응형

안녕하세요?

 

이번 포스팅에서는 지난번 포스팅에서 발생한 산넘어 산을 넘었더니 또 등장한 산까지 넘어간 것을 다루어 보고자 합니다. 이번 포스팅에서 어떻게 action_list.txt에서 나오는 문제를 해결하기는 했습니다만, 또 다른 문제가 발생한 것을 알리고자 합니다.

 

지난번 포스팅에서 발생한 에러가 무엇이냐 하니, action_list.txt에 1줄밖에 없을 경우에 줄의 마지막 줄을 읽으라는 명령인 [-1]을 사용하면 에러가 났습니다. 그래서 리스트의 길이를 측정해서 이게 1줄밖에 없다 = 1인 값이 되면 0번째 요소를 읽으라는 식으로 바꾸어 주도록 합니다.

 

그런데 계속해서 왜 에러가 나왔는데, 그 이유로는 1줄밖에 없는 경우에는 len()함수로 0이라는 값을 반환하기 때문에 1로 해서 생기는 문제였습니다.

 

그래서 문제가 된 부위를 1에서 0으로 바꾸어 주도록 하고, 다시한번 pytrader4를 작동시키도록 해 봅니다. 이번에는 에러 없이 제대로 작동이 될 것을 기대하면 출발해 봅니다.

 

그리고 계속해서 잊은 것이 있는데, 위 스크린샷에서 보이는 것처럼 텍스트 파일을 open()함수로 열어서 내용을 적었으며, 반드시 닫아서 다음에 읽을 때는 오류가 없도록 해 주어야 합니다.

 

 

위 스크린샷에서 보이는 것처럼 산넘어 산의 또 연속이 이어졌습니다. 일단 제대로 되는 것 같기는 합니다만, 문제는  제대로 된 액션을 취하고 있지 않은데, 그 이유로는 [ 와 ]가 전에 없이 위 스크린샷에서 보이는 것처럼 들어가 있다는 것이 문제는 문제입니다.

 

그리고 \n을 없앴더니 혹시나 했던 문제가 발생하는 것을 확인할 수 있었습니다. 여기서 나오는 내용을 보자면, 줄바꿈이 없어서 계속해서 같은 줄로 이어진다는 것을 볼 수 있습니다.

 

그래서 이번에는 하다하다 안되어서, trader_stocks메서드에서 매수/매도/관망 그 어느것 중에 하나라도 안 걸리면 에럭 발생했다는 메세지가 뜨도록 만들어 줍니다.

 

그리고 혹시나 했더니 역시나 라고 할까요? 저렇게 줄바꿈 표시까지 있는 채로 어떻게 잡아 보려고 했습니다만, 결과는 그다지 시원찮지 않은 것으로 나오는 것을 볼 수 있었습니다.

 

그래서 하다하다 안되어서, 이번에는 위 스크린샷에서 보이는 것처럼, find()하는 함수로 문자열에서 해당하는 함수가 있으면 정수의 값을 내보내고, 아니면 -1을 내보내는데, not을 앞에 붙여서 find()함수로 해당하는 문자열이 없는 것이 아니다 = 있는 것이기 때문에 이렇게 바꾸어서 해 봅니다.

 

일단 이번에는 제대로 된 결과가 action_list.txt에 들어가 있는 것을 확인할 수 있었습니다. 그래서 pytrader4가 아니라 이제 pytrader4의 부모 프로세스를 실행시켜서 제대로 작동이 되는지를 확인해 보고자 합니다.

 

그러나 문제가 발생한 것을 확인할 수 있었습니다. 위 스크린샷에서 나오는 것처럼 어떻게 하기는 했는데, 문제는 pytrader4자체가 자식 프로세스가 되면, 이 경우에도 action_list.txt에 기록이 저장되지 않는 것을 확인할 수 있었습니다. 이런 일이 발생했기 때문에 더 이상 txt파일을 이용하기는 힘들어 졌다는 생각이 듭니다.

반응형