2008年11月28日金曜日

はっちゅう君 プラス アドイン 「身も蓋もない」のサイト

サイトを作った

でも、サイトの編集者しかコメントができないようなのでコメントなどはこのブログにお願いします。

あと、浅ましくもPaypalでの寄付受付なんかをしてみた。

2008年11月27日木曜日

イベントの削除

ところで、各種サンプルで

何かのイベント+=メソッド名

何かのイベント-=メソッド名

っていうコードを見るけれど、これ、イベント削除されないよね?それぞれ右辺で暗黙に別々のデリゲートオブジェクトが生成されてそれを追加したり削除したりしているから。


以前ここに書いてあった内容はデタラメでした。このエントリをご参照ください。

アルファバージョン完成

とりあえず注文ができるようになり最低限の機能の実装は完了した。

はっちゅう君プラスのアドイン

ベータバージョンに向けてのTODO:
1.建て玉や返済注文の情報の表示
2.トレード回数や損益の情報の表示
3.引け前のワーニングや強制決済
4.暇だったらグラフィックを無駄に凝る
5.暇だったらxamlを外部から読めるようにしてデザインをカスタマイズできるようにする。
6.さらに暇だったらはっちゅう君のリフレクションを下にスタンドアローン版を作る
7.さらに暇で、しかも利益でVista搭載のPCが変えたらサイドバーガジェット版を作る。
8.さらに暇で、タッチパネル搭載型のvista sideshowデバイスが入手しやすくなったらsideshowガジェットを作る

でもしばらくは今のままでいいや。

それにしても、動きのない日だったので、デバッグで証拠金の10%が飛んだ。成り行き注文恐るべし

2008年11月24日月曜日

注文処理を実装した



まだ枚数を一枚に固定しているが、注文処理を実装してしまったぞ。
テストをまったくしていないというか、そもそもクリック証券の先物の口座はまだ開けていないのだが。
今日開けるかと思ったら振り替え休日かよ。

アドイン

チェックボックス五つをチェックしないとロック解除にならないのでお気軽にお試しください、と言いたいところですが、ロック解除していないときでも返済注文は行うようになっている+そもそもぜんぜんテストしていないのでご注意ください。何があっても免責ね。

それにしてもLINQのノリが楽しい(ステートメントを使っているわけではないけれど)。五つのチェックボックスが全てチェックされているのを確かめるのに
private bool isOrderLockReleased()
{
return mimohutaPanel
.ChkLockRelease
.Children
.OfType<checkbox>()
.All((chk) => (chk.IsChecked.HasValue && chk.IsChecked.Value));
}
これですむのだ。
また、五つのチェックボックスのうちひとつでもチェックが外されたら全部を外すコードは
foreach (CheckBox chk in mimohutaPanel.ChkLockRelease.Children.OfType()) {
chk.Unchecked += delegate {
foreach (CheckBox _chk in mimohutaPanel.ChkLockRelease.Children.OfType<checkbox>()) {
_chk.IsChecked = false;
}
};
}
簡潔、簡潔。

2008年11月22日土曜日

スキップリスト



少し前にスキップリストのデバッグ用に作ったUIの画像。なかなか面白い。
二つのアイテムを選択してその区間における色々な量の平均値やら最大値やら合計値やらを計算して表示するという所まで作ってからアドインの作成に進むつもりだったのだが結局見切り発車したのでこのアプリはスキップリストの構造が見れる所まで。


その後もう少しまともなコードになりました。ソースコードが必要な方はこちらのエントリをご参照ください。

マイクロソフトへ

ずっとマイクロソフトが嫌いだった。今でもそれはほとんど変わらない。
でも、今、生まれて初めてマイクロソフトに願う事がある。
100% pure .net OSを作ってくれ!!。ああ、それは100%ロジカルでシステマティックな世界。僕らがJAVAに見た夢。

マケスピ in はっちゅう君


