안녕하세요?

 

지난번 포스팅에서 계속해서 ADF test를 통과한 종목에 한해서 계속해서 강화학습을 시켜 보았지만, 전혀 수익을 내지 못하는 것을 확인할 수 있었습니다. 그래서 이번에는 한번 새로운 방법을 시도해 보고자 합니다.

 

일단 클래스와 클래스, py와 py파일 사이를 뛰어넘기 위한 변수를 만들기 위해서, 먼저 agent.py의 Agent클래스에서 첫 메서드가 시작하기도 전에 위 스크린샷처럼 빈 변수를 하나 만들어 줍니다.

 

그리고 나서 main.py에서는 agent.py의 Agent 클래스를 import해서, 이를 가지고 올 준비를 하도록 합니다. 이런 준비를 하는 이유는 아래에 나오게 됩니다.

 

일반적으로 생각하기에는 변수 = 다른 py파일의 변수 이런 식으로 가지고 오는 것만 생각했는데, 여기서는 이 순서를 반대로 해서, 다른 클래스에 있는 클래스 변수에 값을 덮어씌워 주는 것이 가능합니다.

 

 

그럼 이렇게 해서 제대로 된 데이터가 오는 것이 맞는지 확인해 보기 위해서, 위 스크린샷과 같이 agent.py의 매수 항목에 가서, 이 데이터를 한번 print()함수로 계산해 보도록 합니다.

 

그리고 여기서는 테스트만 하는 것이기 때문에 굳이 1000씩이나 할 필요는 없기 때문에, 10에포크만 하도록 하고, 이 값을 표시해 보도록 합니다.

 

그리고 나서 테스트를 하기 위해서, 위 스크린샷과 같이 관련된 데이터 베이스 파일을 가지고 오도록 합니다. 이 파을 yellow operation 프로젝트 폴더에 복사해 줍니다.

 

그런데 어디서 에러가 발생했다고 합니다. 이 에러의 원인이 무엇인고 하니, 특별히 있는 것이 아니라, 여기서는 데이터 프레임 객체에서 그냥은 bool형식의 답이 나오지 않기 때문에 이를 조금 변형시켜야 한다는 것 입니다.

 

그래서 데이터 프레임 객체에 위 스크린샷과 같이 empty라는 값을 붙여서 한번 제대로 된 값이 나오도록 만들어 준 다음에, 이 값들이 print()함수에 따라서 표시가 되는지를 알아보도록 합니다.

 

일단 제대로 나오는 것을 확인할 수 있기는 있었습니다. 이 작업을 통해서 우선은 제가 생각한 대로, main.py에서 관련된 데이터를 agent.py로 보낼 수 있다는 것을 확인할 수 있었습니다.

 

그리고 나서 위 스크린샷처럼 만약에 맨 마지막 부터 뒤에서 121번째 값까지 평균을 구해서, 구매를 했을 당시에 가격이 평균보다 작으면...... 위 스크린샷에서는 잘못 되었는데, 일단 나중에 수정을 할 것입니다. 작으면 대폭 점수를 주고, 바가지를 썼으면 감점을 대폭 주도록 만들었습니다. 일단 포스팅이 너무 길어지는 감이 있어서 여기서 잠시 끊도록 해야 겠습니다.

+ Recent posts