FileName:yutori6.java

iimport 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.GoldenCross;
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> stocklist = new ArrayList<Stock>();

    //メモ情報取得
    public ArrayList<Stock> getStockList() {
        return stocklist;
    }

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

public class yutori6 extends AbstractRobot {
    public static void main(String[] args){
        RobotDriver.main(new String[]{"-n", yutori6.class.getName()});
      }
   
    //初期設定
    int HoldingDay = 14; //ホールド期間(日)
    double LossCutRate = -7; //損切りレート
    double GainRate =10; //利益確定レート
    int buynum = 1;   //買う株の数
   

    public void order(TradeAgent arg0){
         PortfolioManager portfolioManager = PortfolioManager.getInstance();
         OrderManager om = OrderManager.getInstance();
            for(Portfolio portfolio: portfolioManager.getPortfolio()){
              double gain = portfolio.getProfitRate();
              int pastDay = portfolio.getHoldingDays();
              //int price = (int)(value * GainRate);
              //portfolio.orderReverseNowLimitAll(price);
             
              if(gain >= GainRate){
                portfolio.orderReverseNowMarketAll();   
              }
               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.getStockList().size() != 0) {
                for(Stock stock : memo.getStockList()) {
                om.orderActualNowMarket(stock, buynum*stock.getUnit());
            }
        }

        //メモ情報の全ての要素を削除
        memo.getStockList().clear();
       
    }
   
    public void screening(TradeAgent arg0) {
        Memo memo = new Memo(); //買う予定の銘柄を記憶するクラス
        ArrayList<Stock>stockbuy = new ArrayList<Stock>();
        InformationManager info = InformationManager.getInstance();
        ArrayList<Stock>stocklist = info.getStockList();
        for(Stock stock:stocklist){
            GoldenCross goldencross = new GoldenCross(EnumAnalysisSpan.WEEKLY,25,75); //ここでゴールデンクロスを設定
            double signal =goldencross.getIndexGoldenCross(stock);
            if(signal == 1.0){
                stockbuy.add(stock);
            }
            memo.setStockList(stockbuy);
            MemoManager mm = MemoManager.getInstance();
            mm.setObjectMemo(memo);
        }
       
    }
   
}


戻 る