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