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