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);
}
}
戻
る