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

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

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

拡張for文でループできるクラスのサンプル

java.lang.Iterableを実装すればOK。 /** * 拡張for文でループできるクラス */ class Test implements Iterable<String> { public Iterator<String> iterator () { return Arrays.asList( new String[] { "a", "b", "c" } ).iterator(); } } for ( String str : new Test() )</string></string>…

型パラメータで指定された型を引数で受け取るメソッドの定義ではまる

型パラメータで指定された型を引数で受け取るメソッドがあって、 class Test<T> { void add( T value ) {} } このとき、「add」の引数として指定できるのは「Tと代入互換性があるクラス(T or Tの派生クラス)」になります。で、これと同じノリで、一括登録版の「</t>…

ObjectProxyでオブジェクトの属性変更を監視するサンプル

ObjectProxyを使うとオブジェクトの属性変更を監視する仕組みがさくっと作れます。使い方は以下の通り。 監視するオブジェクトを作成。 作成したオブジェクトを引数として、ObjectProxyを作成してラップ。 「addEventListener()」でObjectProxyに属性変更リ…

フィルタを使うサンプル

フィルタを使うと、スプライトやビットマップにドロップシャドウやブラーなどの効果を適用することができます。 フィルタはflash.filtersパッケージ配下にいろいろあります。 スプライトなどDisplayObject派生のコンポーネントであれば、フィルタを作成してf…

XMLリテラルを使った文字列生成の性能を測ってみた。

昨日の続き。XMLリテラルを使って文字列を生成した場合の性能を測ってみました。 20文字程度の文字列を、「文字列連結」「XMLリテラル」「XMLリテラル+埋め込み」のそれぞれで50000回生成した場合の所用時間を計測。 それぞれ5回試行し、平均を取っています…

ActionScriptで長めの複数行文字列をさくっと作る

ActionScriptで長めの複数行文字列を作るのってメンドウですよね。Rubyみたいにヒアドキュメントとか使えればいいのにー。という時にXMLリテラルが使えます! // XMLリテラルをヒアドキュメント風に使う! XML.ignoreWhitespace = false;// デフォルトだとテキ…

StringUtil#substituteで簡易テンプレートを使う。

StringUtil#substituteでテンプレート文字列中の「{数字}」を任意の値で置き換えた文字列を生成できます。 // テンプレートの「{数字}」を置換した文字列を生成する stdout.text = StringUtil.substitute( "name : {0}, age : {1}", "mii", 1); // → name : …

オブジェクトの属性一覧を生成する

ObjectUtil#toStringでオブジェクトの属性一覧を示す文字列を生成できます。 // オブジェクトの属性一覧を表示 var obj:Object = { a:10, b:"bbb", c:true, d:[1,2,3,4,5], e:{foo:"foo",hoge:"hoge"}, f:function():void{} }; stdout.text = ObjectUtil.toS…

JSONBrokerのActionScript版クライアントを書いた

「RubyクラスをJSONでアクセスできるWebサービス化する」で作ったJSONBroker(任意のRubyクラスのAPIをJSON-RPCライクなプロトコルでアクセスできるWebサービスとして公開するための簡易ユーテイリティ)のActionScript版クライアントを書きました。前に作った…

配列の便利APIいろいろ

JavaScriptと一緒かと思ったら微妙に拡張されてますね! > ActionScriptの配列。ということで、便利そうなAPIを使うサンプルを書いてみました。使ってみたAPIは以下。 Array#forEach 配列の要素を順番に取り出します。forループの代わりに。 Array#map 配列の…

配列をソートするサンプル

配列をソートするAPIとして、Array#sortとArray#sortOnが提供されています。 Array#sort 配列の要素をソートします。 引数で比較関数(第一引数)とオプション(第二引数)が指定できます。 比較関数を指定することで、任意のロジックに基づくソートが可能です。…

オブジェクトごとの一意なIDを生成する

mx.utils.NameUtil#createUniqueName()でオブジェクトの一意なIDを作成できます。 IDは「無修飾のクラス名+番号」になります。 「無修飾のクラス名」なら、パッケージが違う同名クラスだと同じIDになるのでは、と思いきや、番号がすべてのオブジェクトで一意…

Dictionary

Flexで、キーと値をペアで保持する構造(rubyでいうHashてきなもの)を使いたい場合、flash.utils.Dictionaryが使えます。 JavaScriptだとObjectで何とかしますが(Flexでも同じように何とかできますが)、 Objectと違って、Dictionaryではキーにオブジェクトが…

アスタリスク

ActionScriptの型指定では、「*」は型指定なしを意味します。任意の型とも若干意味が違っていて、 任意値を代入できて、 かつ、任意の値として取り出すことができます。 // 任意の値を代入でき var a:* = "foo"; var b:Object = "foo"; // 任意の値として取…

枠内を画像で塗りつぶすサンプル

