無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

データ構造を伝えるコード

例えばネストされたリストを作成する場合、

List<List<String>> nested = new ArrayList<List<String>>();
List<String> list1 = new ArrayList<String>();
list1.add( "a" );
list1.add( "b" );
list1.add( "c" );
nested.add(list1);
List<String> list2 = new ArrayList<String>();
list2.add( "d" );
list2.add( "e" );
nested.add(list2);
List<String> list3 = new ArrayList<String>();
list3.add( "f" );
list3.add( "g" );
nested.add(list3);    

と書くよりも、

List<List<String>> nested = new ArrayList<List<String>>() {{
    add( new ArrayList<String>() {{
        add( "a" );
        add( "b" );
        add( "c" );
    }});
    add( new ArrayList<String>() {{
        add( "d" );
        add( "e" );
    }});
    add( new ArrayList<String>() {{
        add( "f" );
        add( "g" );
    }});
}};

とか、

List<List<String>> nested = asList(
    asList("a", "b", "c"),
    asList("d", "e"),
    asList("f", "g")
);

と書くと、作成したデータの構造をコードでスマートに伝えることができる。やってることは同じでも、後から読む時のことを考えて最小のコードで必要な情報が的確に読み取れるように最適化されたコードはかっこいいよね、とか思う今日この頃。