報酬の条件を資産評価額の増減によって判断させる

現在の報酬条件では、ある銘柄の購入価格(始値)と終値を比較し、実行した行動が「購入」、「売却」かによって変えている。

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の値を与えるようにする。