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

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

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

成行で決済するサンプル

成り行きでの決済機能を実装しました。 →GitHub - unageanu/sbiclient以下は、すべての建玉を成行決済する例です。 $: << "../lib" require 'sbiclient' require 'common' # ログイン c = SBIClient::Client.new c.fx_session( USER, PASS, ORDER_PASS ) {|s…

形態素解析を行うサンプル

Yahoo! Developer APIの形態素解析サービスを利用して、テキストの形態素解析を行うサンプルです。昨日の特徴語抽出クラスに機能を追加する感じで作成。 例によって 依存モジュールとして「httpclient」が必要です。 また、実行時には、Yahoo! Developer API…

特徴語抽出を行うサンプル

Yahoo! Developer APIのキーフレーズ抽出サービスを利用して、テキストから特徴語を抽出するサンプルです。といってもhttpclientでサービスにアクセスして結果を解析し返すだけですが・・・。 依存モジュールとして「httpclient」が必要です。 また、実行時…

ランダムな文字列を生成する関数

データを全部「aaaa...」で作っていたら圧縮率が大変よろしくて試験にならんので、ランダムな文字列を生成する関数を書きました。 「a-zA-Z0-9」の文字をランダムに組み合わせて 指定された長さの文字列を生成します。 /** * ランダムな文字列を作成する。 *…

今日見つけた大技

PostgreSQL 8 - バックアップとリストアより。PostgreSQLではpg_dumpとpsqlを使ってホスト間でのDBのダイレクトコピーができるらしい。 $ pg_dump -h <ダンプ元ホスト> <DB名> | psql -h <ダンプ先ホスト> <DB名>今度試す!</db名></db名>

リモートからの接続を許可する設定手順

Ubuntu 9.0.4,PostgreSQL8.3でリモートからDBへの接続を許可するための設定手順です。編集が必要な箇所は以下の2つ。 /etc/postgresql/8.3/main/postgresql.conf /etc/postgresql/8.3/main/pg_hda.conf 1.postgresql.conf の編集 「/etc/postgresql/8.3/main…

指定したユーザーでコマンドを実行する その2

sh

suを使う以外に、deamontools付属の「setuidgid」を使う方法もあります。 $ setuidgid <ユーザー> <コマンド>具体例は以下。whoamiは実行ユーザーを出力するコマンドです。(これも今日知った・・・。) $ setuidgid unageanu whoami実行結果です。 unageanu「…

建玉一覧を取得するサンプル

建玉一覧取得に対応。 →GitHub - unageanu/sbiclient require 'sbiclient' require 'common' # ログイン c = SBIClient::Client.new c.fx_session( USER, PASS, ORDER_PASS ) {|session| # 建玉一覧を取得 rates = session.list_positions rates.each_pair {…

Ubuntuでローカルのpostgresに接続する手順

Ubuntu9.0.4で、Rubyからローカルのpostgresに接続する手順のメモです。 Ruby/DBIのインストール Ruby/DBIはrubyから各種DBへの接続を透過的に行う為のインターフェイスです。Javaの世界におけるJDBCみたいなものと理解。Ubuntuではパッケージが用意されてい…

トレール注文を行うサンプル

SBI証券のサイトより。トレール取引は 逆指値注文に値幅指定機能を追加する注文です。逆指値を注文するときに値動きによって売り逆指値価格を引き上げたり、買い逆指値価格を引き下げたりする注文です。 つまり、以下のような時にトレール注文で発注しておく…

コマンドの所要時間を計測する

sh

「time 」でコマンドの所要時間を計測できます。 $ time sleep 3実行結果です。 real 0m3.315s user 0m0.000s sys 0m0.000s出力先は標準エラーなので、リダイレクトして結果を保存する場合は注意。 $ time sleep 3 > a.txt real 0m3.030s user 0m0.001s sys …

指定したユーザーでコマンドを実行する

sh

$ su - <ユーザー> -c <コマンド>で、指定したユーザーでコマンドを実行できます。 「-c」オプションをつけるとシェルが起動しないので、実行後はもともとのユーザーのシェル?に戻ります。 一般ユーザーで実行する場合は、(当たり前ですが)パスワードが必要…

今日参考にしたサイト

今日は、VMware Server 2で環境構築ですよ。ということで参考にしたサイトなど。 [http //d.hatena.ne.jp/pyopyopyo/20081011/p1:title=ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - VMware Server 2.0 をコマンドラインから操作する方法]:→コマン…

テーブルレベルロックの競合表

PostgreSQLのロックについて学習中。ここでテーブルレベルロックの競合表は発見したのだけど、「SHARE UPDATE EXCLUSIVE」とかいわれても良くわからんので、具体的な操作/コマンド名に置き換えてみた。○は競合しない、×は競合するです。 select select for u…

COMMENT ON

「COMMENT ON」でテーブルやカラムにコメントを設定できます。 COMMENT ON TABLE kitten IS 'this is kittens table.'; 設定したコメントは「\d+」や「\l+」で参照可。 # \d+ public | kitten | table | postgres | this is kittens table.SQL92で定められた…

IFD-OCO注文を行うサンプル

IFD-OCO注文の動作確認も完了。 →GitHub - unageanu/sbiclient IFD-OCO注文は、指値or逆指値での注文と、それの決済注文x2を同時に行う発注方法です。 決済注文は、以下の2つを同時に指定できます。 利益確定のための指値決済注文 損失限定の為の逆指値決済…

IFD注文を行うサンプル

IFD注文の動作確認ができたので、サンプルをば。 →GitHub - unageanu/sbiclient 通常の注文に加えて、決済注文のレートと執行条件を指定することでIFD注文になります。 require 'sbiclient' require 'common' # ログイン c = SBIClient::Client.new c.fx_ses…

スレッドごとに別の変数値を使う。

負荷試験はOpenSTA、とのことなので、基本的な使い方を学習中。 所用時間の計測 特定の範囲の処理の所要時間を測るには、「Timer」を使う。 「Definitions」で「Timer」を作成しておき、 「Code」内で計測対象の処理の前後で「Start Timer 」、「End Timer …

今日のコンパイルエラー

com.sun.xml.internal.ws.util.ByteArrayDataSourceを使っているクラスがあって、それをコンパイルしようとするとエラーになる。 $ javac ./Test.java ./Test.java:2: パッケージ com.sun.xml.internal.ws.util は存在しません。 import com.sun.xml.interna…

任意のコマンドを停止させられるまで実行する。

sh

yesでコマンドを出力し、shで実行。 $ yes date | sh実行結果です。 2009年 11月 11日 水曜日 13:05:33 JST 2009年 11月 11日 水曜日 13:05:33 JST 2009年 11月 11日 水曜日 13:05:33 JST 2009年 11月 11日 水曜日 13:05:33 JST 2009年 11月 11日 水曜日 13:…

今日知ったコマンド

次のプロジェクトはPostgreSQLさんなので、使い方をちょろちょろ調べ中。 データベース一覧を得る。 $ psql -l テーブル一覧を得る 正確にはテーブルのアクセス権一覧を得るメタコマンドだけど、ことは足りる。 $ psql <DB名> # \z タイムスタンプ型のカラムを更新</db名>…

rescue修飾詞

rescueって修飾詞もあるんだ。へー。 raise "test" rescue puts "error!" これは、以下と同じです。 begin raise "test" rescue puts "error!" end 実行結果です。 error!マニュアルによると「捕捉する例外クラスを指定できない=(StandardErrorの派生クラス…

OCO注文を行うサンプル

GitHub - unageanu/sbiclientを使ってOCO注文を行うサンプルです。 通常の注文に加えて、2つめの注文レートと売買種別を指定することでOCO注文になります。 require 'sbiclient' require 'common' # ログイン c = SBIClient::Client.new c.fx_session( USER,…

例外がスローされることをチェックする

例外がスローされることをチェックするには、「raise_error」マッチャーを使用します。 「proc { }.should raise_error」のような形式で使用します。 raise_errorの引数として、期待される例外の型やmessageの値を指定して詳細なチェックを行うことが可能で…

tai64n

daemontools付属のtai64nを使うと、標準入力の各行に現在の時刻を付与できます。 $ cat ./test.txt | tai64n @400000004af418f312d2bbb4 aa @400000004af418f312d2c76c bb @400000004af418f312d2cf3c cc形式が特殊なので意味不明ですが、tai64nlocal を使う…

Global beforeとafter

beforeやafterを定義するには、 各テストに個別に設定する it_should_behave_likeを使って設定を共有する ほか、「Spec::Runner.configure」を使って定義することもできます。この方法で定義されたbefore,afterはすべてのテストで有効となります。以下は、「…

複数のRspecを一括実行する

「spec」コマンドの引数でディレクトリを指定すれば、そのフォルダ以下のspecを一括で実行してくれます。 $ spec <ディレクトリ> スペース区切りで複数のディレクトリを指定することも可能。 $ spec <ディレクトリ1> <ディレクトリ2> 探索するspecは「-p」オ…

同じexampleを複数のテストで共有する

RSpec documentationの「Shared Example Groups」に説明がありますが、「shared_examples_for」を使用して同じexampleを複数のテストで共有することが可能です。 「shared_examples_for 」で共有するexampleのグループ(「Shared Example Groups」と呼ばれる…

指値注文、逆指値注文を行うサンプル

荷解きも落ち着いてきたので、ぼちぼちライブラリの実装を再開。以下の機能を実装しました。 指値/逆指値での注文 注文一覧の取得 注文のキャンセル →GitHub - unageanu/sbiclient以下は、指値/逆指値で注文して即座にキャンセルするサンプルです。なお、SBI…

デモサイト復帰のお知らせ

新居がネットに繋がったみたいなので、jijiのデモサイトにアクセスできるようになってます。これでネカフェ通いともおさらば。よし、ちょい転入届出してくる!