報酬の条件を資産評価額の増減によって判断させる
現在の報酬条件では、ある銘柄の購入価格(始値)と終値を比較し、実行した行動が「購入」、「売却」かによって変えている。
public double calcReward(double action, Stock stock, InformationManager im) { double reward = 0; //株の購入価格はその日の始値と同一である int opPrice = (int)im.getStockDaily(stock).getOpeningPrice(); //その日の終値 int clPrice = (int)im.getStockDaily(stock).getClosingPrice(); if (action > 0) { //購入だった場合、購入価格(始値)より終値が高ければ+1 if (opPrice < clPrice) reward = 1; else reward = -1; } else { //売却だった場合、売却価格(始値)より終値が低ければ−1 if (opPrice > clPrice) reward = 1; else reward = -1; } return reward; }
以上のように、報酬を与える条件(報酬条件)はエージェント自らの情報は用いておらず、取引している銘柄の株価の推移のみに依存している。そこで、新しい報酬条件では資産評価額の増減によって+1〜−1の値を与えるようにする。