[カブロボ]目標額に到達したら売りのコード | ふぁんくしょん

[カブロボ]目標額に到達したら売りのコード

三日目にある方法で一銘柄選んで全額投資(買い注文)します。この部分は秘密です。4日目以降は目標額に到達したら売り注文を出すようにしました。

今現在、買いから入るか売りから入るか考え中ですが、
とりあえず買いから入ることにしています。

以下ソースコードです。

 void 四日目以降処理(InvestmentAgent investmentAgent)
 {
 
  //目標額に到達したら手仕舞い。
  //実際には目標額に到達する値段で三日目に買った株の売り注文
    
  Stock[] stocks = investmentAgent.getStocks(); //取引対象銘柄全部の配列

  //このコード微妙。getHoldingでとってきたmapのイテレータをまわす方がきれい。
  for(int i = 0;i < stocks.length;i++)
  {
   Holding hold = (Holding)(investmentAgent.getPortfolio().getHoldings().get(stocks[i]));
   if(hold != null && hold.getNumber() > 0)
   {
    long temochi = investmentAgent.getPortfolio().getMoney();
    long price = (Constant.目標額 - temochi) / (long)hold.getNumber() + 1;
 
    SimpleStockOrder stockOrder = new SimpleStockOrder();
    stockOrder.setLimit(price); //指値(0なら成行)
    stockOrder.setLimitType(StockOrder.LIMIT); //指値注文
    stockOrder.setQuantityByNumber(hold.getNumber()); //売買限度単位数(明示的に単位数で指定)
    stockOrder.setStock(stocks[i]); // 注文の銘柄を設定
    stockOrder.setTradeType(StockOrder.SELL); // 売り注文に設定
    investmentAgent.order(stockOrder); // 注文の発
   }
  } 
 }