private void setSelledDayData(TradeResultBean tradeResult, AccesoriesBean accesory) {
   tradeResult.setSellDate(accesory.getDate());
   tradeResult.setSellValue(accesory.getEndValue());
 }
  /** シミュレート結果の出力など、後処理。 */
  public void after() {

    // 全体日数
    int dateCount = list.size();

    // 取引数
    int tradeCount = tradeResults.size();

    // 勝利トレード数
    double winTradeCount = 0;

    // 利益
    double profit = 0;

    // 購入総額
    double buySum = 0;

    // 保有日数
    double keepTerm = 0.0;

    long maxKeepTerm = -1;

    long minKeepTerm = 9999;

    for (TradeResultBean tradeResult : tradeResults) {

      System.out.println(tradeResult.toString());

      double tempProfit = tradeResult.getSellValue() - tradeResult.getBuyValue();

      buySum += tradeResult.getBuyValue();

      // 損益を加算
      profit += tempProfit;

      // 勝数を加算
      if (tempProfit > 0) {
        winTradeCount++;
      }

      long tempKeepTerm =
          (tradeResult.getSellDate().getTime() - tradeResult.getBuyDate().getTime())
              / (1000 * 60 * 60 * 24);

      keepTerm += tempKeepTerm;

      maxKeepTerm = (tempKeepTerm > maxKeepTerm) ? tempKeepTerm : maxKeepTerm;
      minKeepTerm = (tempKeepTerm < minKeepTerm) ? tempKeepTerm : minKeepTerm;

      System.out.println(keepTerm);
    }

    // 勝率
    double winRate = winTradeCount / tradeCount;

    keepTerm /= tradeCount;

    // 利益率
    double profitRate = profit / buySum;

    System.out.println(
        "全体日数:"
            + dateCount
            + "\t"
            + "取引数:"
            + tradeCount
            + "\t"
            + "勝利数:"
            + winTradeCount
            + "\t"
            + "勝率:"
            + winRate
            + "\t"
            + "利益:"
            + String.format("%05g", profit)
            + "\t"
            + "利益率:"
            + String.format("%05g", profitRate)
            + "\t"
            + "保有平均期間:"
            + keepTerm
            + "\t"
            + "保有最大期間:"
            + maxKeepTerm
            + "\t"
            + "保有最小期間:"
            + minKeepTerm);
  }
 private void setBuyedDayData(TradeResultBean tradeResult, AccesoriesBean accesory) {
   tradeResult.setBuyDate(accesory.getDate());
   tradeResult.setBuyValue(accesory.getStartValue() * gap);
 }