人類みんなごくつぶし

2004-12-13

今日の印象深かった一言 01:46

http://knowledge.yahoo.co.jp/service/question_detail.php?queId=1858586

ダイエットできないデブと、禁煙できない喫煙者。

どちらがダメ人間でしょう。

なに?あたしのこと?

なんだ、俺のことか。

[]スキャルピング 00:42

1ティック、2ティックといった非常に小さな値動きで利益を得ること。

  • デイトレ戦術の一つ
  • 素早さと経験が必要
  • 損切りが特に大事
  • 大きく賭けないと手数料で元取れない
  • 昔は証券会社のフロアトレーダーしかできなかったが、最近はネットトレードで可能
  • あまりかっこよくはない
  • 向く銘柄、市場と向かないのがある

語源はインディアンの皮はぎらしい

http://smatt.hp.infoseek.co.jp/sub013su.htm


最近微笑な掛け金で少し試してますが、まだトントン。

[]ルール改正 17:44

http://www.ringolab.com/note/kaburobo/archives/002644.html

少し前にカブロボルールが改正されました

資産の2倍の範囲で注文可能というルールが追加されました。

これにより、同日の回転売買(デイトレ風)の売買はできなくなりました。

これに対応した、最新APIは1.2.5です。


次回プレ大会の締切は 12月16日(木)24:00 です。

最新バージョンで動作確認して登録しましょー

[]Memo オブジェクトと文字列の変換 17:18

カブロボは日をまたいでの独自ユーザデータの引渡しに「Memo」を利用する。

Memoは文字列型なので、オブジェクトを保存したい場合は、以下のようなオブジェクトと文字列と変換するクラスを作るとよいと思われる。


この例では、デフォルトシリアライズを利用している。

package hoge;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.StreamCorruptedException;


public class Memento implements Serializable{

    final static String ENCODE = "ISO8859-1";
    
    private int day;

    
    public static Memento createMemento(String memo) throws Exception{

        ObjectInputStream in = new ObjectInputStream(
                new ByteArrayInputStream(memo.getBytes(ENCODE))
        );
        Memento memento = (Memento)in.readObject();
        in.close();
        return memento;
    }
    
    public String toMemo() throws IOException{
        ByteArrayOutputStream ba = new ByteArrayOutputStream();
        ObjectOutputStream out = new ObjectOutputStream(ba);
        out.writeObject(this);
        out.close();
        String memo = ba.toString(ENCODE);
        return memo;
    }
    
    
    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }
    
    public void countDay(){
        day++;
    }
    

    //てすと
    public static void main(String[] args) throws Exception{
        try{
            Memento memento = new Memento();
            memento.countDay();
            String memo = memento.toMemo();
            memento = Memento.createMemento(memo);
            System.out.println(memento);
        }catch(StreamCorruptedException e){
            e.printStackTrace();
        }
    }
}

あるいは、JDK1.4のXMLEncoder/Decoderを利用することもできる。

シリアライズと異なり、どんな風に保存されたか確認しやすい。

ただし保存する値は、プロパティー(セッタ、ゲッタあるやつ)のみ。


package hoge;

import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.Serializable;
import java.io.StreamCorruptedException;


public class Memento2 implements Serializable{

    final static String ENCODE = "UTF-8";
    
    private int day;

    
    public static Memento2 createMemento(String memo) throws Exception{
               
        XMLDecoder decoder = new XMLDecoder(
                new ByteArrayInputStream(memo.getBytes(ENCODE)
                ));
        Memento2 memento = (Memento2)decoder.readObject();
        decoder.close();
        return memento;
    }
    
    public String toMemo() throws IOException{
                
        ByteArrayOutputStream ba = new ByteArrayOutputStream();
        XMLEncoder encoder = new XMLEncoder(ba);
        encoder.writeObject(this);
        encoder.close();
        String memo = ba.toString(ENCODE);
        System.out.println(memo);
        return memo;
    }
    
    
    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }
    
    public void countDay(){
        day++;
    }
    

    //てすと
    public static void main(String[] args) throws Exception{
        try{
            Memento2 memento = new Memento2();
            memento.countDay();
            String memo = memento.toMemo();
            memento = Memento2.createMemento(memo);
            System.out.println(memento);
            System.out.println("OK");
        }catch(StreamCorruptedException e){
            e.printStackTrace();
        }
    }
}

でも、うちのロボットは「Memo」使わないかも。。。

taktaktaktak 2004/12/15 00:46 昨日からカブロボ始めたんですけど、EclipseでJUnitが上手く動かないんです。muimyさんはロボットの単体テストしておられますか?もしそうでしたら、その方法を日記にしていただけるとうれしいです。遅刻気味の出発ですので、日記の情報いろいろ助かりました。

muimymuimy 2004/12/15 04:59 JUnitテストはしてないです。mainから実行してるだけで。。。テスト実行は、カブロボのInvestmentAgentの実装(およびそこから呼ばれる各サービスクラス)を自分で作ってわたすか、あるいはデフォルトのFlexibleInvestmentAgentを利用する場合は、jp.kaburobo.driver.KabuRoboDriver内で行われている初期化処理を行っておく必要がありそうです。日付やポートフォリオを設定して一回だけ実行するカブロボテストケースみたいなのあると便利かもですね(さすがに今そこまで作る人はいないかな。。。)。

unibonunibon 2004/12/15 08:50 笑 >あまりかっこよくはない(スキャルピング)

トラックバック - http://d.hatena.ne.jp/muimy/20041213