완전히 다시 시작.알고리즘Clean RL 오픈소스 기반으로 전부 재설계. 그래프만 기존 코드 반영DQN부터 시작해서, DQN으로 끝까지 가보고 그 다음 다른 알고리즘으로 넘어가자.데이터 비트코인 2020~2025년 5월까지 데이터1시간 봉 사용리워드기존방식은, 초기 투자금과 현재 계좌의 가치 차이만큼 리워드로 부여함reward = (self.net_worth - self.initial_balance) / self.initial_balance그러나 너무 초반에 사서 들고만 있으려는 성질이 강하다. 비트코인 가격이 계속 올랐기 때문에 들고 있어도 좋았지만, 나는 능동적으로 자주 사고 파는 Agent를 만들고 싶다.따라서, 어차피 학습시에는 미래 가격을 알 수 있다는 점을 활용하여 특정 시점의 미래 가격 대비..
[변경 사항]cleanrl 라이브러리에 적용되어 있던 PPO 알고리즘을 이식해옴.덕분에 추가 튜닝해야 할 파라미터가 많아짐.. ppo_params= {'gamma': args.gamma, 'gae_lambda': args.gae_lambda, 'num_minibatches': args.num_minibatches, 'update_epochs': args.update_epochs, 'norm_adv': args.norm_adv, 'clip_coef': args.clip_coef, ..
Epoch 1000/1000Epsilon:0.1000 #Expl.:6161/61086 #Buy:1513 #Sell:1567 #Hold:58006 #Stocks:0.022898682162311716 PV:5,115,663 PR:-0.53 Loss:0.738947 ET:70.2880 학습이 끝난 Agent는 성적이 좋지는 않아도 10% 정도는 Buy, Sell Action을 취했다.그러나 Test 데이터에 대해서 평가를 해보았으나 Hold 외에 Buy/Sell을 전혀 하지 않았다.모델 로드가 잘못되었다고 생각해서 한참 관련 코드를 보았으나 문제는 epsilon에 있었다.학습 할 때 10%는 Buy/Sell을 한 이유는 Epsilon이 10%라서 했던 행동이었다. 평가를 할 때는 Epsilon이 0%로 Arg..
책 "파이썬을 이용한 딥러닝/강화학습 주식투자"를 이용해서 직접 투자를 해보기로 했다.데이터책에서는 한국 주식에 대하여 거래를 하지만 나는 24시간 거래가 진행되고 이미 거래 경험이 있는 '비트코인'에 대하여 학습을 진행해보고자 했다. 도메인: 비트코인Candle type: 1시간학습 데이터 period: 2018/01/01 ~ 2025/02/27평가 데이터 period : 2025/02/28 ~원본 데이터 컬럼open, high, low, close, candle_acc_trade_price, volume학습 데이터 컬럼비트코인의 가격은 몇백~몇천만원 단위이다. 따라서 학습을 원활히 하기 위해서는 적절한 정규화 작업이 필요한데, 이 작업이 굉장히 번거로울뿐 아니라 정규화된 데이터에서 학습을 한 모델은 ..