FileName:yutori7.java

import java.util.ArrayList;
import java.io.Serializable;
import jp.tradesc.superkaburobo.sdk.driver.RobotDriver;
import jp.tradesc.superkaburobo.sdk.robot.AbstractRobot;
import jp.tradesc.superkaburobo.sdk.trade.EnumAnalysisSpan;
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.analysis.technicalindex.PsychologicalLine;
import jp.tradesc.superkaburobo.sdk.trade.data.Portfolio;
import jp.tradesc.superkaburobo.sdk.trade.data.Stock;

class Memo implements Serializable {
    private static final long serialVersionUID = 1L;
    private ArrayList<Stock> buy_stocklist = new ArrayList<Stock>();
    private ArrayList<Stock> sell_stocklist = new ArrayList<Stock>();
    //メモ情報取得
    public ArrayList<Stock> getBuyStockList() {
        return buy_stocklist;
    }

    //メモ情報保存
    public void setBuyStockList(ArrayList<Stock> stocklist) {
        this.buy_stocklist = stocklist;
    }
    //メモ情報取得
    public ArrayList<Stock> getSellStockList() {
        return sell_stocklist;
    }

    //メモ情報保存
    public void setSellStockList(ArrayList<Stock> stocklist) {
        this.sell_stocklist = stocklist;
    }
}

public class yutori7 extends AbstractRobot {
    public static void main(String[] args){
        RobotDriver.main(new String[]{"-n", yutori7.class.getName()});
      }
   
    //初期設定
    int HoldingDay = 14; //ホールド期間(日)
    double LossCutRate = -7; //損切りレート(%)
    double GainRate =10; //利益確定レート(%)
    int buynum = 1;   //買う株の数
    int count = 16;  //サイコロジカルの集計数
    double pllow = 20;  //サイコロジカルの売られすぎの基準
    double plhigh = 80;  //サイコロジカルの売られすぎの基準
   
    public void order(TradeAgent arg0){
         double plValue; //サイコロジカルの値
         PortfolioManager portfolioManager = PortfolioManager.getInstance();
         OrderManager om = OrderManager.getInstance();
         PsychologicalLine pl = new PsychologicalLine(EnumAnalysisSpan.DAILY,count); //サイコロジカルのオブジェ
         for(Portfolio portfolio: portfolioManager.getPortfolio()){
             double gain = portfolio.getProfitRate();
             plValue = pl.getPsychologicalLine(portfolio.getStock());
             int pastDay = portfolio.getHoldingDays();
             if(plValue >= plhigh){
                 portfolio.orderReverseNowMarketAll();
             }   
             else if(gain >= GainRate){
                 portfolio.orderReverseNowMarketAll();   
             }
             else if(gain <= LossCutRate){
                 //om.cancelOrderByStock(portfolio.getStock());
                 portfolio.orderReverseNowMarketAll();   
             }
             else if(pastDay >= HoldingDay){
                 //om.cancelOrderByStock(portfolio.getStock());
                 portfolio.orderReverseNowMarketAll();
             }
             
             
        }
        //昨日チェックしていた買いリストを注文する
        MemoManager mm = MemoManager.getInstance();
        Memo memo = (Memo)mm.getObjectMemo(); //昨日の買いリスト獲得
        if(memo == null){
                return;
            }
       
       
        //買い注文を実行する
        if(memo.getBuyStockList().size() != 0) {
                for(Stock stock : memo.getBuyStockList()) {
                om.orderActualNowMarket(stock, buynum*stock.getUnit());
            }
        }

        //メモ情報の全ての要素を削除
        memo.getBuyStockList().clear();
        memo.getSellStockList().clear();
       
    }
   
    public void screening(TradeAgent arg0) {
        double plValue; //サイコロジカルの値
        Memo memo = new Memo(); //買う予定の銘柄を記憶するクラス
        PsychologicalLine pl = new PsychologicalLine(EnumAnalysisSpan.DAILY,count); //サイコロジカルのオブジェ
        ArrayList<Stock>stockbuy = new ArrayList<Stock>();
        InformationManager info = InformationManager.getInstance();
        ArrayList<Stock>stocklist = info.getStockList();
        for(Stock stock:stocklist){
            plValue = pl.getPsychologicalLine(stock);
            if(plValue <= pllow){
                stockbuy.add(stock);
            }
        }
        memo.setBuyStockList(stockbuy);
        MemoManager mm = MemoManager.getInstance();
        mm.setObjectMemo(memo);
       
    }
   
}




戻 る