File_Name:Ni_FirstRobot.java

import java.util.ArrayList;

import jp.tradesc.superkaburobo.sdk.driver.RobotDriver;
import jp.tradesc.superkaburobo.sdk.robot.AbstractRobot;
import jp.tradesc.superkaburobo.sdk.trade.InformationManager;
import jp.tradesc.superkaburobo.sdk.trade.MemoManager;
import jp.tradesc.superkaburobo.sdk.trade.OrderManager;
import jp.tradesc.superkaburobo.sdk.trade.PortfolioManager;
import jp.tradesc.superkaburobo.sdk.trade.TradeAgent;
import jp.tradesc.superkaburobo.sdk.trade.data.Portfolio;
import jp.tradesc.superkaburobo.sdk.trade.data.Stock;
import jp.tradesc.superkaburobo.sdk.trade.data.StockData;


public class FirstRobot extends AbstractRobot {
    public static void main(String[] args){
            RobotDriver.main(new String[]{"-n", FirstRobot.class.getName()});
          }
   
    public void order(TradeAgent arg0){
        //注文
        //利益確定売り
        PortfolioManager portfolioManager = PortfolioManager.getInstance();
        for (Portfolio portfolio : portfolioManager.getPortfolio()){
            long execValue = portfolio.getExecPrice() * portfolio.getExecQty();
            long value = portfolio.getStockValue();
            double gain = (double)value/execValue;
           
            if(gain > 1.10){
                portfolio.orderReverseNowMarketAll();
            }else if(gain <0.95){
                portfolio.orderReverseNowMarketAll();
            }
        }
       
        MemoManager mm = MemoManager.getInstance();
        Stock stock = (Stock)mm.getObjectMemo();
        if(stock == null){
            return;
        }
        OrderManager om = OrderManager.getInstance();
        om.orderActualNowMarket(stock, stock.getUnit());
        mm.setObjectMemo(null);
    }
   
    public void screening(TradeAgent arg0) {
        //銘柄検索
        InformationManager info = InformationManager.getInstance();
        ArrayList<Stock> stockList = info.getStockList();
        double maxGainRate = 1.0;
        Stock target = null;
        for (Stock stock :stockList){
            StockData sd =info.getStockDaily(stock);
            int openingPrice = sd.getOpeningPrice();
            int closingPrice = sd.getClosingPrice();
            double gainRate = (double)closingPrice/openingPrice;
           
            if(gainRate >= maxGainRate){
                maxGainRate = gainRate;
                target = stock;
            }
            if(target != null){
                MemoManager mm = MemoManager.getInstance();
                mm.setObjectMemo(target);
            }
        }
    }
}
       

        
戻 る