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

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

2009-09-01から1ヶ月間の記事一覧

単語内での改行を許可する関数

表示範囲内に収まりきらない単語がある場合に、単語の途中でも改行させるようにする関数です。 アルファベットの前にゼロ幅スペース("​")を挿入して、改行できるようにします。 /** * アルファベットの前にゼロ幅スペース("​")を挿入して、 * 単語中…

値をbooleanに変換する

今日見つけたイディオムです。値をbooleanに変換します。 !!<値> 出典はJSSpec。実行結果は以下を参照ください。 value_of( !!undefined ).should_be( false ); value_of( !!null ).should_be( false ); value_of( !!0 ).should_be( false ); value_of( !!""…

今日の豆知識

value_of( parseInt("017") ).should_be(15); value_of( Number("017") ).should_be(17); になります。微妙に動作が違う(parseIntは"0"で始る文字列が指定された場合、8進数として解析する)ので注意。このため、以下はIEだとエラー、FireFox3では0になります…

Google Street View を表示するサンプル

Google Map API を利用してGoogle Street Viewを表示するサンプルです。必要な作業は以下のとおり。 Google Map のJavaScriptライブラリをインポート Google MapのAPIキーを取得して、keyの値に設定する必要があります。 Street Viewを表示するコンテナ要素…

今日のはまり道

ラジオボタンの選択状態に応じてSelectの項目を変えようと以下のように書いたのだけど、IEだと期待通り動作しない。 $("#radio1").change( function() { $("#select").empty() .append( "<option>テスト</option>" ) ... 略 ... }); $("#radio2").change( function() { $("#se…

ラジオボタンの選択状態を変更する

「$("ラジオボタンを示すセレクタ>").val([ラジオボタンのvalue値>])」で変更できます。引数のvalue値は配列で指定しないと効果がないみたいなので注意。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./jquery-1.3.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ // リンク…</meta></head></html>

今日の罠

「検索画面を別ウインドウで開く」ということで以下のように書いていたら、IEではリンク先がサイドバーに表示される罠。 <a href="..略.." target="_search">検索画面へ</a> 旧バージョンのIEだと「_search」は特別な意味を持つとのことです。詳しくは以下を参照。 MSDN - TARGET Attribute ぬー。

:focus疑似クラス

CSS

:focus疑似クラスで、コントロールにフォーカスがある場合のスタイルを指定可能です。 「:visited」などの仲間で、同じようにセレクタで使えます。 注:残念ながらIE6以下では未対応のため使えません。 どうしてもという場合は、ずっと工事中 - IEで:focus擬…

find

なんだ、findはあるのか。 > Google Collections import static com.google.common.collect.Iterables.*; import static com.google.common.collect.Sets.*; import static com.google.common.base.Predicates.*; ... // セット Set<String> set = newHashSet("aaa",</string>…

クリック証券で提供されている為替レートのヒストリカルデータをjijiに取り込むスクリプト

クリック証券で提供されているヒストリカルデータをダウンロードして、jijiで使えるCSV形式にコンバートするツールを作ってみました。 使い方 $ ruby rate_data_importer.rb <クリック証券のユーザーID> <パスワード> <取り込む年> <開始月> <終了月>具体例…

今日の気づき

たまに発生する以下のようなコードですが、 map = {} ... list = map[str] #ハッシュからリストを取得 if list == nil # リストが未作成であれば、 list = [] # リストを作成してハッシュに積む map[str] = list end list << number # リストに値を追加。 こ…

mapとinject

Google Collectionsを使ったmapとinjectを作ってみました。 @SuppressWarnings("unchecked") static <IN, OUT, X extends Collection<OUT>> X map( Collection<IN> collection, Function<IN,OUT> f ) { try { X out = (X) collection.getClass().newInstance(); for ( IN i : collection ) out.add( f.apply(</in,out></in></in,>…

google-collectionsを使ってSetにフィルタをかけるサンプル

Google Collectionsなるものを発見。APIを眺めていて、Sets.filterユーティリティが個人的にちょいぐっときたのでサンプルを書いてみました。 import static com.google.common.base.Predicates.*; import static com.google.common.collect.Sets.*; .... //…

今日のまよい道

JSPとか使ったことないからわかんないよー。今日はまったのは以下のエラー。Tomcatは起動するのだがjspを実行すると発生する。 2009-09-17,12:39:05,JST ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/xxxx].[jsp]] (tomcat-http…

リソースの探索候補リストを作成する関数

"ja"や"en"などをキーとして各言語に対応する文字列を格納するMapがあって、そこから指定されたロケールにマッチする文字列を取り出して使う、ということなのだけど、ResourceBundleの取得先特定ってvariantとかも考慮してたよなー。一応その辺と仕様をあわ…

コマンドプロンプトから実行したプログラムのリターンコードを確認する。

コマンドプロンプトから実行したプログラムのリターンコードを確認したい場合は、以下でOKです。 $ <プログラムを実行> $ echo %ErrorLevel%リダイレクトとか、実行結果を変数に代入とかいろいろ迷走してしまった・・。orz.

クリック証券で提供されている為替レートのヒストリカルデータを一括取得するスクリプト

クリック証券で提供されている、為替レートのヒストリカルデータを一括取得するスクリプトを書いてみました。クリック証券にアクセスしてデータのzipアーカイブを取得し、指定ディレクトリに展開します。 注意事項 ダウンロードするにはクリック証券のアカウ…

細かい機能追加を行ったjiji-1.2.4をリリース

細かい機能追加を行ったjiji-1.2.4をリリースしました。 →Github - unageanu/jiji 前バージョンからの変更点は以下です。 取引結果の約定日時/決済日時から、その時点のチャートにジャンプする機能を追加しました。 チャート上で取引の詳細を表示する際に、…

zipを展開するサンプル

rubyzipを使ってzipアーカイブを展開するサンプルです。 require 'rubygems' require 'zip/zip' #===zipファイルを展開する。 #zip:: zipファイル #dest:: 展開先ディレクトリ def extract( zip, dest ) FileUtils.makedirs(dest) Zip::ZipFile.foreach(zip)…

Hello Velocity World!

次はVelocityなのです。ということで、とりあえずHello World!的なものを書いてみました。 // Velocityを初期化 Velocity.init(); // テンプレートに渡す値を保持するコンテキストオブジェクトを作成 VelocityContext context = new VelocityContext(); cont…

今日の「作ってみたけど微妙だった」

「ロックしてから処理をする機構を、タイプセーフな感じで」ということで、処理のインターフェイスとロツクメソッドを定義してみたわけですが。 /** * 処理 * @param <X> 戻り値の型 * @param <E1> 例外の型1 * @param <E2> 例外の型2 * @param <E3> 例外の型3 * @param <E4> 例</e4></e3></e2></e1></x>…

jquery-jsonでJSONを安全にパーズする。

jQueryのgetJSON()ではJSONの解析がwindow.eval()で行なわれてしまいますが、プラグインとして別途提供されているjquery-jsonを使うとJSONを安全に解析できます。 プラグインをインポートすると、「$.evalJSON」と「$.secureEvalJSON」の2つのJSON解析APIが…

JSONの解析はwindow.eval()なのか

jQueryでgetJSON()とかするとレスポンスをJSON形式で返してくれますが、このときに使用されるJSON解析ロジックは「window.eval()」だったりします。(jQuery1.3.2で確認) たとえば、以下のようなjsonデータをgetJSON()すると、JavaScriptとして実行されてしま…

レート一覧を取得するサンプル

jijiがサポートする証券会社をもうひとつくらい増やそうかな、ということでSBI証券のスクレイピングクライアントに着手。ログイン・ログアウトとレート情報取得まで実装しました。→GitHub - unageanu/sbiclient 例によってGitHubで公開。gemの作成などは未で…

バックテストを実行して結果を取得するサンプル

jijiにバックテストを登録&実行して、結果を取得するスクリプトのサンプルです。 デモサイトに接続して、 パラメータの違う移動平均エージェントを2つ実行するバックテストを作成。 実行終了を待ち、結果を出力します。 いろいろいけてないところを隠蔽する…

バックテストを登録するスクリプトのサンプル

エージェントのバックテストでは、各種パラメータの組み合わせをいろいろと変えて動作を調整したい場合があります。(カーブフィティングとかいうやつてずね。)jijiでは複数のエージェントを一括でテスト可能ですが、UIからちまちま登録するのはなかなかメン…

利用可能なフォントのサンプル画像を作成するスクリプト

利用可能なフォントのサンプル画像を作成するスクリプトを書いてみました。 システムで利用可能なフォントの一覧を取得し、 各フォントで、指定された文字列を描画した画像を出力します。 require 'rubygems' require 'RMagick' size = 24 #サイズ color = "…

利用可能なフォントの一覧を取得する。

Magick#fontsで利用可能なフォントの一覧を取得できます。 require 'rubygems' require 'RMagick' #利用可能なフォントの一覧を表示する。 Magick.fonts {|f| puts f.name } 実行結果です。 AvantGarde-Book AvantGarde-BookOblique AvantGarde-Demi AvantGa…

Tupleの型パラメータが鬱陶しいときには

この前作ったTupleですが、TrioとかQuartetを使っていると、型パラメータが長くなってしまって鬱陶しい時があります。 List<Trio<String,Number,String>> kittens = new ArrayList<Trio<String,Number,String>>(); kittens.add( new Trio<String,Number,String>( "mii", 1, "mike" ) ); kittens.add( new Trio<String,Number,String>( "kuro", 0, "egyptian" ) );</string,number,string></string,number,string></trio<string,number,string></trio<string,number,string>…

画像をHTMLテーブルに変換するスクリプト

画像をHTMLテーブルに変換するスクリプトを書いてみました。特に使い道はありませんが・・・。 require 'rubygems' require 'RMagick' require 'erb' # 画像をテーブルに変換するスクリプト。 imgs = Magick::Image.read("./kitten.jpg") img = imgs.first e…