カブロボを作成するときに,画面に文字列を出力したいときがあります. そんなとき,通常だと
System.out.println("出力文字");
と書きたくなりますが,カブロボでこれをやってしまうと,
サーバにアップロードしたときにエラーが発生してしまいます. そこで,System.outを使わない文字列出力方法をご紹介しましょう.
このような場合通常は,RobotLogManager を使えばよいのですが, 文字列を出力するたびに
RobotLogManager logger = RobotLogManager.getInstance();
logger.log("出力文字");
と書くのはちょっと面倒です.
そこで,System.outの代わりとなるようなクラスを作ってしまうと楽になります. 例として,Viewerというクラスを作ってしまいましょう. このクラスにString型を引数としたstaticメソッドを作成すれば,どこからでも文字列を出力することが出来るようになります.
import jp.tradesc.superkaburobo.sdk.trade.RobotLogManager;
public class Viewer {
public static void show(String string) {
RobotLogManager log = RobotLogManager.getInstance();
log.log(string);
}
}
このクラスを利用したいときは,以下のようにします.
import jp.tradesc.superkaburobo.sdk.robot.AbstractRobot;
import jp.tradesc.superkaburobo.sdk.trade.TradeAgent;
public class ViewerTestRobot extends AbstractRobot {
@Override
public void order(TradeAgent arg0) {
Viewer.print("order time");
}
@Override
public void screening(TradeAgent arg0) {
Viewer.print("screening time");
}
}
実行すると, 以下のように出力が得られ,かつカブロボサーバにアップロードしてもエラーが発生しません. 役に立つテクニックですので,是非利用してみてください.
●● 2006/03/14 16:00 (火) ● スクリーニング処理開始 ●●●●●●●●●●●●●●●●●●●●●●●
【保有資産評価】
取引余力 50,000,000 円
株式評価額 0 円
資産評価額 50,000,000 円
【ポートフォリオ】
所有銘柄はありません。
screening time
●● 2006/03/14 23:59 (火) ● スクリーニング処理終了 ●●●●●●●●●●●●●●●●●●●●●●●
ロボット処理時間(ミリ秒): 0
■■ 2006/03/15 08:00 (水) ■ 注文処理開始 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■
【保有資産評価】
取引余力 50,000,000 円
株式評価額 0 円
資産評価額 50,000,000 円
【ポートフォリオ】
所有銘柄はありません。
order time
【注文結果】
注文はありません。
■■ 2006/03/15 09:00 (水) ■ 注文処理終了 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Author:tori
FC2ブログへようこそ!
「株式自動売買ソフトウェア 株ロボを作ろう! SDK2.0対応」 に載っているテクニ君の売買結果です。