Graphics#beginBitmapFillを使って、枠内を画像で塗りつぶすサンプルです。 画像はswf内にアセットとして埋め込んだモノを使用してます。アセットの使い方はこちらを参照。 あとは、beginBitmapFill→drawRect→endFillでOK。 package { import flash.display.…

日時をフォーマットするサンプル

日時(Date)のフォーマットにはmx.formatters.DateFormatterが使えます。以下は、現在時刻をフォーマットして表示するサンプルです。 package { import flash.display.*; import flash.text.*; import mx.formatters.*; public class Sample extends Sprite {…

FireBugのコンソールに行番号付きでスタックトレースを表示する手順

FireBugのコンソールに行番号付きでswfで発生した例外のスタックトレースを表示する手順です。ポイントは以下。 デバック版Flash Playerでswfを実行。 →発生した例外からスタックトレースが取得できるようになります。 コンパイルオプションでデバッグをオン…

asとis

「as」演算子で型キャスト、「is」演算子で互換性チェックができます。 package { import flash.display.*; import flash.text.*; public class AsIsSample extends Sprite { public function AsIsSample(){ var str:String = "" var a:Object = "a"; // is…

名前空間

Flex(というかActionScript3)では、メソッドやフィールドに名前空間を設定できます。 名前空間を設定されたメソッドは、名前空間を明示(またはuse)して呼び出す必要があります。 publicやprivateといったアクセス制御指定子も特殊な名前空間として実装されて…

privateなクラスを定義する方法

Flexでprivateなクラスを定義する場合、パッケージ定義の外部で定義します。 Flexでは、1つのソースファイルに複数のクラスを含めることが可能ですが、 ファイルの外部にあるコードで使用できるのは各ファイルのクラス 1 つだけ。各ファイルのクラスのうち1…

Proxyを使ってオブジェクトのメソッド呼び出しをインターセプトするサンプル

Proxyを使うと、オブジェクトのメソッド呼び出しやプロパティへのアクセスをインターセプトする仕組みが作れます。 機能的にはJavaのProxyに近い感じです。 メソッド以外にも、属性へのアクセスや「for...in」「for...each in 」で属性を列挙された場合の動…

クリップボードの値を更新するサンプル

クリップボードの値を更新するサンプルです。System#setClipboard()でさくっと設定できます。 package { import flash.display.*; import flash.system.System; public class SetClipBoard extends Sprite { public function SetClipBoard(){ // クリップボ…

Threadを使ったGeneratorを作ってみた

扱うデータ数が多いと若干性能が気になる感じのGeneratorですが、callccじゃなくてThreadを使えばちょっとは早くなったりするんじゃね?と思って作ってみました。next?とnextだけ、Queueを使ってさくっと実装。 require 'thread' # スレッドを使ったGenerator…

Generator

Generatorを使うと、内部イテレータ(Array#eachみたいな、渡されたブロックに対して要素を1つづつコールバックするタイプのイテレータ)を外部イテレータ(Java見たいな、hasNext,nextで要素を取り出すイテレータ)に変換できます。 array = ["1", "2", "3"] # …

グラデーションする四角をいろいろ描いてみるサンプル

グラデーションする四角を描くには、Graphics#beginGradientFill()を設定したあと、Graphics#drawRect()で四角を描画します。 グラデーションの種別(線or放射)とか色など、いろいろパラメータが指定できますが、まぁ、ドキュメントを参照ということで。(→Gra…

最近読んだ本(2008/07~2008/09)

☆☆☆☆ 「残業ゼロ」の仕事力作者: 吉越浩一郎出版社/メーカー: 日本能率協会マネジメントセンター発売日: 2007/12/22メディア: 単行本購入: 11人 クリック: 271回この商品を含むブログ (205件) を見る 残業よくない!には賛同するけど、残業しないと生活がまま…

HTTPでデータを取得するサンプル

FlexというかActionScriptで、HTTPでサイトに接続しデータを取得するサンプルです。クロスドメインまわりのことがまだ良くわかってないので、とりあえず同じサイトのデータを取得してます。 package { import flash.display.Sprite; import flash.text.*; im…

次の日を求める

Dateを使うと簡単にできます。 require 'date' d = Date.new( 2008, 9, 1 ) # 200回次の日を求める。 200.times { d += 1 puts d } 実行結果です。 2008-09-02 2008-09-03 2008-09-04 2008-09-05 2008-09-06 2008-09-07 ...省略 最初、Timeを使ってやろうと…

ActionScript3ではthisが省略できるのです。

ActionScript3とかもはや記憶にあるはずもなく、「まぁ、JavaScriptと似たようなもんだろー」、ということで気合で書き進めているわけですが、ここで一つ大きな違いを発見。ActionScript3ではthisが省略できるのです。 package sample { public class Kitten…

log.asを使ってみる

今更ながらlog.asなるものを発見したので使ってみます。これを使うと、「log()」関数1発で、FlexからFireBugのコンソールにデータを出力することができます。1つのソースファイルだけでできていて、プロジェクトへの導入も簡単。 log.asのソースをコピーして…