[カブロボ]目標額に到達したら売りのコード
三日目にある方法で一銘柄選んで全額投資(買い注文)します。この部分は秘密です。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); // 注文の発
}
}
}
今現在、買いから入るか売りから入るか考え中ですが、
とりあえず買いから入ることにしています。
以下ソースコードです。
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); // 注文の発
}
}
}