とりあえずアドインとして作成した歩み値表示を見ながらのトレードというのを実地でやってみたかったので、マーケットスピードをはっちゅう君の中に表示させるアドインを作ってしまった。なかなかいい感じであった。

歩み値を取得して独自の方法で表示するだけだったらそもそもマケスピのRSSという選択肢があるわけで、この体制は本末転倒も甚だしい。はやく注文処理も自作のアドインに実装させなくては。

2008年11月20日木曜日

途中経過公開



はっちゅう君アドイン
今の所注文操作は実装していませんので、お気軽にお試しください。

インストール方法:解凍して出てくる.addinファイルをはっちゅう君のアドインマネージャ画面にドラッグアンドドロップ。インストールボタンが出てくると思うので指示に従う。

なお、.Net framework3.5が必要な気がします。

また、アドインの実体は通常dllファイルとして作成しますが、私のアドインの場合デバッグの利便性のためにexeファイルとして作成してあります。はっちゅう君プラスと同じディレクトリに置くと直接実行できて、ブラックショールズモデルに基づいたシミュレーションデータが表示されます。

2008年11月17日月曜日

わりと形になってきた



デバッグ用にブラックショールズモデルのオイラー法による離散化をシミュレートしてフェイクのデータを生成できるようにした。
(こんな事が可能なのはこの人のおかげというその伊藤先生が先日亡くなられたそうですが・・・。ご冥福をお祈りします)

さらに下1/4を経過した後には一定の時間間隔でデータをまとめるようにした。それぞれの時間間隔における始値、高値、終値、安値を頂点とする四辺形を表示しているので、ローソク足と比べて一般的な方法ではないけれど、四本値の情報はちゃんと入っている。なお、高値、安値の頂点はVWATの時刻に表示するようにしているので、ヒゲをちょうど中央に書く普通のローソク足と比べて少しだけ情報量が多い。

さらに、なんと、まとめる時間間隔をリアルタイムにグリグリできるのだ。区間に加法的に関連付けられる量を任意の区間に対して効率的に計算できるツリー状のデータ構造(スキップリストを使用)の本領発揮である。

さて、後は注文機能を付ければ完成というところまできてしまったが、注文機能の実装で危険のないようにするにはどうすれば良いのだろうか。

2008年11月15日土曜日

実も蓋もない


フルスクラッチついでにフォームのタイトルを変えた。

夕場は次の日の扱いになるとはいえ、相場データのTimeプロパティが次の日の日付で来るのには面食らった。

2008年11月13日木曜日

プロトタイプ



ようやく技術的なテストが全部終わった。
1.はっちゅう君のアドインの作り方と相場情報の受け取り方-完
2.ビジュアル-インタフェース面をWPFで作るやり方-完
3.時系列データの管理、特に合計値、平均値など時刻の区間に関連付けられる量のスキップリストによる効率的な管理-完
4.WPFのオブジェクトベースの描画モデルが昔のVBのシェイプコントロールのパフォーマンスの悪さを引き継いでいないか-OK

そして実際に時刻は平方根を取り値は対数を取って表示させたのがこの画像。
今日は比較的激しい値動きだったので一般的かどうかはわからないが、期待通り
様々なスケールでの等速運動が抽出されているように見える。

ここまでできたので、スキップリストのライブラリ以外の部分は、一度フルスクラッチで書き直そうと思う。

2008年11月5日水曜日

スキップリスト

歩み値の時系列を効率的に管理し、ある時刻の区間内の生の出来高-歩み値のデータを
合計の出来高とVWAP値からなる単一のデータで置き換えるなんて事を
簡単に行いたいので、スキップリストのクラスを作った。


以前ここに書いてあったコードはデタラメです。こちらのエントリをご参照ください。

WPF・・・



Windows Presentation Foundationを用いてリッチなGUIにする事にした。
ようやくスケルトンを十分に整理できたので具体的な作業に入れる。