FileName:yutori4

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.RobotLogManager;
import jp.tradesc.superkaburobo.sdk.trade.TradeAgent;
import jp.tradesc.superkaburobo.sdk.trade.analysis.technicalindex.StockPriceRC;
import jp.tradesc.superkaburobo.sdk.trade.data.Portfolio;
import jp.tradesc.superkaburobo.sdk.trade.data.Stock;
import jp.tradesc.superkaburobo.sdk.trade.data.StockData;

class TestMemo 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 yutori4 extends AbstractRobot {
        public static void main(String[] args){
                RobotDriver.main(new String[]{"-n", yutori4.class.getName()});
              }
        
        //前場・後場の時のプログラム(注文)
        public void order(TradeAgent arg0){
            double rateRC_today; //昨日の移動平均との乖離率
            double rateRC_yesterday; //今日の乖離率
            StockPriceRC sprc = new StockPriceRC(EnumAnalysisSpan.DAILY,25); //各種移動平均との変化を調べるクラス

            //今もっている株を知っているポートフォリオマネージャー召喚
            PortfolioManager portfolioManager = PortfolioManager.getInstance();
            for (Portfolio portfolio : portfolioManager.getPortfolio()){ //もっている株1件ずつチェック
                Stock stock_pf = portfolio.getStock(); //この銘柄を情報獲得
                rateRC_today = sprc.getStockPriceRC(stock_pf); //昨日の移動平均との乖離率獲得
                rateRC_yesterday = sprc.getStockPriceRC(stock_pf, 1);//今日の移動平均との乖離率獲得
                
                //今日の乖離率が10%以上上回る または (昨日の乖離率がプラス かつ 今日の乖離率がマイナス)のとき売る
                if(rateRC_today > 10 || (rateRC_yesterday > 0  && rateRC_today < 0 )){
                    portfolio.orderReverseNowMarketAll();
                }
            }
            
            
            //昨日チェックしていた買いリストを注文する
            MemoManager mm = MemoManager.getInstance();
            TestMemo memo = (TestMemo)mm.getObjectMemo(); //昨日の買いリスト獲得
            if(memo == null){
                    return;
                }
            
            //買い注文を実行する
            if(memo.getStockList().size() != 0) {
                OrderManager om = OrderManager.getInstance();
                for(Stock stock : memo.getStockList()) {
                    om.orderActualNowMarket(stock, 5*stock.getUnit());
                }
            }

            //メモ情報の全ての要素を削除
            memo.getStockList().clear();
        }
        
        //夜にめぼしいものを検索
        public void screening(TradeAgent arg0) {
            //初期設定
            TestMemo memo = new TestMemo(); //買う予定の銘柄を記憶するクラス
            ArrayList<Stock> stockbuy = new ArrayList<Stock>(); //買う予定の銘柄
            double rateRC_Byesterday; //一昨日の移動平均との乖離率
            double rateRC_today; //昨日の移動平均との乖離率
            double rateRC_yesterday; //今日の乖離率
            StockPriceRC sprc = new StockPriceRC(EnumAnalysisSpan.DAILY,25); //各種移動平均との変化を調べるクラス
            
            //情報収集
            InformationManager info = InformationManager.getInstance(); //株のいろんな情報をもってる情報マネージャ
            ArrayList<Stock> stockList = info.getStockList(); //情報マネージャーからカブロボで扱える全銘柄情報獲得
            
            
            for(Stock stock : stockList){ //1件ずつチェック
                rateRC_today = sprc.getStockPriceRC(stock); //銘柄の今日の変化率を獲得
                rateRC_yesterday = sprc.getStockPriceRC(stock, 1); //銘柄の昨日の変化率を獲得
                //25日移動平均との乖離率10%以上した回っていたら買いリストへ
                if(rateRC_today < -10 ){
                    stockbuy.add(stock);
                //昨日の乖離がマイナス かつ 今日の乖離がプラスで買いリストへ
                }else if(rateRC_yesterday < 0  && rateRC_today > 0){
                    stockbuy.add(stock);
                }
            }
            //買いリストをメモし明日の昼に持ち越し
            memo.setStockList(stockbuy);
            MemoManager mm = MemoManager.getInstance();
            mm.setObjectMemo(memo);
        }

    }
戻 る