2009年1月31日土曜日

windows7 メモ

入れたもの:
  • ネット関係
    • Firefoxと自分用プロファイル
    • はっちゅう君プラス
  • 画像関係
    • paint.net
    • picasa3
  • 動画関係
    • CCCP(media player classicもばっちり動作)
    • どこかかから見つけてきたcoreavcdecoder.ax(power shellを管理者権限で起動してregsvr32する事が必要。管理者でログインしていてもregsvr32へのD&Dでは権限昇格が自動で行われない操作のためエラーとなる)を入れる。H.264にはこれを使うのでffdshowの設定でH.264はdisabledに。
    • mediacoder(MPUIもばっちり動作)
    • super C(起動すらせず)
  • 開発環境
    • Visual C# 2008 express edition
    • .net reflectorとアドインのbaml viewer
    • sandcastle
    • sandcastle help file builder
  • ユーティリティ
    • Noah
    • ImgBurn
    • Virtual CloneDrive(Daemon toolsは動作せず!)

ガジェットはネットから落とした物は画面が表示されないものばかり。ネットで調べてwindows 7で動作報告があるものを中心に試したので自分の環境固有の問題かも。

geoshellを卒業したいので、CPU・メモリのメータとネットワーク転送量のメータは必須。前者に関してはこれは動作した。後者に関しては選択肢はnetwork utilization gadgetをこの記事からダウンロードするしかない(何故かWindows Live Gelleryから消えている)が、自分の環境では文字のみの表示となった。ほか、gigazineの記事で表示されているもののうち、Presto's Hard Drive Monitor、System Controlも同じ現象。これらの問題はたぶんグラフィックカードのドライバの問題だと思うのでアップデート待ち。

追記:再起動するだけでガジェットに文字しか表示されない問題は解決した。Presto's Hard Drive Monitorはgadget.cs中でbackground idをターゲットとするスタイルにWidth:130;の設定を追加する必要があった。

新しいタスクバーは永らく使っていたDesktop Spiceの代替として使って余りある。とても便利だしクール。

ずっとWindows Xpを標準とはかけ離れてカスタマイズして使ってきた(代替シェルのgeoshellとランチャーのDesktop Spiceとファイラの「あふ」が中心)けれど、これでようやく標準の範囲で自分の満足の行く環境が作れそう。あと問題はファイラだけど、エクスプローラは特別使いやすくなってはいないし、いくつか検討してみよう。

最後に引っかかった事:
  • Realtekのオンボードオーディオは、以前はアナログ出力時に同時にS/PDIF出力もされていたのだが、出力先がアナログとデジタルに分かれるようになった。後者を選択しないとアナログ音声のS/PDIF出力もAC3等のS/PDIFパススルーもできない。その選択をした上でffdshowのオーディオの設定でAC3やDTSをS/PDIFにすればパススルーされる。
  • 電源ボタンを押した時に選択ダイアログを表示するオプションが無くなった!!!これは最低の改悪。フィードバックを送信しておいた。
  • 隠しフォルダに頼りすぎた設計になっている。何でいまさらdesktop.iniをフル活用してんの?おかげで、フォルダオプションから隠しファイル・フォルダを表示する設定にして常用できない

2009年1月30日金曜日

windows7


遅ればせながらWindows7を入れてみたのではっちゅう君プラスと自作のアドインの見た目を。自分でコントロールのテンプレートを定義した部分はもともとLunaやAero似なので、わりと不自然じゃなく見た目が格好良くなる。

四本値を表す四辺形はWPFの3D機能を使っているのだが、Vista以上だとアンチエイリアスがかかるという噂をようやく確かめる事ができた。この画像ではわかりにくいが、ちゃんとアンチエイリアスされている。

今日の戦績

下には買い建て玉ホールドと書いたのだけれど、さすがにドテンショートした。しかし、何じゃこのまったく動かない相場は。ひどいよ・・・

さて、これで追証が若干発生したので、追加差し入れをしないならば、微益での決済はできない。月曜日の正午までに+7850まで下げてくれないと退場。

トレードを、お金を飲み込むパチスロもどきにする気はないので、一枚ぎりぎり建てられる所から初めて、また一枚分の証拠金を割ってしまったらすっぱりと縁を切るつもりだったので、証拠金の差し入れはしないつもり。

でも、これで月曜日に下げなかったら本当に詐欺だよなあ。平均線からの反落くらいはセオリー通りに強い動きになって欲しい。もしそうなったらもう少しだけ命が繋がる。


一昨日の8150Sホールドで正解だったんじゃん。225先物こえー。短期~中期ホールド戦略に切り替えたとたんに一週間で退場になった。ちょっと頭を冷やします。

「身も蓋もない」のユーザの皆さんはくれぐれもデイトレに徹してくださいね。


一応ドレッシング期待で買い建て玉を今日一日はホールドする。

2009年1月29日木曜日

銘柄リストアドインのフロート状態


銘柄リストアドインをフロート状態にすると、注文フォームと同じで、はっちゅう君プラスを最小化しても最前面に表示され続けます。さすがにこれ単体でトレードするのには無理があると思いますが、他のツールと併用する場合には便利でしょう。

今日の戦績

夕場途中にて:
---------------------------

---------------------------
トータル損益は-13596円です。

このうち手数料の支払いが96円含まれます。

買い注文回数は2回, 売り注文回数は0回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-12548円です。


---------------------------
OK
---------------------------
8150の売り建て玉を持越しした状態でNYが超調子が良く、日経もGU。それでも十分こらえて現物への鞘寄せを待って8285でドテンロング。なのに、その後は笑うしかない嫌がらせのような値動き。8150くらいまで下げた後上げるけれど上げきれず寄り天。ちなみに、この間外出しておりました。何じゃそりゃ。

もう散々。先週まででデイトレにおける「身も蓋もない」の力は実証できたので、今週は体調が劇悪な事もあり短期~中期トレードに切り替えたら一気に利益が消え去った。日経225のレバレッジは大きいので、短期~中期トレードでやれるのは、証拠金が本当の意味での担保になっているお金持ちな人だけなんだね。高い授業料でした。

というわけで、デイトレを集中してやれる体調になれるまではトレード自体お休みしよう。

ただ、さすがに悔しいので今日の買い建てはホールド。上手く行って月末のドレッシング上げも来るならば8500付近まで行って利益になるけれど、今晩のNYと為替次第の完璧丁半バクチだ。こんなのは投資でも何でもない。

銘柄リストアドインにデータの自動更新機能をつけました


これで、データの自動更新と銘柄のダブルクリックによる注文フォームの起動が実装されたので、株価ボードと胸を張ってよべるようになったぜ。

いつもの所のファイル置き場からどうぞ。

売り建て持越ししたらダウ超強い&日経GUで、現物鞘寄せを待ってドテンしたら何故かその後下げる展開となり、とてもこんな事書いている場合じゃなかったりする。あーあ、今日よほど上手くやらないと今月の利益全部消えたな。後は明日のドレッシング期待で買い持ち越しくらいしかないけれど、明らかにリスクが大きいよなあ。

2009年1月28日水曜日

ダウ上げてるし・・・

先週まででデイトレにおける「身も蓋もない」の力は立証できたため、今週は気がゆるんで楽して設けようとオーバーナイトをやりすぎた。明日は痛い目を見ることになりそうだ。

「身も蓋もない」のユーザの皆さんは、この辺りの教訓を考慮しつつ、デイトレでのトレンドフォローに徹してくださいね。

今日の戦績

大引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-980円です。

このうち手数料の支払いが480円含まれます。

買い注文回数は5回, 売り注文回数は5回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+3000円です。


---------------------------
OK
---------------------------
微損で売り建て場所を8030から8150に変換できた。後は7000円台復帰まで気長に待とう。とりあえず7950になれば昨日の2万円の損が取り戻せる。そこから先、7500円とか目指してくれれば御の字。金曜日のドレッシング買いの前に、つまり明日、ある程度下げてくれれば良いのだけど。

言っておくがこれ、上げている間ノーポジにしておいたとかそんな簡単な話じゃなくて、初め1万円損した後前場から後場にかけての上げでしつこくロングを取り続けてその損を取り返した上で売り建てし直したんだぞ。それなりに苦労しているんだぞ。最近の、ロングを怖がっている事に対する反省がなかったら多分もっと損していたんだぞ。

体調

最近、朝に目は覚めるのだが朝から夜までずっと倦怠感が最悪。目がしょぼしょぼして目を開けているのすら大変。それとパソコンのモニタを見ていても目がぼやけて焦点が合わない感じで大変。何に手をつけるにも苦労するのでWEBをぼけっとみていがちなのと、それでトレードに参戦しがちになってしまうのだが、最近ではできるだけモニタを見る時間を減らすように心がけている。でもって、午後には強烈に眠たくなって午後と夕食後はわりと寝ている。何故か夜を回ってくると倦怠感が少し和らぐ。目はショボショボするし目~額がつーんとして何をするにも苦労するのは変わりないのだけど、それでも何だか寝られなくなって起きている。でも、2時くらいにはまた強烈に眠くなって寝てしまう。どこまでが薬の副作用でどこまでが元からの症状なのやら。

2009年1月27日火曜日

今日の戦績

夕場引け後
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-18220円です。

このうち手数料の支払いが720円含まれます。

買い注文回数は7回, 売り注文回数は8回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-500円です。


---------------------------
OK
---------------------------
欧州が凄いことになっているのと、為替も少し円高に触れた事でもう少し大きく戻すかと思ったけど、8000付近まで。8000付近からの反発を使って上手い事やろうとしたが、1000円ひねりだせただけ。8030S持ち越し。7800の売り建て玉を馬鹿みたいに持ち越すのに比べると4500円だけ有利になった。

今晩のダウ暴落しないかな。7500くらいまで。それで明日の日経が寄り7600円から始まれば御の字。

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-19624円です。

このうち手数料の支払いが624円含まれます。

買い注文回数は6回, 売り注文回数は7回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-8548円です。


---------------------------
OK
---------------------------

後場は体調が少し良かったので細かいトレードでデイトレもどき。やった分は全勝したけど8000-8100の中で小幅にとっていったので26000円の損を20000円以下に持っていくまでしかできなかった。8035で売り建てし直したので7800Sでホールドするより正味3500円得をした形になっているが、それはあくまで売り建てホールドが正解としての話。先物高いなあ。

売り建てホールドで負ける相場環境とも思えないけど、各種メディアが、今日の上げに対して、問題はまだまだ山積みで上値余地は限られているとか総悲観で、大体あいつらがそういう風に言い出すと景気良く上げるわけで。MA接近までは強気ショートも強気ロングもできないという観察を冷静にしつつ、だったら参加するなよと思いつつ、それでもついポチッとなしてしまうのであった。

それと、昨日大引けまでで今月の益率が22%を超えたのだが、やはり昨日は株でも為替でも大きく利益を出した向きがいるようで、トレードアイランドの順位はむしろ下がってしまった。それでこの損が取り戻せないとさらに下がるぞ。ショボーン。

後場寄りGUキター。まいったなあ。とりあえず8000ぴったりでドテンしたら、何か大幅に遅延して8010になりやがった。これ下手をうつと今月の益が全部消えるぞ。既に損が2万円を超えた。

2万円損しようと、デイトレを超集中してまじめにやれば一週間あれば十分取り返せるんだが、ちょっと今の体調ではデイトレを本気でやるのは厳しい。MA接近までロングをホールド戦略で行くか?でも、今日の上げって完璧為替連動だし、決算発表も色々あるし、不安材料山積み。今日中に利確の上でショートにドテンできる場面があれば何も思い悩む必要はなくなるのだが・・・

それにしても、こういうやり方だと「身も蓋もない」を全然活かせなくてつまらないなあ。先週までのトレードで「身も蓋もない」の力は実証できたと思うので、デイトレーダーの皆さん、ド下手な私の事は気にせず、どうかご活用下さい。

前場中:思いの他高く寄った上に最初の30分で下げて始まったので、ちょうど分かり易い7800でショート。25, 75MAがいずれもはるか上方なのが気になるが、まあ短期~中期のホールドすれば必ず利益になるだろうと、これはしばらく放置の積もりでいた。しかし前場で7900にトライされてさすがに7895でドテンロング。突破できそうにないのを見計らって7875でショートにドテン。ただホールドした場合に比べて2000円損するのと引き換えにリスクを減らした・・・のか?何かまた7900にトライしているし、ただの往復ビンタだったりして(笑)

ただ最近の体調だとあんまり激しくデイトレはできないしなあ。資金に余裕が出来てきたので1000円単位のGU, GDはないと踏んで短期~中期ホールドでスイングっぽくやっていって益が出せるならそっちのが楽で良い。だからしばらく実験的に試してみるつもり。今月はちょっとラッキーにも勝ちすぎたのでそういった実験でいくらか利益を減らしても良いだろう。

追記:結局7900を突破して素直に上げ続けているなあ。7895でロングした後7935で指しておいたのだが、今ちょうどそこまで上げた所。やっぱり昨日不安感を感じた、ショート寄りのバイアスが悪さをしている。結局今日の前場は最初の30分以外はただ上げるだけの相場なのにずっと逆行してしまったし、一度だけ取ったロングポジションは損きりして利益になっていない。何だか、どこかで大怪我しそうで嫌な感じだなあ。明日GUってそんなにあり得るとは思えないけれど、頭を冷やす意味も込めて、今日含み損が大きくなっても引けで切ろうかなあ。

前場寄り前:
テクニカル的には三日連続GUでMAに接近した後再び下落するってシナリオになりそうな状況だけど、今の相場環境でロングポジションを短期でも取るなんてできねーよ。

場中に超短期でロングポジションを取りつつ、引け際の急落なんかを逃さずショートしていかないと利益にならない難しい局面だ。見逃すのも一つの手かなあ。

2009年1月26日月曜日

銘柄リストアドインを更新


一つ前のエントリの成果を受けて、銘柄リストアドインのリスト部分の見た目は完全にはっちゅう君プラスの配色に準拠しました。はっちゅう君プラスのツール-オプションメニューから配色を選択すると、それに応じてちゃんと変わります。

いつもの所のファイル置き場からどうぞ。

列の区切りに罫線が惹かれてないのが心残りだけど、これ、GridViewのスタイルかテンプレートに手を出さないといけないのかなあ。まあ深入りはしないでおこう。

ListViewを縞々にして罫線を描いて選択行の背景色を任意に設定する

ListViewを縞々にするのは色々やり方があるけれど、汎用性という意味では、ItemContainerStyleSelectorを使う方法が一番良い。罫線を引く時に、BorderThicknessを最初は1, 1, 1, 1にして残りは全て1, 0, 1, 1にするなんて事はAlternationCountなんかを使っては実現できない。

しかし、ListViewの.ItemContainerStyleSelectorを設定すると、ItemContainerStyleの設定が無視される(カスケーディングされない)し、ListViewItemをターゲットにしたデフォルトスタイルを設定していも何故かそれも無視されてシステムのデフォルトのスタイルになってしまう。このため、このエントリのタイトルに書いた事を全部実現するのは結構大変。

結局ListViewのリソースにクラシックスタイルからキー名GridViewItemContainerStyleKeyのテンプレートを丸ごとコピーしてトリガーを削除したテンプレートを書いておいて、ItemContainerStyleSelectorではそれをTemplateプロパティに割り当てた上でIsSelectedプロパティに対するトリガーも設定し、さらに縞々や罫線の設定をするという方針で解決した。

xamlは例えばこんな感じ:

<ListView Grid.Row="3" Name="StockList" ItemsSource="{Binding}" VerticalAlignment="Stretch" SelectionMode="Single" Background="#FFEDFEED">
<ListView.Resources>
<ControlTemplate TargetType="{x:Type ListViewItem}"
x:Key="ListViewItemWithoutAnyTrigger">
<Border Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
<GridViewRowPresenter
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
</ControlTemplate>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="コード" Width="Auto"
DisplayMemberBinding="{Binding Path=Code}" />
・・・ほにゃらら・・・
</GridView>
</ListView.View>
</ListView>

で、StyleSelectorはこんな感じ:

public class StockListItemStyleSelector : StyleSelector
{
public Color Back1 = Colors.White, Fore1 = Colors.Black,
Back2 = Colors.White, Fore2 = Colors.Black,
BackSelection = Colors.Red, ForeSelection = Colors.Green,
Rule = Colors.Beige;
public override Style SelectStyle(object item, DependencyObject container)
{
ListView listView = ItemsControl.ItemsControlFromItemContainer(container) as ListView;
int index = listView.ItemContainerGenerator.IndexFromContainer(container);

Style stockListItemStyle = new Style(typeof(ListViewItem));

//トリガーを除いたテンプレートに設定
stockListItemStyle.Setters.Add(new Setter(ListViewItem.TemplateProperty,
listView.Resources["ListViewItemWithoutAnyTrigger"]));

//背景色、前景色を縞々にする
stockListItemStyle.Setters
.Add(new Setter(ListViewItem.BackgroundProperty,
new SolidColorBrush(index % 2 == 0 ? Back1 : Back2)));
stockListItemStyle.Setters
.Add(new Setter(ListViewItem.ForegroundProperty,
new SolidColorBrush(index % 2 == 0 ? Fore1 : Fore2)));

//罫線を設定する
stockListItemStyle.Setters
.Add(new Setter(ListViewItem.BorderBrushProperty,
new SolidColorBrush(Rule)));
stockListItemStyle.Setters
.Add(new Setter(ListViewItem.BorderThicknessProperty,
new Thickness(index==0?1:0, 1, 1, 1)));

//選択行の色を設定する
Trigger selectionTrigger = new Trigger() {
Property = ListViewItem.IsSelectedProperty,
Value = true
};
selectionTrigger.Setters.Add(new Setter(ListViewItem.BackgroundProperty,
new SolidColorBrush(BackSelection)));
selectionTrigger.Setters.Add(new Setter(ListViewItem.ForegroundProperty,
new SolidColorBrush(ForeSelection)));
stockListItemStyle.Triggers.Add(selectionTrigger);

return stockListItemStyle;
}
}

これでstockListPanel.StockList.ItemContainerStyleSelector = new StockListItemStyleSelector() {Back1=ほにゃらら・・・};とやれば良い。

良かった良かった。

今日の戦績

その1時間で100円以上下げてやんの。ていうか、ロスタイムで7600割って終了って・・・(笑)

後場参加終了後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+1616円です。

このうち手数料の支払いが384円含まれます。

買い注文回数は4回, 売り注文回数は4回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
ロングの練習はそんなわけで損益とんとんで終了。相場は7800にトライするも元気がなく、14時くらいに7775S。再び7800にトライされてちょっとびびったけど、先週引け値まであっさり下げてきて7750C。超絶微益で後1時間くらい場は開いているけれど今日はこんなもんで良いだろう。

前場引け後:
---------------------------

---------------------------
トータル損益は-4240円です。

このうち手数料の支払いが240円含まれます。

買い注文回数は3回, 売り注文回数は2回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+500円です。


---------------------------
OK
---------------------------
今日は参加しない予定だったけど、寄りがそんなに低くなく、テクニカルな反発もしそうだったので、少しロングの練習と位置づけて参加してみた。最近、ロングの不安感とショートの安心感から合理的な行動を取れていない部分があって、環境が最悪なので偶々それが良い方に作用している感があったので。

実際に相場は微上げといった所だがそれよりもボラが大きく、揉み合いまくりで、嫌な感じに損が膨らみ続けていってしまった。先週末引けと同値の7745でショート、昼持ち越し。後場は7800付近まで戻す事ができるのか、戻ったとしてその後反転するのか、それともさらに上げるのか、という辺りが焦点になるが、そんな事分かるわけないのでとりあえず7775で指しておいた。先読みは超能力者に任せるべし。後場で高寄りしてここまでの損が帳消しになると良いな♪

ListViewの選択行の背景色

ListViewである所のstockListPanel.StockListに対して

Trigger selectionTrigger = new Trigger(){
Property = ListViewItem.IsSelectedProperty,
Value = true
};
selectionTrigger.Setters.Add(new Setter(ListViewItem.BackgroundProperty, Brushes.Chocolate));
selectionTrigger.Setters.Add(new Setter(ListViewItem.ForegroundProperty, Brushes.DarkOrange));
Style selectionStyle=new Style(typeof(ListViewItem));
selectionStyle.Triggers.Add(selectionTrigger);
stockListPanel.StockList.ItemContainerStyle = selectionStyle;

このコードで選択行の文字色は変わるけれど背景色は変わらないという事は、コントロールテンプレートと衝突しているんだろうなあ。

2009年1月25日日曜日

銘柄リストアドインは配色設定を反映するようにした


あくまで「身も蓋もない」開発がメインなので、銘柄リストアドインは見た目に凝るつもりはない。それで、はっちゅう君プラスの標準の配色設定を反映するようにした。自分が使っているモニタの特性のせいかもしれないが、はっちゅう君プラスの三つの配色設定はどれも全くもって画面が見難いと思うのだが、まあ標準に準拠する上にソースまで公開しているのだ、問題はなかろう。

ちなみに画面は上から順に標準の配色、暗い配色、明るい配色。

いつもの所のファイル置き場からどうぞ。

ところで、WPFでListViewの選択行の色を変える方法が分からなかった。IsSelectedプロパティをトリガするスタイルを作ってみたのだがうまくいかなかった。まあいいや。

株式銘柄リストのアドインは注文フォーム呼び出し機能が付きました


結局勢いで銘柄ダブルクリックによる注文フォーム呼び出し機能まで実装してしまった。いつもの所のファイル置き場からどうぞ。

株式銘柄リストのアドイン

2chのクリック証券スレッドで微妙に話題になっていた銘柄リスト機能をアドインで作ってみた。いつもの所のファイル置き場からどうぞ。

あそこの連中には嫌われているし、そもそも自分が使わない物は作らないスタンスなのだが、はっちゅう君プラスのアドイン向け機能公開が株式関係では妙に閉鎖的なのが以前から気になっていて、リフレクションを使えばもう少しアドイン開発の幅が広がるよなあと前から思っていたので、一念発起して技術的な問題が全て解決する所まではやってみた。ここより先は機械的作業になるので、まあ暇とやる気があったらという感じか。いや、暇はあるんだけどさ。その暇が自由にならないふざけた状況なのさ。

追記:
んで、注文フォームを呼び出すならどうせWPFのListViewコントロールのアイテムのダブルクリックイベントを処理しなければいけないので、それならこの削除のインタフェース(証券コードを改めて入力させる)も改めてしまおうと思って変更した。


実はこのListViewのアイテムのダブルクリックの処理というのは大変面倒で、というのも、MouseDoubleClickイベントを捕まえてSelectedItemプロパティを参照しても、空白部分がダブルクリックされて選択項目が変化しなかった場合に正しく動作しないから。で、一応ロジカルに正しい方法もあるようなのだが、大変大変面倒で、こんなのWPFの実装の問題だから将来のバージョンで改善されるのを待つべきで、ダーティーな解決法で良いや、とここに書いてあった方法を使ってみた。

改めてヒットテストを実施するとかインタフェースのコーディングとしてはものすごい低級だし、ウィンドウが静止していると仮定しているというほんの小さな問題点もあるのだが、コードとしては探した中では最もシンプル。

低級でシンプルなら高級にする必要はないわけで。でも高級にすれば必ずシンプルになるから皆高級指向になるわけで。WPFの開発チームの方、がんばってください。

2009年1月24日土曜日

トレードアイランド

トレードアイランド、昨日の後場までの結果が含み益込みで反映されているから、既に益率で70位台に入っている。昨日夕場でもう1%くらい増えるんだが、それで60位台に行けるかな?

昨日の夕場はあまり上手くできなかったけれど、その後為替も戻し、欧州も戻し、ダウも引けでのプラ転には至らなかったけど反発し、と昨日の夕場の爆下げ自体幻みたいなものだったという事で。オーバーウィークエンドしなくて良かった。

2009年1月23日金曜日

体調

頻尿、便がもりもりと出まくる、等の新陳代謝が高まっているような症状と共に軽い吐き気がある。小学校の頃からこれらの症状を発端として風邪を引くという事を繰り返すようになってそれが全ての始まりだったと認識しているが、数年くらい前から風邪のような症状はなくなった。今年になって再発したが弱弱しい。この、新陳代謝が高まる症状は本当に久しぶりの経験だ。これがあると、夜寝ていても何度も起きてトイレに行くはめになるんだよなあ。

今月を振り返ってみよう

集中力の限界に来ているのと、来週は波乱含みになりそうなので、状況にもよるが、多分参戦しないつもり。そこで、今月の損益をまとめてみる。

なお、全てLv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)。
第二週
-3096円
-4508円
+4876円
+4992円
+5396円
第三週
+1828円
+4712円
+3040円
-48円
第四週
-14692円
+26664円
-21316円
+2616円
+21280円
-----------
計 31, 744円(+21.5%)

やはり課題は大きな損を出さない事、特に、トレンドに逆行してしまっていると判断する事、あるいはトレンドに逆行しかねないリスクを抱えていると判断する事。ロスカットを機械的な基準に基づいて行うのははあくまでセーフティネットだから、これらの感覚を身に着けないことにはどうしようもない。

ただ、これらの大きな損の中には、短期的に売り建て玉をホールドしている時に一時的なリバウンドの日があった場合に、一度ノーポジにしたりロングポジションを取った後、より上の値で改めて売り建てを行う、という事をしたケースも含まれている。これらの損自体には問題はないが、何度か短期的なホールドをして大きなGDを狙ったのは今月の取引を「身も蓋もない」の宣伝と割り切って、負けた場合のリスクが大きくても分が良い賭けなら積極的に乗っていったから。資金が少ない以上そんな事を何度も続けたら必ずどこかで退場になる。以降はデイトレの超短期トレンドフォローの基本に立ち返ろう。

今日の戦績

水曜日の大きな負けを昨日と今日でようやく取り返せた。後述するように今日の夕場で上手くやればもっと利益にもなったのだが、損益とんとんにまとめた程度。水曜日+木曜日+今日で+2580円の利益。しょぼー。

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+21280円です。

このうち手数料の支払いが720円含まれます。

買い注文回数は8回, 売り注文回数は7回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
夕場すごかったー。
開始早々に7720-7725でヨコヨコになったので、早々に7725で利確。その後7700まで下げたので、まあ節目だし動きも弱いしと思ってロング。まさかこのロングが失敗するとは思わなかった。為替・欧州・ダウ先物の全てがメタメタになってそれに反応してミニも一気に7675まで下げる。

さすがにドテンショート。ところがこの後意外と下げない。2chでも「何と言うS安心感」とかそんな書き込みばかりで、為替から何から何一つ好転しないのに何度か7700(二回目以降は為替等に動きはあるにはあったが)まで戻す。誰だよ買ってる奴。ていうか現物市場が開いていない故のテクニカルなリバウンドなんだろうけれど、それにしたってここは下げるべき場面だろうよ。

しかし手仕舞う理由が何もないのでとりあえず7635で指して放置。19時を廻ってようやく通った。でも7700からのロングの失敗のせいで微益にしかならず。むかつくので7620でロング。失敗。7595でドテン。超素直な下げトレンドで何を右往左往してんだか。

さすがにここからは中々下がらず。7555で指し成り。引けで7570で約定。安値なので重畳。

個別の判断にミスはないと思うけれど、結果論から言えば↓のプラン通りにするのが正解だったという事でした。7700以下の下げに限って言えば素直に100円だだ下がりの展開で損益とんとんじゃん。。成り行き注文だから、トレンドに逆行しちゃった場合、初めから2ティック分不利なので勝率が5分じゃ駄目なのです。ちゃんちゃん。

あと、月曜日は波乱相場になると思うので手を出さない事にした。

後場引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+5712円です。

このうち手数料の支払いが288円含まれます。

買い注文回数は3回, 売り注文回数は3回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+13500円です。


---------------------------
OK
---------------------------

後場は7840の買い建て玉を7850Cとチキンな処理をしたが、その後7870で改めて売り建てできたので、昨日の7880での売り建て玉をそのままホールドしているよりも正味で4700円くらい得をできた。後は下げるだけの展開になるだろうと、思い切って外出して(免許に住所変更の裏書とか証券会社への住所変更の届出に使う住民票の取得とか)引け後に帰ってきた。7715で指しておいたのだが、引けは7735。却って約定せずに良かったかもしれない。夕場で一段低い所を狙えるから。というわけで、特別な波乱がなければ、夕場で7670くらいで返済してめでたしめでたしとなるはず。請うご期待。

前場引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+4808円です。

このうち手数料の支払いが192円含まれます。

買い注文回数は3回, 売り注文回数は1回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-1500円です。


---------------------------
OK
---------------------------

オーバーウィークエンドを避けたくてザラ場中に大きな利益を出したいという欲が出て、自分のトレードスタイルに反して下値を何となく見積もって下げトレンド中にロングなんてしてしまった。それをするのは7700までの大幅な下げがあった場合でかつ時間帯にして10時~できれば10時半まで引っ張る事、という風に考えていたのだが、その自分の考えを尊重しない精神力の弱さはやはり問題だなあ。

#「身も蓋もない」は注文が気軽に出来てしまうので、こういう所が大きな弱みとなってしまう。指値が通らなかったけど騙し上げだったから助かった、なんてことはない。成り行き注文だから100%執行される。

結局ただホールドして待っていれば7800を割ったというのに、小さな利益と引き換えに総悲観に逆行しての7840という中途半端な値での買い建て玉をオーバーランチという展開になってしまった。まあVWAP付近まで待つのは間違った行動ではないので7860くらいまでの戻しは粘ってみよう。その後改めて7900付近で売り建てして、夕場で大きな利益を出して手仕舞いというのが理想的なシナリオだが、まあ相場というのはそう上手く行くものじゃない。年金買いでも入らない限りは7860までの戻りも怪しいだろう。ただ、最近は暴落相場がほとんどないので、7800で-3%だし、それ以上下げるのを恐れる必要もないだろう・・・下げそうだなあ。

メモ

為替もダウも微妙だなあ。ただ、円高リスクとダウの下値リスクは印象付いたと思うから、来週までの持ち越しなしで今日の夕場で決着が付けられるかもしれない。

そうじゃなかったら・・・、うーん、オーバーウィークエンドは嫌だなあ。来週は暴落相場になりそうなのは確かなんだけど、それでも嫌だよなあ。

今日の方針:10:30~40くらいに7700円付近ならドテンロング7800付近ないしできれば7800円台後半まで引っ張って再びショートにドテン。

体調:最近、午前中の数時間しか意識を保てていない。その時間帯も軽い吐き気・熱っぽさ(い実際に微熱がある事は稀。むしろ低体温)や筋肉痛は常時ある。集中力の欠如はとても強い。もうやだ、こんなの。

2009年1月22日木曜日

今日の戦績

体調最悪で後場は寝ていた。トレードどころじゃない。
ならば短期ホールドも以ての外ではあるわけだが、8000が上値抵抗線として機能する限りはまあそれもぎりぎり許せるかという話だったわけだが・・・判断し難いぞ。上抜けたのか、頑強な抵抗にあったのか。

相場自体は一見素直な上げトレンドに見えて一部の時間帯以外はボラティリティ頼みのランダムウォーク相場だったみたいなので、含み損が出た事はまあ気にしない。でも、今日の夕場で手仕舞える場面があれば手仕舞った方が良いかも知れないなあ。多分、かなり確かな予想として今晩NYは下げるし為替も改めて急伸する。それでも、そうならなかった場合のリスクという物がある。

諸々不安要素はあるけれど、とりあえず、7880Sホールド継続です。

前場引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+2616円です。

このうち手数料の支払いが384円含まれます。

買い注文回数は4回, 売り注文回数は4回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-500円です。


---------------------------
OK
---------------------------
まさかの日経下げ展開。7890の持ち越し売り建て玉は7820で利確。その後リバウンドを待っていたのだが待ちきれない悪い癖がまた出て7815でショート。7835でドテン。このドテンは時刻的にも絶妙だったのだが、やはりボラティリティが高く上げていく最中の下げで振り落とされた形の7840での利確。これは悔しかったが一度は利が消えてしかもリバウンドが寄りからの下げトレンドに吸収されていく流れが一瞬できたので仕方がない。その後7845でショートしたがさらに上げ続けていたので7870で一度手仕舞って7880で売り建てをやり直して終了。

というわけで、7890をホールドし続けるよりも少しだけ有利になった。ドテンのタイミングが絶妙だっただけに、利確をうまくやれば前場の時点である程度の利益が確保できたのが悔やまれる。

いずれにせよ、為替に助けられた面はあるけれど、8000円が上値は確定だろうから、もう数日ホールドして昨日の損を埋め合わせるようがんばってみよう。

夜に起きた

夜に目が覚めてしまった。

為替(笑)。

でも、NYは偉いな。大きな下げの後、テクニカルの範疇でもしっかりリバしている。

まあ感心している場合じゃなくて、8000より下で売り建てしている以上は為替とNYのどちらに反応するのかがけっこう大事。短期ホールドの予定なので、リバする場合でも8000を上値として固める展開になるのなら別に構わないのだが、あんまりボラが大きいとあっさり8000を付きぬけかねないからなあ。

追記:NYつえー。為替も戻ったー。やべ、どうしよう。

2009年1月21日水曜日

最近得た教訓

  • 場の開始後30分~1時間をトレンド見極めに使っても乗り遅れる事はない。大幅GD/GUの後も現物への鞘寄せを長い時間かけて行う行儀の良い振る舞いをする事が大半である。
  • 揉み合い相場への参戦は控えるべし。上値・下値なんて素人に分かるもんじゃない。
  • トレンドが明確であっても高ボラティリティ相場への参戦は控えるべし。波乱相場では休むのもあり。値幅の大きさに誘惑されてはならない。
  • 前場と後場の間でさえ意外と大きなGU/GDがある。できるだけ場の引けで手仕舞うべき。ただし夕場は後場ロスタイムを素直に引き継ぐ傾向があるので緊急時にのみ持ち越して敗戦処理に利用しても良い。

今日の戦績

夕場引け後:もう、8000が上値である限りは今日の7890の売り建て玉を鬼ホールドしちゃる。どうせ体調最悪だし。超短期トレンドフォローじゃなくて短期トレンドフォローじゃ。ダウ7500まで下げろ~~~~。

後場引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-21316円です。

このうち手数料の支払いが816円含まれます。

買い注文回数は8回, 売り注文回数は9回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+1000円です。


---------------------------
OK
---------------------------
こうもボラが高いとデイトレでトレンドフォローなんてするよりも短期ホールド戦略の方が良いだろうと思って7890の売り建て玉をそのままに午後は爆睡していた。体調も超悪化してたし。ちゃんと引けにかけて下げてくれた。7800くらいまで下げて欲しかったけど贅沢は言うまい。

さて、今晩のNYは11月の7500ドルまでの暴落をイメージせざるを得ない、逆に言えば実際に今晩のNYが下げるかどうかに関わらず夕場では一段と下げる場面が必ずあると思う。それでも損を取り返すには7650くらいまで下げてくれないといけない。実際に今晩のNYが下げるのを見込んで7550くらいで指しておくかそれとも夕場で7700付近で手仕舞える場面があれば手仕舞って損を小さくまとめて満足するか。夕場で大きく下げなかった場合に損をあきらめて手仕舞う選択肢も含めて難しい所だ。

ただ、ザラ場で思いの外高くなったお陰で、却って8000円が当面の上値として意識される事になったので、7890でのショート自体には安心感が出たな。ザラ場を見てたらガクブルだっただろうけれど。

というわけで幻に終わってしまいそうなのでトレードアイランドでの高順位をキャプチャしておいた。収益率19.8%で74位。

ちなみにトレード回数は常に自動売買の人たちとタメを張っている(笑)ので、tomorrowplusplusを見つけたかったら先物の回数で並び替えるのが吉。

昨日の今日でなんてこった。
暴落相場をイメージしすぎたのと、10:30くらいまでの上げトレンドも超高ボラティリティでロングポジション取れば利益が出るという状況じゃなかったのとでものすごい損をしてしまった。やはり波乱相場は機会損失という言葉が目の前をちらついても無視して参戦を見送るべきなんだなあ。以前サーキットブレーカー発動時にばっちり売り建てして大きな利益が出せたのだけど、そのイメージを引きずっているせいで何度も危ない目に会ってしまっている。

一応、窓埋めという線が無くなったようなので、7890の売り建て玉を夕場まで鬼ホールドする予定だけどこの損を取り返すには7700までの下げでも足りないぞ。しかし短期的な調整は十分考えられるから、7500まで数日で下げるのを見込んでの中期ホールドというわけにもいかないし、夕場までで取り返せなければある程度の損は覚悟しなければ。

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-21316円です。

このうち手数料の支払いが816円含まれます。

買い注文回数は8回, 売り注文回数は9回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-1500円です。


---------------------------
OK
---------------------------

注文回数が笑える。何度ドテンしてんだお前は。「身も蓋もない」は自動売買じゃなくて裁量トレードの支援だから、使えば利益になるというわけじゃなくて、下手だと素直に大きな損になる。だからこそ、是非上手い人に使ってもらいたいんだよなあ。

体調

昨日あまりに筋肉痛と眠気が酷かったため午後7時には寝てしまった。それで今日は6時くらいには起きてしまった。起きた時にはすごくすっきりして、むしろ治った?と思ったくらいだったのだが、それから直ぐに目と額のツーンとした感じが復活。それと、珍しい経験なのだが、軽い吐き気が。何だろうこれ。ちょっと熱っぽいので風邪っぽい症状の範疇かもしれない。熱は平熱だけど。

というわけで睡眠を長時間取っても結局、集中するのがすごく大変&目を開けているのすら大変な状況は変わっていないけれど、筋肉痛は少し収まった。

それにしても、ダウ(笑)。何だか今日一日で日経が7000円割りかねない勢いなんだが、12000円台の-1000円と違って今の-1000円は-12%だぞ。外交問題になったりして。

2009年1月20日火曜日

損益計算アドインのバグを修正

損益計算機が、発注枚数を常に1枚だとして手数料を計算していました。恥ずかしい・・・

修正しましたので必要な方は「身も蓋もない」詳細サイトのファイル置き場からダウンロードしてください。

まあ、私の取引可能枚数は未だに一枚なのでこれでバグが取れた保証はないわけですが。テスト駆動開発?何それ?食べれるの?ソース付きなので間違いを見つけた人は連絡してください。

今日の戦績

よし、体調最悪だし今日の後場も夕場も休みとしよう。それにしても、明日トレードアイランドに利益が反映されるのが楽しみだなあ。+19%くらいなので収益率では70位台に入っているはず。えへん。

前場中だけど、前場はもうこれで終わりに。いやー、本当に、ただ下げるだけの相場だと「身も蓋もない」は本当に強い。
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+26664円です。

このうち手数料の支払いが336円含まれます。

買い注文回数は4回, 売り注文回数は3回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
昨日の損とのトータルでおよそ+12000円。そのうち4000円くらいは昨日一度損きりの後ロングポジションで利益を取った後さらに上げた所で改めて売り建てした一連の取引のお陰なのだから、連勝記録を途切れさせた甲斐もあったというもの。金曜日に8080で売り建てしたまま医者に出かけ、そのまま週末に持ち越ししたのは大馬鹿だったが、その馬鹿に上手く対処できたのは良い経験になった。

さて後場/夕場は、昨晩のNYが休みでオバマ就任の様子見ムードもあり、これ以上の暴落という事は考えにくいので大幅にリバウンドする展開にならない限りは参戦し難いなあ。今日はこれで終わりでも良いかも。

2009年1月19日月曜日

体調

睡眠の質は悪くないと思うのだが起きても強烈に眠くて目を開けているのも大変で集中力が保てない。目蓋や額がツーンとしてとても辛い。筋肉痛などの説明し易い症状よりも、これらの何とも言いいづらい感覚が一番辛い。

で、足の疲労が凄くて立っているのが辛いが一度しゃがむと立ち上がるのもとても大変。

咳も一日中激しいし、食後には必ず痰が出る。

あまりに集中するのが大変なので、食事は簡単に食べられるように雑炊にしてもらっている。一人暮らしをしている時に食生活を鍋物中心にしてから過敏性腸症候群が改善したので実家でもそうしてもらっていて、今までは〆に雑炊やうどんにしたり、それが面倒ならご飯を茶碗で別に食べていた。しかしとにかく食事のパーツが分かれているのがそれだけで負担になるので、今では雑炊という形で一まとめにしてもらっている。それでも、食事中に何度か部屋に戻って横になりたくなる事が度々ある。

今日の戦績

夕場引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-14692円です。

このうち手数料の支払いが192円含まれます。

買い注文回数は2回, 売り注文回数は2回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+1000円です。


---------------------------
OK
---------------------------
よし、8275で売り建て成功。高値が8280だからドンピシャという所。

これで、オバマ上げさえなければ8000円は直ちに割るだろうから今日の大きな損とのトータルでも利益になる。しかも今日8245でドテンロングから8265Cで1000円利益を出した上に8245の30上の8275で売り建てたわけだから先週から阿呆な持ち越し方をした8080の売り建て玉をそのままホールドしていたよりも正味で4000円分得をしている事になる。

問題はオバマ上げがあった場合(年末年始の上げが日経・NYとも完全に消されてしまった事でもうその目はだいぶなくなったとは思うが、でもテクニカル的に言ってNYは後一本は陽線が出ないと下げに転じないようにも見える)で、今月しばらく何もせずに下げ始めるまで待つ事になるけれど、ちょうど体調も激悪なので、たまには中期トレードと洒落込もう。「身も蓋もない」の有効活用にはならないけれど。もし7500くらいまで下げればいつものデイトレ2週間分くらいの利益になるし。

後場引け後:
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-14644円です。

このうち手数料の支払いが144円含まれます。

買い注文回数は2回, 売り注文回数は1回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------

14:30まで寝ちゃったよ。体調悪いときに相場張るのはやっぱりリスクだなあ。8200を割り込むところまで下げた後緩やかな上げだったみたいなので、↓に書いたプランは効果的に実行可能だったわけだけど、見始めた時には8240-8245でずっとヨコヨコ。↓のプランだとここは揉み合いの下値と見なしていたけれどここからの上げ下げなんて分かりようがない。短期的なトレンドが存在しないから。ただ、ここが前日終値付近だったので涙を飲んで連勝記録を途切れさせて8245でのドテンロング。バクチ的要素が強かったがこれがうまくはまってロスタイムに強い上げに。8265で手仕舞い。その後8275なら改めてショートしても良いなと思いつつ強気で8285で売り建て注文を「見も蓋もない」を使わずに標準の注文機能から執行。そしたら引け前に8255まで下げて、ああ、どの道通らなかったのね、と思ったら、引けは8275。8275なら通ったのか。まあでもこれだと夕場に高い所でショートするチャンスはありそうだし、これはこれで良しとしよう。

それにしてもミニってロスタイムや大引けに滅茶苦茶な動きをするよなあ。普通1ティックだけ異なる気配値が3ティック分異なっての終了という事になった。

さてさて、連勝記録を途切れさせたのは良い。見栄で相場をやっているのではないのだから。しかしこの後できるだけ高い所でショートする事で、
  • 今月中にもう一度8000円近くを試す展開にならなかった場合のリスクを減らす
  • 8080まで戻った時8080円の売り建て玉を馬鹿みたいにホールドしていた場合よりもトータルの利益を高くする
を実現しないとただの阿呆になってしまう。つまり、何度も戒めてきた我慢弱さを克服すべき時だ。夕場が高寄りする時のために8285での売り建て注文は残してあるけれど、夕場寄り次第では、一度注文をキャンセルしてトレンドを見定め、上げるようならば8300以上でショートするというシナリオもあり得る。そのためにも我慢我慢だ。

以下前場引け後に書いた事:

体調が滅茶苦茶悪いのに地球を持ち上げるくらいの根性で無理やり市場に参加したというのに、なんじゃこりゃ。8080Sという馬鹿な大リスクを抱えた状態で高寄りから微下げ+小幅揉み合いとかされるとな~んにもする事がない。マイテンする程の勢いもなさそうだから、8240なり8245なりで手仕舞いの後ドテンもありかと思っているけれど中々降りてこない。だれだ、金曜日の上げはただのショートカバーだなんて言った奴は。

今日の理想は8240L-8285C&S-後場引けor夕場でナイアガラって8030C。まあそう上手く事が運ぶとは思えないが。くそう、連勝記録を途切れさせた(一応金曜日は手数料分の-48円だけなので途切れてはいないがまあ普通にやればどこかで一度マイナスの日をはさむ事になるだろう)ツケとトレードアイランドの順位を幻にしたツケはどこかで払わせてやる。

2009年1月18日日曜日

体調

超絶体調が悪いのだが、明日のトレード、持ち越し玉があって含み損がある以上休むわけにいかんぞ。願わくば8100付近で寄り付かんことを。

まあ、オバマ就任以降の上げは、それを期待しての上げが完全に消されてしまった以上、キャンセルされたようなので、今月中にも日経225は7000円台に再び向かうのは確実だろうけれど。問題は、8500くらいまで戻された場合だ。

損きりの後トレンドフォローを忠実に遂行すれば、リスクを回避できる+ただ戻ってくるまでホールドしている場合よりもトータルでの利益は上、と良い事づくめなわけで、含み損があまり大きくならないうちにこれをきちんと実行しなければ。ただし、「トレンドフォローを忠実に遂行する」に失敗するとさらに損が膨らむ。往復ビンタという奴だ。これが怖いからこそ塩漬け策を取ってしまいたくなるわけだが、それはつまり確実に利益を出せるトレード手法を持っていないという事を意味するわけだから、どの道先は見えている。最近では、我慢弱さがどうしても出る事を除けば超短期トレンドフォロー型のデイトレードも段々上達してきた。大丈夫、やればできる、そう言い聞かせて塩漬け策の誘惑を退けよう。

問題は、最近日中の体調が著しく悪い事。利益が出るまで気合と根性で集中してトレードしたら、後は、オバマ就任式後まで休むべきかもしれない。

2009年1月16日金曜日

今日の戦績

夕場引け後
医者に行ったら極度に消耗してしまって、夕場は爆睡。どうやら、さらに一段上げて含み損が膨らんだみたいorz。

後場引け後
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-48円です。

このうち手数料の支払いが48円含まれます。

買い注文回数は0回, 売り注文回数は1回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-17000円です。


---------------------------
OK
---------------------------
最近の利益が全部消える含み損orz。月曜日のトレードアイランドに表示される利益は+10%超えどころかマイナスになっちゃったよ。

↓の書き込みとか最近のエントリとか見ると、状況認識は正しく出来ているのに行動が全く逆行しているのが良く分かる。笑うしかない。

もうこうなったら非合理ついでにオーバーウィークエンドしちゃる。シティの決算で暴落するぜ。8000円より上で売り建てるのは今日が最後のチャンスだったぜ。

ってそのシティ決算がめちゃくちゃ悪いのでない限り、どう考えても、25MAまでは戻すよなあorz。オバマ就任式や就任後にも理由を伴わない上げが待っているし。せめて、月曜日に8100円以下で寄り付かないかなあ。

以下前場引けに書いた事。
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-48円です。

このうち手数料の支払いが48円含まれます。

買い注文回数は0回, 売り注文回数は1回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-4500円です。


---------------------------
OK
---------------------------
あまりに疲労が強くだるく何も手に付かないと、つい十分に我慢できずにポチッとなしてしまう。我慢弱さを散々このブログのエントリで戒めているのに、ザラ場が始まると自分を抑えられない。今日は午後医者なので相場をやらない予定だったのだが、前場寄り前には今日は上げだろうと思っていた所がするすると下げていくのを見て、一旦は10時まで待って8100以上まで戻したらショートにしようと考えたのに、小さなリバウンドからまた下げていきそうな僅かな動きにつられて9時40分くらいに8080でショート。

その後の8170までの上げがボラティリティ頼みのランダムウォークでないちゃんとした上昇トレンドだったので損きりしてロングに転じるべきところをずっとホールド。だめだこりゃ。まあ昨日の終値付近を一度は試すだろうから後場は8050に指してから出かけるつもり。ってどう考えてもザラ場を見れないリスクを考えて前場引けで損きりすべきだったんだが。

体調があまりに悪いために、何かしらやれる事を自分に与えてくれるという存在がとてもすばらしく貴いものに感じられてしまってまともな判断ができなくなるなあ。しばらく頭を冷やすべきかもしれない。

でもまあ意外と市場の感情が好転していないようなので、結果オーライにはなるだろうから、今回だけ許そう。ってそういう今回だけの例外って言い訳を続けてどこかで大怪我するんだよなあ。この週末で自分の投資行動を見直そう。

まったく、ここまで綺麗な下げて上げてまた下げるチャートなんて、標榜している所の超短期トレンドフォローのための相場みたいなものじゃないか。うまくやれば+100でも+200でも取れる動きだ。技術的な問題はトレンド転換点での損をどこまで減らせるかという点しかない。

2009年1月15日木曜日

今日の戦績

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+3040円です。

このうち手数料の支払いが960円含まれます。

買い注文回数は10回, 売り注文回数は10回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
↓の投稿の後、あまりに眠くて横になったら珍しく眠ってしまった。すごく浅い眠りではっきりとした夢(わりと悪夢っぽい)を見つつほとんど意識は覚醒していて相場を見ようと思い立つのだが起きられないというのを繰り返して、やべえ20時を廻った!と思って無理やり置きだしたらまだ18時30分くらい。それでも低めの値(8000)でショートしてザラ場を見ていないという超ハイリスク行動をとってしまったわけだが、見てみたら7985で約定していた。夕場の流れ的にはひたすら下げて現在8970に突入しているようだが、その下げトレンドに至るまでの寄りからの経過も把握していないで爆睡していたわけで、超危険行為。結果オーライなだけ。今日はそんなんばっかり。

夕場は、8000以下での推移で強気にショートしにくい中での下げとは言え今日の前場・後場に比べれば出来高が少なくなるくせに随分と素直な下げトレンドに見えるが、体調が悪すぎるので、これ以上の参戦はなしとしよう。

完全にラッキーだっただけの、利益が出たのが奇跡みたいな一日だったが、とにもかくにも大発会から2連敗の後の6日連勝達成!日数が少ないように見えるが、毎日のトレードは行っていない。体調が悪い時とか、大幅GDの後の揉み合い相場とかは参戦を見送っている。ついでに言えば、今日は見送るべき日だった。勝ちは結果論でしかない。猛省。それでもあえて言おう、アドイン「身も蓋もない」の強さ実証中!。

それと、1月の半分を+10%超えで折り返した事になった。トレードアイランド的には15日までの結果は、15日の後場引け後の値洗いで計算されるので、↓の含み損が効いて明日の更新ではかなり少なく表示されてしまうが、明日は用事があって参戦しない予定なので今日夕場までの結果がちょうど月曜日にトレードアイランドに反映されるという事になるだろう。

後場引け後の結果
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+1588円です。

このうち手数料の支払いが912円含まれます。

買い注文回数は9回, 売り注文回数は10回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-4500円です。


---------------------------
OK
---------------------------

華々しい前日比の数値と裏腹の事実上の揉みあい相場のわりには良くやったと思う。損は取り返した。

ただ、やはり逃がした魚は惜しいという奴で、値幅のわりに不甲斐ない利益が悔しく、夕場に8000円を割る事を見込んでロスタイムで8000円で売り建てた。

ロスタイムの動きがめちゃくちゃな事になっていたので、この含み損はまあ気にしなくて良いと思うが、夕場で8000円を割り込む可能性はそんなに高くはないだろうなあ。ていうか、市場心理的には、「ああ、どうせ来週はまた意味もなく上げるんだろうなあ。上げる理由なんか何もないよなあ。でも上げるんだろうなあ。」と皆が思っていると思う。夕場も大きな下げにはならないと思うので、願わくば、7975くらいで寄り付いてほしい。7985で指値しておいたのでそうすれば微益で売り抜けられる。

以下前場引け後に書いた事。
Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-8028円です。

このうち手数料の支払いが528円含まれます。

買い注文回数は5回, 売り注文回数は6回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+1000円です。


---------------------------
OK
---------------------------


反省点の多い前場でした。またこらえ性のなさが出た。↓の文章を偉そうに書いておいて、9時10分を待たずしてもう我慢できず8050でショート、8080で損きり、その後9時15分を待たずして8065で再びショート、8140で損きりという滅茶苦茶の行動選択(この時点で損は1万円超)。何をやっているんだか。値は絶対的にも相対的にも考慮せず、トレンドフォローに徹するスタイルを標榜しているのに、大幅GDに引きずられて暴落相場に期待し過ぎだ。

対して日経225先物は10時まで現物と鞘寄せして、その後も大きな乖離をせずに推移するという大幅GDというやんちゃをした癖に良い子な振る舞い。ショートするにしても10時以降まで待って8100前後、できれば8100以上でだろうし、そもそも前場は見送るべきランダムウォーク相場だ。あえて言うなら上昇トレンドだがただしテクニカルの範囲のリバウンドなので手堅くロングという相場だ。ショートしている事がそもそも有り得ない。

その後さすがにロングポジションとショートポジションを両方小刻みに繰り返して損を少し取り戻したけど、これだけの下げの割にリバウンドの上値は8150~8100くらいという事で、損きりしてロングポジションに転じた時点が遅すぎて大きな利益は出せない。

引け間際に8100でショートして引けのナイアガラに期待したけどそれもなく、後場に持ち越しして終了。

後場8000円を割り込めば結果オーライだけど猛省。後場損が広がれば超猛省しよう。

以下前場寄り前に書いた事。

珍しく夜寝て朝起きられたら、ダウがすごいことになっている。また寝ている間に海の向こうで値が決まるパターンかよ。でも、ここまで大幅にダウが下げると、寄り付きGDの後リバしてその後ナイアガラるというやりやすい展開にならずにあれよあれよという間に下げまくってエントリーし損なうという展開も有り得るなあ。それでも、GDの幅によっては寄りでショートはしたくないなあ。そもそも、「身も蓋もない」を使った超短期トレンドフォロースタイルでは最低でも30分~1時間は歩み値データを取るだけに徹してトレンドを見極めるのが基本だし。

2009年1月14日水曜日

ブログペットとブログ妖精

このブログにはブログペットを導入していたが、小癪にも登録したAtomフィードに対して形態素解析なんかまでやっている様子で、人工無能っぽくおしゃべりしたりブログ日記に自分のブログの感想がわりとそれらしく自動生成されたりしていた。そこで絵柄的に抵抗のあった(まあ自分一応堅気の人間なので)ブログ妖精こころが意外と面白いかも(より人工無能として優れているかも)、と思ってしばらく前にブログ妖精こころに変更してみた。そしたら見た目はブログペット寄り人間っぽい(まあ異論は多々あろうが)くせに、ブログの内容依存の発言はほとんどなく、好感度を上げるための種類の少ない定型的な質問とかニュースの紹介とかばかりで、「意外に知性を感じさせる場面、人工知能としてのそれらしさ」が皆無だった。結局ブログペットに戻した。

うーん、これは、往年のペルソナウェアとか「何か」とかが結局ただのニュースリーダだったのに感じた失望と同じ失望だなあ。

デスクトップマスコットとかその延長としてのブログペットとかって言うのは、飽きさせない要素=ユーザに関連したコンテンツ(ブログペットの場合はブログ)の自動生成が必須なんだよな。それは拙いもので十分というかその方が良くて、それで生まれる意外な``それらしい''結果が訴求ポイントとなるものだ。特に、ユーザとの間で共有される何かに関連して自動生成されるとなお良い。ブログペットの場合ブログのAtomフィードを``読む''というのは、とても強力な特徴だ。しかしブログ妖精こころはそれをほとんど活かしていない。

ブログ妖精はギャルゲーがブログパーツになりましたっていうコンセプトじゃないわけだから、「いやいやこれが意外と面白い事をしゃべるんですよ」と人/自分に言い訳できる要素がないと。それは堅気の人にとってのブログに萌えキャラがいる事への抵抗感への言い訳という事以前に、それがないとまずブログの執筆者自身が、そしてブログの読者も飽きる。絵柄は付加価値でしかないのだから。多分堅気じゃない人たちでもそうだ。というか、そういう人たちの方がこういう``安易な萌えキャラの使用''に対してはシビアな判断を下すだろう。

これがオリジナルのブログペットみたいに、稀にまるで本当にブログを読んで感想を喋ったり書いたりしているみたいな絶妙な反応をするのならば、堅気のブログ執筆者がブログ妖精こころに「萌える」という事にもなるだろうに。ブログペットが意外と面白いだけにブログ妖精こころがこの域に留まっているのは少々残念。お風呂シーンも見れたので(堅気はどうした)ブログペットに戻そう。

体調

風邪気味な感じが強まっている。でも風邪という程ではない。軽い吐き気とかもある。咳・痰も慢性化している。

足、肩、腕にずっと筋肉痛。体中がだるい。目がしょぼしょぼ。強烈に眠いけど眠たくはない(微妙に感覚が違う。布団で横になりたい感じじゃなくて目の奥や額がツーンとしている)。

今日の戦績

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+4712円です。

このうち手数料の支払いが288円含まれます。

買い注文回数は3回, 売り注文回数は3回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
まだ6時前だけど1~2時間の集中でも滅茶苦茶消耗したのでもうこれで今日は終わりにしよう。それに今回は勝ったけどやっぱり夕場は出来高が細ってやりにくい。体調が許す限りできるだけデイセッションを手がけたい。

大発会から二連敗で縁起が悪かったけれど、そこから完璧な5連勝!イエイ!

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-48円です。

このうち手数料の支払いが48円含まれます。

買い注文回数は0回, 売り注文回数は1回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+1500円です。


---------------------------
OK
---------------------------

夕場同様現物市場の引け後のロスタイム10分で調子に乗りすぎだろう。先物は。何故に1万円の含み損から一転含み益で終わってますか。後は夕場で手仕舞うタイミング(もし高く始まったら今生じている含み益を引きずらずに一度潔く手仕舞う事も考えよう)、さすがに二日休んでしまったので夕場で少しはやりたいなあ。でもまあ夕場は半分以上洒落だから、動き次第だけど。夕場で8000円にタッチしたりして。

以下後場ザラ場中(といっても14時以降だけど)に
書いたこと:

あまりに体調が悪いので今日も参戦は見送り。14時過ぎまで寝ていた。最近また朝方まで寝付けなくなっている。

のはずだったのだが、昨日の俺は何をしやがってますか。8300で指値してやがる。NYの動きが弱いのを見てこれをキャンセルしようと考えたはずなんだが、思い返してみると実行に移した記憶がない。

寄りが高かったので8390での約定になっているが行って来いの展開になっているので一時的にはすごい損になっていたはず。今はぎりぎり許容範囲の損まで落ちてきているので、損きりはいつでもできるから、夕場で8300円台になるのを期待してしばらく放置しておこう。でも、やばい展開になったら覚悟は決めて損きりしなきゃ。

ところで、これ、後場終値次第では、トレードアイランドの収益がマイナスになるよね?悲しいなあ。

2009年1月13日火曜日

今日の戦績

---------------------------

---------------------------
トータル損益は+1828円です。

このうち手数料の支払いが672円含まれます。

買い注文回数は7回, 売り注文回数は7回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
夕場で火遊びしてまた利益を減らしてしまった。大幅に下げた6時以降の参戦で、揉みあい相場の練習と見なして8350くらいを底値と思ってロングしたら損を出してしまい戻りからショートして取り戻したりと右往左往しつつ損益とんとん。ただ、引けにかけての一段の下げを期待して8260でショートして8220で指成にしておいたら、8240くらいまで下げて利益をとれる場面もあったのだが引けまで粘ったら引けは8265で1ティック分の損。それでこういう結果になりましたとさ。

しかし為替や欧州に反応しているのは分かるが、夕場調子に乗りすぎだろう。これで明日はまた大幅GDの後ヨコヨコとかだと腹の虫が収まらん。

もし明日8300より上で売れる場面があれば売り建てを鬼ホールドって選択肢が出てきたかもしれない。相場環境の割りに良好だった市場参加者の感情がようやく悪化してきたとは言え、25MA付近では強気でショートするのは控えて様子見しながら動きが強い場面でフォローしていく方針が適切かと思っていたが、これは明日一気に7000円台突入もあり得るかも?

ただ、とりあえずは今月の利益は既に十分確保できているので、今月トータルの目標は+10%くらいに置いて、慎重に手堅くいく方針をあくまで基本としよう。今日も、14時50分からの参戦で美味しい所だけさらっていけたので少ない利益とは言え行動の選択は上手だった。めでたしめでたし。

Lv1.00(miniの平均発注枚数。整数部が最大発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+2308円です。

このうち手数料の支払いが192円含まれます。

買い注文回数は2回, 売り注文回数は2回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------


今日はあまりに体調が悪いのと、大幅GDの後小幅での揉みあいになりそうだったので参戦しないつもりで遅くまで寝ていた。14時過ぎてから起きてみたら日経平均は400円の大幅下落だけど日経平均先物は予想通りにその分を寄りで一気に下げてしまってその後は100円くらいの幅で揉みあい。三連休の間に海の向こうで値が決まってしまいました。週初にNYが先行するのは月曜が休日ならではの現象だ。

くそう。先週末夕場の8800円の売り建て玉を持ち越していたら「見も蓋もない」の開発に伴って生じた損(4万円弱)を一気に取り戻せたなあ。それでも三連休を持ち越すリスクは絶対取るべきじゃないので逃がした魚という奴だ。

結局、14時50分を過ぎてから引けにかけての下げにだけ参戦。8400を割る事はさすがにないだろうと早目に手仕舞ったらかなり強く下げていってあっさり8400を割り、戻した後また下げて、引けは気配値が分裂して8380で終了。この短時間でももっとうまくやれば結構な利益が出せたという事になるが、利益が出ただけ良しとしよう。

2回だけの取引だし利益も小さいしでインチキじみているけれど一応の四連勝。イエイ!

2009年1月12日月曜日

LINQの独自実装にはIQueryableを実装する

LINQの独自実装をするにはIQeuryableを実装すれば良いのか。色々勘違いしていたぞ。
以下方針のメモ。間違っている部分があるかもしれない。

SkipListNodeSummableField<T>のようなクラスをSkipListNode<TItem, TNode>のインナークラスとして次のように作る。その構造はSkipListNodeに酷似していてやはりツリー類似の構造を持っているのでそのコンテナクラスを作ってやればLINQと整合的に高速な総和計算ができるというのがポイント。ただしこのクラスは自分自身では順序を定める方法を持たない点がスキップリストのノードとは異なる。その代わりにそのインスタンスはSkipListNodeの内部フィールドとして保持される。
class SkipListNodeSummableField<T>{
public TNode ThisNode;
public T[] Values;
public SkipListNodeSummableField<T>[]Next;
public SkipListNodeSummableField<T>[]Prev;

//SkipListNodeのコンストラクタから呼び出してください
public SkipListNodeSummableField(TNode ThisNode){
this.ThisNode=ThisNode;
}

//SkipListNodeのOnHeightDecidedメソッドをオーバーライドして
//このメソッドを呼び出してください
public SetHeight(){
if (values == null) {
Values = new T[ThisNode.Height];
} else {
Array.Resize(ref Values, ThisNode.Height);
}
}
//SkipListNodeのOnMaintainanceメソッドをオーバーライドして
//このメソッドを呼び出してください
public Maintainance(int depth){
if (IsHeader || IsFooter) return;
if(depth==0){
Values[0]=DecideValueDepthZero(ThisNode.Item);
}else{
Values[depth]=SkipList<TItem, TNode>.GetEnumerableInOrder
(ThisNode, true, ThisNode.Next[depth].Prev[depth-1]
.Select(summablefield=>summablefield.Values[depth-1])
.Aggregate(Composite);
}
OnMaintainance(depth);
}

//合成規則
public virtual T Composite(T a, T b){
throw new NotImplementedException();
}
//このメソッドをオーバーライドしてNext[depth]やPrev[depth]に
//ThisNode.Next[depth]やThisNode.Prev[depth]の適当なフィールドを
//指定してください
protected virtual OnMaintainance(int depth){
throw new NotImplementedException();
}
//このメソッドをオーバーライドしてThisNode.ItemからValues[0]を決定する
//方法を指定してください。
protected virtual T DecideValueDepthZero(TItem Item){
throw new NotImplementedException();
}
}


SkipListNode<TItem, TNode>の継承クラスの実装としては例えば
class MyNode:SkipListNode<MyItem, MyNode>{
class VolumeSummableFiled:SkipListNodeSummableField<int>{
public int Composite(int a, int b){
return a+b
}
protected virtual OnMaintainance(int depth){
Next[depth]=ThisNode.Next[depth].Price;
Prev[depth]=ThisNode.Next[depth].Price;
}
protected virtual T DecideValueDepthZero(TItem Item){
return Item.Price;
}
}
public VolumeSummableField Volume;

public MyNode(){
Volume=new VolumeSummableField(this);
}
protected override void OnHeightDecided(){
Volume.SetHeight();
}
protected override void OnMaintainance(int depth){
Volume.Maintainance(depth);
}
}

という感じにする。

その上でコンテナクラスとして、SkipListRangeとSkipListSummableFieldRangeとを作る。これらはSkipListNode型あるいはSkipListSummableFieldRange型のInitial及びFinalフィールドを持つ。そして、SkipListRange型とSkipListSummableFieldRange型に対してIQueryableの実装を行う。これで、対応するノードの集合が連続である事を暗黙に仮定する事で、SkipListRange型に関してはFirst, Last, TakeWhile,
Whereメソッド等の高速化ができる。それが仮定できない場合にはIQueryableにダウンキャストしてやればQueryableクラスが提供する標準の拡張メソッドが使用されるという約束にすれば良い。つまり、インタフェースの明示的な実装という奴を使って、ダウンキャストされた場合全部Queryableクラスの静的メソッドに転送するようにすれば良い。LINQはインタフェースの実装を問わず、対応するインスタンスメソッドが存在すればそれを使い、次いでインタフェースの実装を試し、最後に拡張メソッドを探すので、(この優先順位はどこまでC#と拡張メソッドの仕様でどこまでLINQの仕様なのか良く把握できないないが)これでツリー類似の構造を利用した対応するノードの集合が連続である場合の高速なクエリと、対応するノードの集合が連続でない場合の標準的なクエリとを両立できる。SkipListSummableFieldRangeに関してはSumメソッド(Compositeメソッドによる合成だがLINQの他の実装との整合性からメソッド名はSumにすべきだろう)高速化する事が可能だ。

ここまでやれば、後一踏ん張りするとLINQ句への対応までできてしまうのだが、やっぱり何だか面倒そうだなあ。でも、ノードの集合が連続であると仮定した場合の高速なWhereができると、区間の削除が綺麗に実装できるんだよな。そのうち体調的に余裕がある時にまずLINQの独自実装のサンプルを作る事から初めてみよう。

体調

最近睡眠時間が延長+起きた後夜まで強烈に眠いので今日のトレードは休む事にしていたのだが、16時に起きてみて気が付いた。今日って成人の日か。ラッキー。

そして風邪気味の症状が強まっている。後、昨日の夜顔が火照って37.2度程度の微熱がずっと引かなかった。今までは、微熱は時々奇妙な形で出るのだが、実際に暑さや寒さを感じる事はなく、強い寒さを感じる場合にはむしろ低体温(36度を切る)事が多かった。だから、実際に熱っぽく感じて実際に微熱があるというのは珍しい経験なのだが、これは今日は平熱に戻っていた。

ね、ねむい・・・

強烈に眠い。そして立っているのが辛い程に足に疲労がある。肩と腕に筋肉痛がずっとある。調子に乗って腕立てなんかしなきゃ良かった。咳・痰も少し激しい。でも、寝起きに、あれ、風邪をひいたかな、という感覚を覚えるのだが、風邪っぽい症状については実際には風邪気味とすら言えない程度の症状しかない。慢性化してはいるが。

最近では段々、無理に外に出て夜風に当たっている時しか意識が保てなくなってきた。その癖、夜12時を回ると、グロッキーながら活動的という風になって、まるでゾンビのようにあれこれしながら朝方まで起きている。最近の長文投稿の連続もそんな感じだった。そのせいで首も痛い。手首も痛い。

2009年1月11日日曜日

スキップリストとLINQ

スキップリストを.Net上で実装したライブリをLINQ対応にしたいのだが、中々上手く方針がまとまらない。

AggregateとかSum, Min, Maxとかはノードを引数にとるラムダ式ではなくノードと階層を引数にとるラムダ式を受け取るようにせざるを得ないのでLINQへのつじつまあわせはできない。これは、(ノード,階層)のペアが、区間 [ノード, ノード.Next[depth]) = [ノード, ノード.Next[depth].Prev[0]] に対応するためだ。本当はこれらをEnumerable.Aggregate等と同じように使えるようにしたいのが一番やりたい事だけどそれは無理そう。

でも、IEnumerableの実装(最下層を単純に列挙する)とかICollectionとかインタフェースの実装は最低限やっておくべきだろう。それから、First, Lastを現状のFind, FindLastで
置き換えて高速化はできるだろう。TakeWhileなんかもこれらができれば直ぐだ。

ただし、これらは全部、対応する区間が連続である事が前提なんだよな。そこらへん勝手に仮定して良いのだろうか。

例えばバイナリサーチのようなソートされた構造を前提にした操作とLINQの対応ってどうなっているのか等等、IEnumerableへの拡張メソッドでないコレクションクラス固有のLINQ実装が存在するのか調べておくと後の方針が立て易そうだ。

追記:
そういえば、AggregateメソッドがとるInitial引数は本当は必要ないなあ。初期値としてInitialをセットしてから逐次足しこんでいく実装になっているけれど、初期値を最初の一つにすればInitial引数は必要ない。Enumerable.Aggregate メソッドには三つのオーバーロード(一つ目, 二つ目)があって、今までのスキップリストライブラリのAggregateメソッドの定義はこの一つ目と二つ目の折衷みたいな形になっていたが、Initial引数を失くすことにすれば、一つ目のEnumerable.Aggregateメソッドと見た目が同じになって使う上での混乱もなくなるだろう。

Initial引数は半群における単位元(加法における零)が指定される事を想定しているけれど、正しい数学用語としては、半群は単位元を必ずしも含まず、含む場合はモノイドというらしい。もちろん、半群に一つ要素eを追加して、それと他の要素との群演算をex=xe=xと定める事はいつでもできるから、半群はいつでもモノイドに拡張できる。でもこの事はコードとして実現しようとすると簡単ではない。通常は加法における0とか、重み付き平均における重み0の要素とか、単位元として振舞う要素が初めから含まれているが、そうでないケースもあるだろう。MaxやMinをAggregateを用いて実装する時、InitialとしてDouble.MinやDouble.Maxを指定するのは、正しいけど汚い。真の実数ならばMinやMaxを群演算として半群と見なした場合には単位元は存在しない(-∞や+∞を実数全体の集合に追加してやる事が前述したモノイドへの拡張に対応する)。総和計算を行う可換半群に単位元を持っている事を求めるのは、止められるならば止めた方が良いようだ。

そのうち、Aggregateメソッドのロジックを変更して、Initial引数を取らないようにしよう。

体調

体調が最悪。強烈に眠い。喉と鼻の調子がおかしい。倦怠感。筋肉痛。首にも疲れがある。

ちょっと明日のトレードは休んだ方が良いかも。

2009年1月10日土曜日

AnyWare+とPaypalの比較

Paypalは有名なサービスだけど日本に上陸してまもない。例えば、アメリカの銀行口座からPaypalの口座に振り込む事ができるが、日本の銀行口座から同じ事はできず、日本在住では自分のPaypal口座に入金したり他人のPaypal口座に送金するためにはクレジットカードを登録する事が必須になっている。

一方で、AnyWare+というサービスを知った。これは日本に拠点を置くサービスで、初めからシェアウェア及び寄付を受け付けるフリーウェアを焦点としたサービスだ。一方のPaypalは主にオークションなど個人間の決済を仲介する事を目的としていて、ソフトウェアのドネイションに使用するのは若干本来の趣旨から外れている(ただし海外ではこの利用の仕方はポピュラーではある)。

しかしAnyWare+の手数料を調べて驚いた。20%もマージンを取られる!一方のPaypalは3.4%+0.30USDだ。

例えば先日3000円を受け取ったケースでは、142円の手数料を引かれた。この計算はgoogleで
3000Yen*0.034+0.30USD in Yen
のように検索すれば計算できる。今は円高なので少し少なくなって129円だった。ふむ、為替で意外と変わるな。

また、AnyWare+では銀行口座への入金手数料は実費で発生する。PayPalでは5万円までは250円で固定で場合によっては少し高くつくケースもあるようだが、5万円を超えれば無料だ。

というわけで、手数料20%はどう考えてもぼったくりなので、やはりPaypalで行こう、という結論でした。Paypalの手数料を調べた時はこの手数料を高いと感じたのだが、上には上がいるなあ。

ところで、Paypalは月6万円以上の引き出しのためにはクレジットカードの登録が必要だ。現在の自分の社会的地位が弱いのでクレジットカードって作れなさそうなんだが。当面はPaypal経由の寄付なんてそんなに集まりそうにないのでこの問題は放置。

上でPaypalを寄付に使うのは本来の趣旨から多少外れると書いたが、このページに書いてあるように、寄付は使われ方として想定されているし、寄付用の専用ページとそこへのリンクのために利用するボタンイメージも用意されている。良く見かけるPaypalの寄付ボタンはこれだったのか。しかも、メールアドレスすら公開せずに寄付を受け付けられる(メールアドレスに紐付けられた一意のマーチャントIDが発行される)。そのうち寄付関連のインタフェースを見直す事にしよう。

体調

起きたら午後6時を過ぎていた。やっぱり冬場は睡眠時間が10時間~下手をすると12時間以上に延長するなあ。起きても眠くて眼を開けていられない。足に力が入らないし腕と肩に強い筋肉痛。咳・痰が激しい。ただ、高校~大学院にかけて急速に悪化していった短期記憶の障害が最近改善しているので、こうやってブログへの投稿とかちょっとした作業が辛くないのは嬉しい。

特に高校の頃から、何をするにも、歩いたり風呂に入ったり布団に入りながら寝られずにいたりしている時に、これをするにはまずこれをやって、この事については~に書いてあるはずで、これはこうやればできるはずで、これだけはちょっと不明瞭だから今のうちに調べてまとめておいて、と予行練習と準備を繰り返し繰り返し行う過程を数日~数週間と先行して行ってきた。その上で偶に訪れる(主に夜~朝方)少し意識がはっきりした時間帯にやるべき事をがーっと最初から最後まで推し進める。そうすると、まるで初めからやるべき手順を完全に把握していたかのようにスルスルとタスクが実行できたり、まるで初めから知っていた事をただまとめるだけみたいにノートが作れたり、まるで昔から持っていた見解をそのまままとめているみたいにブログに長文の投稿ができたり、という具合だった。

そういう風に短期記憶が宛てにならないから長期記憶を活かす方向でやっていくしか方法がなかったわけだが、そのお陰で、大学や大学院のセミナーの準備なんかは前日の夜中に突貫工事で行っているのにも関わらず異様にはかどって、学習した覚えのない事を何故かいつのまにか知って/理解していたり、知らない事でも何を見ればそれが書いてあるかを何故か予め知っていたりして、それらをただまとめているだけ、というような不思議な感覚だった。学習が困難な状況にも関わらず却って、少なくとも学習した事項に関しては比較的深く理解できた。

でも、特に大学の頃ぐらいから、例えばWEBをブラウジングしていて、知らない言葉に出くわして、ちょっとWikipediaで調べてみようと思っても、Wikipediaを開いた時にはもう何を調べようとしたかを忘れている、という事を怖いくらい頻繁に経験するようになった。だから、継続的に何かを学習するという事はとても困難だった。大学時代に主体的にアクティブに活動した記憶はほとんどない。一ヶ月かけてMac OS XをLet's Note上のVMWareで動くようにした事くらいだ。

最近はそういう短期記憶が弱まっているという事はなくなった。その代わり眠気のような(でも布団に入って寝たくなるわけでもパタリと眠り込んでしまうわけでもない)額と目の奥のツーンとした感じが強烈に強まっていて集中力がとても阻害される。何とも言えない辛さだ。

せめて人生を・・・

高校の頃から、アクティブに主体的に動ける時間は一ヶ月に数時間しかなかった。大学の頃には数ヶ月に数時間になった。それでも、相当にひどい状況になっても、人は動き続ける事ができる。私の弱みだけでなく強みさえも私の症状に起因して形成されてきた。だから、もうずっと、まるで自分の物でないかのような人生を歩み続けてきた。

私が置かれた状況によって、自然科学の誰にでも理解でき誰にでも使えるというその際立った特徴は私にとってとても魅力的に写った。私は意識的に、機械的に/自動的に実行できるタスクを自分にインストールしていった。目的意識と実用性はいつでも特別に重要な要素だった。人は何かをするために何かを作り出すのだからそれは実際にいつでも最も重要な要素であるのだが、その事を私は誰よりも強く意識する事ができた。知人達が華やかなプログラミング言語を話題にしたり関数型言語に手を出したりしている中で私はVisual Basicに固執した。Linus TorvaldsがVisual Basicを持ち上げた件は私を勇気付けた。

#Visual Basicの理想は.Net FrameworkとWPFという形で結実している。その主役はもはやVB.NetというよりもC#であるにしても。

本に書かれている事を読み理解する事も完全に自動的に行えた。自分が何を知っていて何を知っていないのか、何を分かっていて何を分かっていないのかを把握する事も、それは学習/研究において最も重要でそしてそれにも関わらず完全に自動的に実行できるタスクだった。だからこそ、認識論的な言説の見せ掛けの高尚さに惑わされる事なく、量子力学の哲学と呼ばれている分野で議論されてきた主題は、余計な物を排除すれば、実際には終始一貫して確率の意味論であると高校の頃にはほとんど直感的に理解していた。

それは古典論において全く理解されていなかったと同様に量子論においても理解されていないのであって、量子論固有の問題ではなかった。歴史的に言えば、フィッシャー等が議論した統計モデルとアンサンブルに関する卵と鶏論争、そして物理学が(素)粒子という概念を確立する過程でボルツマン等によってアンサンブル解釈が暫定的で表面的な結論と見なされるようになった過程が先行して存在し、そしてそれは結局の所実際には何も解決してはいなかったのであって、量子力学においても全く同様に事態は改善せずに確率の意味が不明であり続けているというのが、量子力学の哲学と呼ばれる分野から下らない認識論を剥ぎ取った結果残る意味のある問題意識だった。

一方で、確率の実用論的/道具主義的意味付けは明確だ。仮にあなたがナイフを突きつけられてAに賭けるかBに賭けるか選択する事を強要されているとする。「Aに賭けたら確率2/3で1万円がもらえ、1/3で殺される。Bに賭けたら確率1/5で1万円がもらえ、4/5で殺される。」という``文の意味''は、「Aに賭けなさい」という事だ。Aに賭ける事がどのような意味で有利なのかこれ以上に詳細に説明する事はできない。Aに賭けてもたまたま殺されるかもしれない。同じ賭けを強要されている別の人がBを選び貴方がAを選んだら、彼は助かり貴方は運が悪く死ぬかもしれない。この文の意味は、一体世界で何が起こっているのか何が起きるのかという点に関しては全く不明である。アンサンブルと統計モデルの鶏と卵論争からも読み取れるように、確率的言明は一種のプリミティブな文としての性質を持つようだ。そしてそれにも関わらずこの文の実用論的/道具主義的意味は純粋に明確だ。ところで量子力学は確率論に基礎を置いているのだから、実用論的/道具主義的観点から今例示したような決定理論的な、つまり複数の選択肢からどれかの選択肢を答えとして選べという問題設定は量子力学において本質的にならざるを得ない。

#このエントリでは道具主義という言葉を実用論とほとんど同義で用いているが、ちなみに、最もストイックな意味での道具主義とは、理論とは膨大な経験のリストの圧縮ファイルとその解凍プログラムにすぎないという考え方だ。過激に過ぎると思えるかもしれないが、コペンハーゲン学派、いわゆる標準解釈は結局暗黙にこの考え方を取っているため(これは彼らが行った、``不確定性関係''に対して``不確定性原理''という哲学的意味付けを与えて世界は(少なくともミクロなレベルで)哲学的考察を受け付けないという``結論''を引き出すという万死に値する暴挙の結果だ)、例えば朝永振一郎のようなノーベル賞をとった大御所がそのノーベル賞の対象となった繰り込みの理論が数学的厳密さを(当時は)欠いている事に関連して繰り返し同様の趣旨の発言をしている。このように、標準解釈の``弊害''は滅茶苦茶大きい。ノーベル賞の受賞者にそんな事を言われたら、学生が一生懸命学んでいる事はただの演習問題の解き方、つまり圧縮ファイルの暗記と解凍プログラムの使い方の練習だという事になってしまう。上に立つ者には、少々浮ついていようとも、リップサービスをする義務があろう。

ディラックに至るまで、コペンハーゲン学派が言う実用論/道具主義とは、粒子N個のうちある準位から別のある準位に遷移する粒子数の割合(遷移率)の近似的な計算方法と、散乱中心より十分に広がった単位面積辺りn個の粒子を含む粒子ビームが散乱中心に向かって入射した時に面積換算でどれだけの粒子が直進せずに散乱するか、つまり散乱する粒子数をnSとした時の係数S(断面積)を求める近似的な計算方法とが、状態を表す波動関数あるいはヒルベルト空間のベクトルと物理量を表す作用素のペアに対して平均値を対応させる内積規則によって手に入ったのだから、それ以上は望まないという物だった。それは所謂量子力学の哲学の一つの立場に数えられはしているが、哲学や思想というよりも現状満足と諦めといった物であり、哲学や思想という冠に値しない言説だった。そこでは分布が持つ平均値パラメタは測定値の近似値/推定値の同義語として用いられる。つまり、N個のうちおおよそN・遷移率個の粒子が実際に遷移するのであり、おおよそn・断面積個の粒子が実際に散乱されるのだ。近似値しか求められない理由は形而上的な不確定性``原理''に求められ、不確定性``関係''に基づいて見積もられる分散はこの近似値の誤差・不確定性であり、つまりそれ以上結果について確実な事を喋る事ができない度合い、不確定性``原理''がかけるベールの大まかな尺度と見なされる。確率論における加法的平均値に特別な意味を認める事の正当性や推定の理論における加法的な平均操作に関してアンバイアストな推定量に特別な意味を認める事に関する批判等等の議論を視界から遠ざけながら彼らは哲学を議論しているつもりになっているのだ。

粒子が多数ある場合には、多数の粒子に渡る加法または平均によって定義される物理量の確率分布が持つ理論的な平均値パラメタを測定値の近似値/真値と見なす事が中心極限定理によって正当化されるのだと、彼らは何となく良く調べもせずに信じている。しかし極限操作に関わる定理が有限個の粒子の物理と関係する事などあり得ない事だ。コペンハーゲン以降ディラックに至るまで、彼らの言う実用主義/道具論において想定されている``用途''とは、測定値を「予言」する事だった。今でも学部では学生はそう教えられるだろう。しかし、確率100%または0%の事象を除いて、確率的に生起する事象を「予言」する事は不可能だ。運が悪ければ外れる事があるかもしれないからだ。学生が演習問題を解く場合には確率や物理量の平均値を計算できると単位がもらえるので確かに実用的だが、量子力学が実際的に用いられる場面では測定値を「予言」する目的で理論が用いられるなんて状況は厳密な意味では皆無だ。

#あまり注意されないことだが、実は確率100%や0%である事象が生じるという主張すら世界で何が起こるのか何が起こっているのかという事について何かを言明しているわけではない。例えば、ある試行においてあるい命題が確率100%で満たされると主張されたとする。この試行は独立に繰り返し可能だとしよう。実際にこの試行を繰り返した無限長のシーケンスにおいて、有限回だけこの命題が満たされなかったとしてもこの確率論的主張は依然として正しい主張として認められる。

実際には、ある事象の生起する確率や、その典型例として有限個のデータ列に対して計算される物理量の加法的平均値(それは物質、つまり粒子のアンサンブルから直接得られる場合もある)がある区間内に収まる確率が計算され、例えばその確率が99%だとして、それは、その事象が生起しなかったり平均値がその区間内に収まらない事に賭けるのは6回コイントスを行って一度も表が出ない事に賭けるよりも非合理的である事を意味する。このように物理において量子力学が用いられる時には、少なくとも暗黙的には常に、選択肢の間に合理性の優劣をつけよという決定理論的問題が議論されてきたのだ。理論物理学の最も華々しい研究として新しい理論を提唱する行為があり、理論が正しいとすると大幅に有利でかつ対立仮説が正しかったりパラメタがある幅以上にずれていると大幅に不利になる賭けを提唱してそれに実際に勝って見せる事が確率的な理論を実証する唯一の手続きとして認められていて、それが実際にしばしば実行されて理論物理学の歴史の最も華やかなストーリーを形成してきたために、「予言と検証」が標準的な実験の枠組みとして学部で教えられるようになった。だが、このケースにおいてすらその実態は決定理論的な選択肢を選択するという行為である。ただそれが仮定に基づく選択であるというだけだ。そしてひとたび十分に検証され認められた理論を使うという場面では「予言」など誰も行わず、彼らは選択肢に優劣を付けるために積極的に理論を利用していくのだ。そしてさらに、全く測定値の予測とかけ離れた問題設定がある。それは、測定値から推定量(例えばデータから計算した物理量の加法的平均値)を計算する事によるパラメタ(例えば物理量の分布の平均値)推定の問題だ。その推定結果は、このパラメタを他の方法によってさらに精密に推定して検証する事を実行しない場合にも意味を持つ。むしろ、そのような方法が存在しない場合の方が重要だ。なぜなら、全く実用的に言って、推定とは、分からない量を推測するために行うのだから。「理論は測定値を``予言''するために``使う''」これは単に広く信じられ伝統的に学生に教えられている都市伝説に過ぎない。シュレディンガー音頭と何ら違いはないのだ。

一方で量子情報、量子計算では単純なピーク状でない確率分布の詳細な形状それ自体が意味を持ちもはや加法的平均値には特別な意味が認められない。その代わりに理想的な測定値の値それ自体が主役となる。もし、具体的な測定の過程を介して得られる(誤差の乗った)測定値を扱いたければそれは量子力学の理論の範疇で一貫して扱われる。そこでは初めから問題設定は決定理論であり、推定論だ。

結局、単純に歴史的・伝統的理由から物理らしいと見なされる題材よりも、量子情報的題材の方がよほど物理として本質的だった。量子力学が確率論と密接に関連し、そして確率の意味は複数の選択肢に優劣を付けるという形でのみ明確であるが故に、実用論/道具主義的観点に立てば問題設定は情報理論的に、つまり推定論や決定理論的にならざるを得ないのだ。すると必然的に、実在に関して現実離れした哲学的立場は放棄せざるを得なくなる。なぜなら、既に十分に実証された理論を用いる場合にのみ合理的な選択肢の選択に用いる事ができるのであり、その場合同じ賭けを繰り返して選択の優位性を検証する必要はないし、ほとんどの場合それはできないからだ。例え偶然に有利だったはずの賭けに負けたとしても、貴方は理論を信じ、最良の選択をしたのだと信じるしかない。また、測定できない量を推定する事にこそ意味があるのであり、その量を測定できるならば推定する事に意味はない。結局測定値を予言する事に実用上の意味はなく、測定ができるならば、測定してしまえば知りたかった値が得られるのだ。このように量子力学を``使う''という場面においては、見ていない時の月の振る舞いに意味を認め興味の(賭けの)対象とせざるを得ないのである。

買い物帰りの主婦でさえ自分が買い物袋に入れた秋刀魚が実在している事を知っている。そして実際に買い物袋を覗いてみれば、実際に秋刀魚は入っているのだ。物理学者は買い物袋の中の秋刀魚について言及する事を止め、あまつさえ、言及してはいけないと言った。買い物帰りの主婦でさえ秋刀魚が実在している事を知っているのに、物理学者だけがそれを知らず、そして研究結果に基づく学問的な地位によってではなく純粋に社会的な地位によって他者に買い物袋の中の秋刀魚について発言してはいけないと強いてきたのだ。しかし量子情報は買い物袋の中の秋刀魚について言及する。実用的に言って、買い物袋を覗いたら秋刀魚が入っているという当たり前の結論を得るためにはそうせざるを得ないのだ。そこに秋刀魚が本当に実在している事を証明する事ができないのは確かだが、それは正しいが何も生み出さない空虚な議論だ。正に科学哲学の良心たるカール・ポパーが言うように。

貴方は、貴方が見ていない時には月は存在していないという立場を取ることも、網膜から脳にいたる電気信号だけが実在だという立場も、意識だけが実在だという立場も、好きに取れる事ができる。これは都市伝説によってフォン・ノイマンが議論したとまことしやかに信じ込まれている``境界の移動''に関する議論だ。しかし境界はこちら側に移動できるのと同様にあちら側にも移動できるのであり、秋刀魚の実在を認めない事の実用論的デメリットは計り知れないしメリットは皆無だ。秋刀魚が実在すると証明する事はできないが、それでもあなたは実在している秋刀魚について好きなだけ喋って良い。それが人の尊厳という物だ。コペンハーゲン学派は人からその尊厳を無自覚に奪った。その結果として学生達/一般の人々は偉い人たちに気を使いながら恐る恐る物事を喋る事になった。それは物理学者達の罪業だ。

OK。安心しよう。貴方が見ていないくとも月は存在している。それはとても当たり前の事だ。そして誰もがそれを当たり前であると知りながら、そう発言する事に気後れする社会的空気を物理学は作り上げてしまった。それはとても罪深い行為だ。

#おそらく、何かをしてはいけない、何かを考えてはいけない、何かについて喋ってはいけないという言説を私が全く顧みる事がないのは私が置かれた健康上の特別な状況によるものなのだろう。それは私がおかれた状況が齎した利点の一つだ。なぜならそのような姿勢は実際に正しいからだ。人は先に進むために学問を進めるのだから。

このように、私にとって、問題点の所在をロケートする行為は呼吸をするより簡単に出来る事で、それにも関わらず何故か周りの知人達にとってそれを実行する事は困難であるようだった。それは彼らの能力的な問題ではなく(私は高度な環境に置かれていたので明らかに知人達の問題把握能力は標準に比べて際立って優れていた)、伝統的な物理学/量子力学が作り出した負の遺産だった。一方で、私は問題把握のその先に進みたいと常にもがいていた。だが、状況は悪化するばかりだった。何かを継続的に行う事ができないからだ。セミナーのために期限が定められていれば本を読み理解し関連文献にも目を通しノートにまとめる事はできる。だが、たまに訪れる僅かな主体性を持ってアクティブに活動できる時間に読もうと思う論文を印刷したり本を少し読み進めても、それはすぐに数週間から数ヶ月という単位で途切れてしまうのだ。何度も同じ論文を印刷し何度か一度買った事を失念して同じ本を買い、結局私は大学時代に一歩も前に進めなかった。大学院時代には思い切って講義を完全に切り捨てる事と今年の4月頃に少しだけ状態が改善した事で少しだけ前に進めた。でも結局今や大学院からもドロップアウトしてしまったという有様だ。それでも、大学・大学院時代に私が何も成せなかったわけではないし、むしろ、私が置かれた特別な状況は、私に際立って合理的な視点を与えた。

そのように、私が抱えていた問題は私に対してプラスに働く部分も確かにあったのだ。だから、これまでの人生が自分の物でないように感じられたとしても、やはり私の人生はずっと私の人生であり続けたのだと思うようにしている。それは誰だってそうだ。人を形成する要素は単純にプラスやマイナスに働く物ではない。全く健康上の問題も経済上の問題も抱えていない人間が要領の良さばかりを身に付けて飲み会のような標準的な娯楽だけを楽しみとしながらつまらない人生を送る事もあれば、少しばかり体の弱い人間がそれをバネに立派な事跡を成す事もあるだろう。

問題は、現在の私が問題を抱えている事自体ではなく、それが私から人生の選択肢を全て奪ってしまっている事だ。せめて、私の人生と呼べる物が再び与えられる事があれば、それがどんな物であっても、文句を言わずそれを立派に歩んで見せようと思う。そのために、全く収入の道が閉ざされる事がないように、大学の頃から株式投資について調べ実践し、それは上手く行かなかったけれど、実家に頼るようになってから10月くらいの体調が最悪だった時期に「身も蓋もない」を開発して(これは情報収集とプログラミングを自動的に行えるタスクとして自分にインストールしていたから出来た事だ)Paypal経由で寄付を受け付けるようにした。その寄付はまだ一件しかないけれど、とにかくその経験を通じて、こんな状況になっても人間にはできる事がまだまだたくさんあると実感できた。それはまず第一に人間という物はそれほどに優れたシステムであるという事であり、そしてまた私がこれまで自分に対して行ってきた機能追加の賜物でもある。それを誇りに思い、絶望する事のないように心がけよう。

そういえば、麻生首相が、医療費圧迫に関連して、健康管理を怠らない努力をしているために健康でいられるという認識の発言をしていた。おそらく本当にそう思っているのだろう。私の父親くらいの世代の人々は人は自由意志による選択だけで人生を進めていくのではないという事が中々理解できないようで、イレギュラーな事態への対応がとても下手だ。悪い事をしなくても問題は起こるのだという事が、散々天引きで保険を引き落とされていても理解できないようだ。私の父親も管理職だが、部下の健康問題に関連してあまり上手く対応できなかった事があったようだ。私の場合も指導教官が初め状態を全く理解してくれず、理解し始めたら今度は様々に原因探しを始め、初めから休学の意思を伝えていたのに休学までに半年以上かかった。

私の祖父母の世代は戦争という自分の意思の埒外の理不尽を経験しながらレールを作っていった世代であり、私の父母の世代はそのレールを歩いてきた。私達はレールがなくなってしまった世代だ。たとえ私のように健康上の問題を抱えていなくてもやれ失業だの内定取消しだのと皆大変な思いをしているし、だからこそ逆にフリーターのような道も進んで選べる。上の世代は今の若者は3ヶ月で辞めるだのと文句を言ったりフリーターを非難したりするが、彼らは三ヶ月で``辞めなかった''わけでも、フリーターに``ならなかった''わけでもないのだ。

道行く人々に自分の窮状を一々訴えても仕方がない。今は赤の他人に自分の状況を理解してもらう事よりも(主治医には理解してもらわないと駄目だが)人生を掴みとろうと努力すべき時だ。その後に人間関係が形成されれば信頼できる友人には自分について語る事もあるだろう。

2009年1月9日金曜日

体調

珍しくすっきり目覚められたと思ったら結局朝から強烈な眠気。前場が簡単で良かった。
それと、辛い症状というわけではないけれど喉の調子が悪い。後、最近部屋で椅子に座っていても何も手につかないので、夜風にあたると少しだけ意識がはっきりするからほとんど毎日近所のショッピングセンターまで自転車で出かけて表面的にはとてもアクティブなのだが、そのせいで疲労感はたまる一方。完全に運動会の次の日状態が続いている。

段々、立っているのが辛いが座ると立つのが辛いのでうろうろと足の置き場を変えながら立ち続けるというラウンド半ばのボクサーみたいになってきた。筋肉じゃなくて骨で立つようにして疲れをしのぐのは、やっぱり高校の頃から身に付けた技術なんだが、そんなもん欲しくねーよ。

今日の戦績

---------------------------

---------------------------
トータル損益は+5396円です。

このうち手数料の支払いが1104円含まれます。

買い注文回数は12回, 売り注文回数は11回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------

夕場で火遊びして一勝二敗で割りと大きな損を出してしまった。だから動きがない所に成り行き注文で参加すれば100%損するんだって何度言ったら分かるんだこいつは。8800Sとかクリックした瞬間に自分の正気を疑った。でも、環境最悪なのも事実なので、持ち越したら爆益だった気がしなくもないが、それでもオーバーウィークエンドのリスクとつりあうものじゃないと、さすがにそれは学習したので指成で手仕舞った。引けで直前の売り気配値から2ティックも上げやがったよクソッタレ。

今日の夕場みたいな状況で参戦するなら8805L-8825Sを繰り返すってのはありなんだろうけど、そういう揉みあい相場の戦術はトレンドフォローの基本を身に付けてからにしようと心に決めている。

とにかく三連勝は喜ばしい。

Lv1.00(平均の取引枚数。整数部がmini発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+8684円です。

このうち手数料の支払いが816円含まれます。

買い注文回数は9回, 売り注文回数は8回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------


後場は前場の下げを半値戻した後少しずつ下げるというストーリーが一応ありそうに見えて、結局高ボラティリティでランダムウォーク頼みに意味ありげな見せかけの相場が作られるという何ともやりにくい展開。それでも全体的には初め上げた後は下げる傾向だったので、初めの上げに付き合わず、その後要所要所でショートして利益を膨らませる事ができた。これで三連勝。

それにしても、時間の平方根を取って時間軸にして相場を見ていると上げたり下げたりという基本的なストーリーは同じでも、普通にチャートを見るのと全然違うストーリーが読み取れて実に面白い。直近の値動きは未来に対して不確定に寄与して、それが段々と過去のデータになるに従い結局はランダムウォークの範疇のブレとしてトレンドの中に飲み込まれていったり、次第にただの一時的なリバウンドに見えた物が積み重なって新しいトレンドを作っていったりと確定したトレンドを形成していく。固定された時間軸では分からない、データの相場に対して持つ「意味」が、データが過去の物になるにつれてダイナミックに変化していって、トレンドがダイナミックに形成されていく、その様子が「身も蓋もない」を使うと良く分かる。多分、「身も蓋もない」のユーザは、世界中のどんなトレーダとも違う景色を身ながらトレードを行う事になる。

Lv1.00(平均の取引枚数。整数部がmini発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+4568円です。

このうち手数料の支払いが432円含まれます。

買い注文回数は5回, 売り注文回数は4回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------


以下前場に書いた事:
昨日の夕場から持ち越した8880の売り建て玉よりかなり高く始まって、前場開始後さらに少し上げた後の100円ひたすら下げるという美味しいところを見ている事しかできない展開。結局昨日夕場引けと同じ8855で利確できたけど、これは結果論でなしに、昨日利確しておくべきだったなあ。夕場の取引なんて半分以上洒落なんだから、+25で御の字だよ。

その後は下げてはリバウンドするというやりやすい展開だけど割りと手堅く攻めたので5000円強程度の利益。まあ強い下げに付いていけなかったとも言う。その後8800から駄目押しのショートが上手くいかなくて損きりしたのち8100円で売って8000円での手仕舞いで少しだけそれを取り戻して前場終了。

後場がやりにくいなあ。25MAはまだ下にあるけれど、ここからさらに一段の下げをすると決め付けられる程に市場の感情は悪くない。環境は最悪なんだけど。一方でここから大きくリバウンドする展開も想像しにくい。いくらトレンドフォローとは言え、ここからの上げに付き合う気にはなれない。そもそも今日の寄り高が昨日の下げの半値戻しという形なわけだし。後場が高く寄り付いてそこから下げる展開でなければ後場は参戦を我慢する事の練習になるかな。

それにしても、今日くらい大きな値幅で一方的に動く展開でもこれくらいしか利益が出せないんだから、出来高が細ったり方向感が乏しくボラティリティ頼みで相場が形成されていく日に無理に参戦する癖は本当に慎まないと。勝つ時は4000円~7000円、負ける時は一気に一万円二万円じゃあ折角勝ち続けてもすぐに帳消しになってしまう。あと、やっぱり大きな損を防ぐためにも損きりルールも決めた方が良いなあ。「実も蓋もない」に搭載するかな。

2009年1月8日木曜日

今日の戦績

Lv1.00(整数部がmini発注枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+4992円です。

このうち手数料の支払いが1008円含まれます。

買い注文回数は10回, 売り注文回数は11回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに+2452円です。


---------------------------
OK
---------------------------
夕場に変な参戦の仕方をしたので訂正。
夕場が、調子に乗って下げすぎだろう、という感じだったのだが、これ、引けにかけて今日の日経平均の終値付近まで戻す展開になれば売り建てして持ち越しするのも面白そうだな、と思い8880で指値しておいた。引けにかけて戻す展開を想定していたのでずっと場を見ていなかったのだが、ふと見たらとっくに約定している!で、オーバーシュートせずにドンピシャで8900で切り替えしていた。こえー。

さて、明日は下げるなら25MAに向けてどかんと下げる。上げるなら今日の終値付近からという展開になるというてっきとーな読みでこういう事をしたわけですが、目はどう出るでしょうか。

Lv1.00(整数部がmini発注枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+5040円です。

このうち手数料の支払いが960円含まれます。

買い注文回数は10回, 売り注文回数は10回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------

午前はともかく午後は一方的に下げるだけで値幅も大きかったのにこの程度の利益とは・・・がっくし。動きがなくなって余りの眠さに頭をはっきりさせようとスキップリストのライブラリに手をつけていたら一気に8900まで下げちゃうんだもんなあ。その後は逃がした魚は大きいという奴で欲が出て底値付近でショートして損きりになったり逆にリバウンドを狙ってロングしてやっぱり損きりになったりを繰り返してしまった。しかし引けにかけては一段の下げがあってどうにか体裁を保てたという所。まあ二日連勝は素直に喜ぼう。

以下午前中の愚痴

前場は、日経平均だけ見ると反落の後半値戻しという分かり易い展開なんだけど、先物は、完膚なきまでにランダムウォークなんだよなあ。やりにくい。夕場で先行して下げたというのもあるんだろうけれど。ちなみに、時間の平方根を取る表示なのでランダムウォークが種々の長さの直線運動の連なりとして視覚的に分かり易くなるのだ。

9005S-8975Cで3000円利益が出せたけど、その後小幅のリバウンドを待ってさらにショートしたら大きい戻しに捕まってしまった。損きりと言えないくらいの大きな損を出して手仕舞いした後改めて9040S。現在その含み損益は入れずに-5000円くらい。後場の終値が9000円を割らないという事はないと思うけれど、もうそうそう-3%とかの下げにもならないだろうから、どこかでうまくロングポジションを取らないと、この損を取り返すだけで終わってしまいそう。

スキップリストの.net実装を更新

スキップリストの.net上の実装を少し更新した。いつもと同様ファイル置き場に置いてある。とは言っても、ヘルプに記載しているサンプルコードに手を入れたのと、パブリックなメソッドの引数名を先頭大文字にした事だけ。この辺の標準的な名前付け規約はまだ良く分かっていないので時々変えるかも。

今回のサンプルコードの変更では、以前は

totalVolume[depth] = SkipList<MyItem, MyNode>
.GetEnumerableInOrder(start, true, end, true, depth - 1)
.Sum((n) => n.totalVolume[depth - 1]);
vwap[depth] = SkipList<MyItem, MyNode>
.GetEnumerableInOrder(start, true, end, true, depth - 1)
.Aggregate<MyNode, VolumeVwapPair>(new VolumeVwapPair() {
Volume = 0,
Vwap = 0
}, (pair, node) =>
VolumeVwapPair.Composite(pair, new VolumeVwapPair() {
Volume = node.TotalVolume[depth - 1],
Vwap = node.Vwap[depth - 1]
})).Vwap;

とごちゃごちゃしていた所を、

VolumeVwapPair ret = SkipList<MyItem, MyNode>
.GetEnumerableInOrder(start, true, end, true, depth - 1)
.Select((node) => new VolumeVwapPair
(node.TotalVolume[depth - 1], node.Vwap[depth - 1]))
.Aggregate(VolumeVwapPair.Composite);
totalVolume[depth] = ret.Volume;
vwap[depth] = ret.Vwap;

とすっきりした記述にした、等等、匿名メソッドを闇雲に使う代わりにSystem.LinqのSelect拡張メソッドを一段階挟んで、VolumeVwapPair.Compositeメソッドが可換半群の合成規則を与えている事が明瞭になるようにした。この変更は「身も蓋もない」のコードにも反映してある。もちろん以前のコードと等価な範囲の変更である。

サンプルコードの全体は以下のようになっている。可換半群の任意の区間に渡る総和計算をスキップリストのツリー状の構造を用いて高速に行う事が実際に簡単に実装できるようになっているのが分かると思う。

使用例

時刻、値、出来高を持つ株価の歩み値データを考えます。このデータを時刻によりソートし、任意の区間に対して出来高の総和と出来高を重みとした加重平均値(VWAP値)を高速に計算できるようにしたい場合には次のようにします。なお、以下のコードではEnumerableで定義される拡張メソッドが用いられているためコードの先頭でusing System.Linq;が記述されている必要があります。

まずMyItemクラスを次のように定義します。

C#
class MyItem
{
private DateTime time;
private double price;
private double volume;
public MyItem(DateTime time, double price, double volume)
{
this.time = time;
this.price = price;
this.volume = volume;
}
public DateTime Time { get { return time; } }
public double Price { get { return price; } }
public double Volume { get { return volume; } }
}

次に(重み,平均値)ペアがなす可換半群を表すVolumeVwapPairクラスを定義します。なお、重みが0である全てのペアは同一視されこの可換半群の単位元としての役割を果たします。

C#
class VolumeVwapPair
{
public double Volume;
public double Vwap;
public VolumeVwapPair(double Volume, double Vwap)
{
this.Volume = Volume;
this.Vwap = Vwap;
}
public static VolumeVwapPair Composite(VolumeVwapPair pair1,
VolumeVwapPair pair2)
{
double totalVolume = pair1.Volume + pair2.Volume;
if (totalVolume == 0) return new VolumeVwapPair(0, 0);
return new VolumeVwapPair(totalVolume,
(pair1.Volume * pair1.Vwap + pair2.Volume * pair2.Vwap)
/ totalVolume);
}
}
そしてMyNodeクラスを次のように定義します。
C#
class MyNode : SkipListNode<MyItem, MyNode>
{
private double[] totalVolume;
private double[] vwap;
protected override void OnHeightDecided()
{
base.OnHeightDecided();
InitializeParameters(ref totalVolume);
InitializeParameters(ref vwap);
}
protected override void OnMaintainance(int depth)
{
base.OnMaintainance(depth);
if (IsHeader || IsFooter) return;
if (depth == 0) {
totalVolume[0] = Item.Volume;
vwap[0] = Item.Price;
} else {
MyNode start = this;
MyNode end = this.Next[depth].Prev[depth - 1];
VolumeVwapPair ret = SkipList<MyItem, MyNode>
.GetEnumerableInOrder(start, true, end, true, depth - 1)
.Select((node) => new VolumeVwapPair
(node.TotalVolume[depth - 1], node.Vwap[depth - 1]))
.Aggregate(VolumeVwapPair.Composite);
totalVolume[depth] = ret.Volume;
vwap[depth] = ret.Vwap;
}
}
protected override int Compare(MyItem item1, MyItem item2)
{
return item1.Time.CompareTo(item2.Time);
}
public double[] TotalVolume { get { return totalVolume; } }
public double[] Vwap { get { return vwap; } }
}

最後にMySequenceクラスを次のように定義します。

C#
class MySequence : SkipList<MyItem, MyNode>
{
public double TotalVolume(MyNode former, MyNode latter)
{
return Sum(former, latter, (node, depth) => (node.TotalVolume[depth]));
}
public double Vwap(MyNode former, MyNode latter)
{
return Aggregate(former, latter,
VolumeVwapPair.Composite,
(node, depth) => new VolumeVwapPair
(node.TotalVolume[depth], node.Vwap[depth]),
new VolumeVwapPair(0, 0)).Vwap;
}
}

この例では重みの総和に関してはDouble型の総和を計算するSum(TNode, TNode, Func<TNode, Int32, Double>)メソッドを用いて計算し、全平均値に関しては通常の意味での加法によって合成されない可換半群の典型例である(重み,平均値)ペア(重みは通常の和で、平均値は加重平均によって合成される)に対して一般的な可換半群の総和を計算するAggregate<T>(TNode, TNode, Func<T, T, T>, Func<TNode, Int32, T>, T)メソッドを適用する事で計算しています。

ほとんどの場合、可換半群は通常の意味での加法群と等価である事に注意してください。実際、(重み,平均値)ペアと(重み,重み*平均値)ペアとは重みが0である場合を除いて一対一に対応します。そして重み及び重み*平均値はそれぞれ独立に通常の意味での加法によって合成されます。従ってMyNodeクラスのOnMaintainanceメソッド及びMySequenceクラスのVwapメソッドはそれぞれ

C#
protected override void OnMaintainance(int depth)
{
base.OnMaintainance(depth);
if (IsHeader || IsFooter) return;
if (depth == 0) {
totalVolume[0] = Item.Volume;
vwap[0] = Item.Price;
} else {
MyNode start = this;
MyNode end = this.Next[depth].Prev[depth - 1];
totalVolume[depth] = SkipList<MyItem, MyNode>
.GetEnumerableInOrder(start, true, end, true, depth - 1)
.Select((node) => node.TotalVolume[depth - 1])
.Sum();
vwap[depth] = SkipList<MyItem, MyNode>
.GetEnumerableInOrder(start, true, end, true, depth - 1)
.Select((node) => node.Vwap[depth - 1]
      * node.TotalVolume[depth - 1])
.Sum() / totalVolume[depth];
}
}
及び
C#
public double Vwap(MyNode former, MyNode latter)
{
double totalVolume = TotalVolume(former, latter);
if (totalVolume == 0) return 0;
return Sum(former, latter,
(node, depth) => node.Vwap[depth] * node.TotalVolume[depth])
       / totalVolume;
}
と書く事もできます。

2009年1月7日水曜日

体調

今日は睡眠の質は低くはなかったと思うのだが、まるで一睡もしていないかのように強烈に眠い。眼の奥と額が強烈にツーンとしている。体中がだるい。肩~腕の筋肉痛もすごい。咳・痰が少しだけだけど激しくなってきたのと、起きた時に風邪気味な感じ。でも、動いているうちにそれは大した事はなくなる。それと、朝から日中にかけて凄く低体温。お茶を何杯も飲んでも体が温まらない。

体を動かさないのも却ってストレスになって、時々腕立て伏せなんかしたりするのだが、一日やったら二日空けるペースでも肩の筋肉痛とだるさが全くとれない。まるでわざわざ自分を痛めつけているかのよう。

スキップリストのライブラリもバージョンアップ

アドイン製作の副産物のスキップリストを.net Framework上で実装したライブラリもバージョンアップした。今まで継承先で実装していたメソッドのうち汎用性のあるものをライブラリに移した。具体的にはSkipListNodeクラスのInitializeParametersメソッドとSkipListクラスのSum, Aggregateメソッドとか。

これで可換半群の区間に渡っての総和計算がかなり実装し易くなったはず。

ダウンロードはここから

「身も蓋もない」バージョンアップ

「身も蓋もない」は、実用上の違いはありませんが内部的な処理をいくつかより好ましいものに変えました。できるだけアップデートしてください。

具体的には寄り付き前にログインした場合に受信されるデータの時刻・日付がおかしい問題への対処を変更しました。これに伴い「現時刻より大幅に未来の/過去の~」というメッセージが表示される事がありますが、ザラ場外に表示される限りは気にしなくて問題ありません。

「身も蓋もない」のダウンロードは詳細サイトのファイル置き場から。

今日の戦績

9295Sの売り建て玉はふてねする前に返済買いを9155,指成の指定にしておいたんだけど、指成って大引けじゃなくて前場引けでも有効なのを失念していた。9290で返済でまた薄利。ていうか、後場に下げる事を見越しての指値だったんだが、良く前場引けまでに利益が乗る所まで下がったな。ふてねから目覚めて相場を見たら9260まで下げているんだから悲しくなるけどこれは自分のミスで損にならなかっただけラッキーと思うべき。ネットワークはやはりまだ不調みたいだし、自分の操作ミスも出てしまったし今日はこれで止めておく。いろいろ縁起が悪すぎる。

現在Lv1.00(整数部分がmini発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は+4876円です。

このうち手数料の支払いが624円含まれます。

買い注文回数は7回, 売り注文回数は6回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------

今日の
  • 最近にしては大きめの値幅
  • 強い方向感を持った動き
  • 行って来いの展開
という状況でこの程度の利益って泣きたくなる。最近損を繰り返しているだけに絶好のチャンスをここまで見事に逃すとは呆れ果てるしかない。精進しよう。

以下午前中に書いた愚痴:

何じゃ今日は。

まず9170Sの持ち越しはほとんど意味がなかったけど、寄付き後に下げて+30ほどになった。そこで利確のため返済買いをしたら、散々遅延したあげくに9165で約定しやがった。

これがけちのつき始めで、ひたすらにネットワークが不安定。

前場の9300までとても強い動きで上げていく場面でも、参戦した後長い間相場データが受信できなくなり仕方なく薄利で手仕舞いせざるを得なくなった。その後一度ログアウトしてログインして様子を見てみたら、ログアウトにもログインにも凄く時間がかかった上に既に9300。ひでえ。スルスルと上がっていくだけの場面でロングポジションを取れないなんてそんなんじゃトレードになりゃしねえ。

すごく損した気になって、合理的でないと理解しつつも堪えきれずに、そこで9295S。さすがにトレンドが転換したわけでもないので、小さく押す場面を捕まえれば良いや、と思っていたのだが、ここでまた接続が途切れて相場データが受信できず。再開したらもう9330までいっている。そしてまたデータを受信できなくなる。暗闇の中でやっているようなもの。もう今日は後場に上げ幅を消していく展開と決め付けて、後場に手仕舞う事にしてふてね。まあ例によって強烈な眠さを我慢してのトレードだし。

こういうツールやネットワークの調子が悪いというのもリスクの一つと考えてトレードを控えるべきで、昨日反省した、いつもの参戦すべき理由がない状況で我慢できずに無理やり参戦する癖がこういう形でまた出てしまったという面は確かにある。でも、散々方向感のない動きに損を出させられて苛立たせられ続け、やっと巡ってきた強い方向感のある日にこれじゃあ一体どうやって利益を出せというのか。むがー。

2009年1月6日火曜日

今日の戦績

現在Lv1.00(整数部がmini発注可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-4508円です。

このうち手数料の支払いが1008円含まれます。

買い注文回数は10回, 売り注文回数は11回です。

未返済の建て玉1枚の見込み損益は手数料を含まずに-2048円です。


---------------------------
OK
---------------------------
新年早々負け続け。
前場はGUの後に完全にランダムウォークという、例によって海の向こうで寝ている間に値が決まるパターン。強烈に眠い最悪のコンディションでそこに無理矢理参戦。この時点で少しの損だったが、後場に持ち越した買い建て玉が強い下げに捕まって一気に-12000円くらいの損に。その代わり後場は方向感のある動きをしていたので夕場も使ってどうにか損失を小さくできた。夕場は出来高が少ない割りに上げるだけという簡単な相場だった。参戦するのが遅かったのが悔やまれる。

それにしても、後場では上げている時に定期的に1000枚単位の売り物がぶつけられて強気でロングできないという、日本市場はどんだけ弱気なんだ、という動きだった。昨日のCMEの日経225先物を見習えよ。現物の市場が空いていない状況で9300円台まで行ったぞ。

で、諸々の負けを取り戻すために掟破りの9170S博打持ち越し。これ失敗したらオバマ着任までは頭を冷やすために休みます。いやでもさすがに日経もNYもチャート的に一度大きく下げるよね?下値は切り上げていくとしても。オバマ就任までは基本的に微上げを続けていくという観測が大半だけど、だからと言って総楽観という環境じゃないだろう。

ここから反省:

本当に、方向感なく動いている所に無理やり参戦する癖は改めないと、これじゃパチンコに万札飲み込ませているのと変わらないぞ。それでもパチンコなら射幸心を煽るために定期的に大勝させてくれるので大人のゲームセンターと割り切れば娯楽にもなるけれど、相場で丁半博打をやっても容赦ない結果が突きつけられるだけだ。遊びじゃなくてトレンドをフォローしての投資に徹する事を学ばなければ。

それができなければ、投資は「身も蓋もない」のユーザの皆さんに任せよう。元々自分の投資用に作ったツールじゃなくて、CFSの症状で何も手に付かない状況に絶えられなくて自分に機械的にできるタスクとして簡単なプログラミングを与えるのが目的だったのだからデバッグ以上の目的でトレード自体にのめりこむべきじゃない。戒め戒め。

プロセスに対してプライオリティのルールを設定できるプロセスマネージャ

メモ:
Bill2's Process Managerはプロセスに対してプライオリティのルールを設定できる。しかもルールは通常時と最小化時で別々に設定できる。

Super Cが内部で呼び出すffmpegやmencoderのプライオリティの設定を手動で行っても、一つのファイルのトランスコードが終わって別のファイルのトランスコードに移ると新しいプロセスが起動して元の木阿弥になってしまう。しかも、そこでプライオリティ設定機能付きタスクマネージャを立ち上げてもその起動自体もっさりで煩わしい。

Bill2's Process Managerでこうした問題が解決するはず(これはメモ。まだインストールしていない)。

2009年1月5日月曜日

最近

最近、午後4時くらいに起きて、部屋にいて椅子に座っていてもどうにもだるくて何も手に付かず、その状況が耐え切れずに無理に体を動かして近所のショッピングセンターまで5~6時くらいから自転車で出かけるという事を毎日繰り返している。

肌寒いので自転車をこいでいる間は少し眼と頭がはっきりした気がして束の間の人間らしい時間が得られる。でも、ショッピングセンターではグロッキーになりながら休み休み歩いて、ラウンジで休んだり漫画喫茶で休んだりと休むために外出しているような感じ。週に2,3回しか外出できなかった頃と違って毎日外出しているのだが、むしろ体調は極端に悪い。それに自動的に抵抗して少しアクティブになっている感じ。

今までも、本当に体調が比較的良い状況では家でゆっくりと自然に体を休める事ができたりして、疲労やだるさが極端に強いと却って体を休める事もできずだるさを吹き飛ばそうと体を動かして疲労困憊という悪循環に陥っていた。今は悪循環という程ではないが、やっぱり外出するのが気晴らしにも軽い運動にもならず自分の体を自分で痛めつけているだけとい、一体何をやっているのやら、という状態だ。ただ、やっぱり一日ぐったりしていると休息どころか却って精神的に耐え切れなくなるので、疲れたからといって死ぬわけでもなし、動きたい時には動き休みたい時には休む、それでやっていくしかない。

この10年くらいで、自分の身体に無理に抵抗しないが、わざわざ自分の体の我侭を聞いてやらない(経験上そうしなくても一時的にグロッキーになるが死にやしない事は理解できているので)という行動原理を意識的に確立してきた。まあ認知行動療法の真似事、つまりプログラムの書き換えを自分で自分に対して実践してきたわけだ。できれば、自動的にだるさに抵抗してアクティブに活動しようとしてしまう所まで書き換えてしまえば毎日はすごし易くなるんだろうけれど、それはさすがに本職に認知行動療法を行ってもらわないと無理だろうし、まあそれじゃ休んでるだけの人生になっちゃうし。ドグマチールとか言う安定剤が少しだけそういう方向の効果もあったみたいだし、まあ今のままでやっていけるなら極端に辛くはないので良しとしよう。動いている物はいじるな、と工学の原則にもある。

MKVのavi(例えばXVIDコーデック)への変換

このエントリの続報。

MKVはmediacoderだとVFRでない場合にも上手くトランスコードできない場合があるのだが、やはりCCCP(の中のHaali Media Spliterをmp4やmkvのデコードに用いるのがポイント)を入れてsuper C のDirectshow Decodeオプションをオンにする方法で上手く入った。

基本的にはMediaCoderの方が好きだ。スレッドのプライオリティの設定ができたり、動画のサイズを320x240に指定した上でexpand to fitオプションを選択すれば元動画のサイズに関わらず320x240ぴったりに収まるように拡大縮小される点などが好ましい。しかしMediaCoderで上手く行かないmp4やmkvの場合にはCCCP+Super CのDirectShow Decodeオプションで上手く行くというのが結論でした。

なお、mediacoderの320x240でexpand to fitにする設定の代替としてsuper Cでは4:3でないソースは以下のように設定する。例えば16:9のソースならばvideo sizeとして320:176を選択し、(自動でセットされるが)アスペクト比として16:9を選択する。video sizeとして320:240を選択してアスペクト比として16:9を選択するとmediacoderでexpand to fitにしたのと同じ結果が得られるように見えるが私が使っているiriver lplayer はわざわざ動画のアスペクト比の情報を読むため歪んで再生されてしまう。このため、アスペクト比で嘘をついてはならない。mediacoderと違いアスペクト比が違う複数のソースを同時にバッチ処理できないのと、規格外のアスペクト比に対応できないのが難点だが、とりあえずこれでiriver lplayerで16:9の動画を再生できる。

mimohuta_.zipについて

先日、大発会のデータが受信できないかもしれないとして公開したmimohuta_.zipだが、これは別に大発会専用ではなく、普通に使える最新版と思ってください。

ただ、寄り付き前にログインした場合に、前日夕場の大引けのデータが当日夕場の大引けのデータとして受信される問題に対する対処の方法を変えたので、そのデバッグがあさってまでできません。それまでは正式版とせずmimohuta_.zipのファイル名で配布します。もし問題が生じたら、旧版のmimohuta.zipをお使いください。

それぞれファイルの配布は詳細サイトのファイル置き場から。

今日の戦績

大発会くらいは自分の意思で初めから参加したくて久しぶりに目覚ましをかけたのだが、結局起きられずに10時を大幅に回ってから起きた。225先物は大幅GUの後下落という、海の向こうで寝ている間に値が決まるパターン。いい加減にしろ。ただ、現物の方が上げた後半値程戻すという状況だったので、もう一段の上げはあるかな、と9000円代回復で強い動きをしそうだな、と考えてロングで無理やり参戦。これが全くはまらず、損を出してしまった。下げるにしても狭いレンジでの揉みあいになるとたかをくくって損切りもうまくできなかったが、引け間際にちょっと戻してくれたので、結果は
Lv1.00(整数部分がMini売買可能枚数の半分の切り上げ値)
---------------------------

---------------------------
トータル損益は-3096円です。

このうち手数料の支払いが96円含まれます。

買い注文回数は1回, 売り注文回数は1回です。

未返済の建て玉0枚の見込み損益は手数料を含まずに±0円です。


---------------------------
OK
---------------------------
トレード初めとしてはなんとも幸先悪いのと、それに加えて、大発会から出来高も膨らまず値動きも主体性がなく日本の市場って本当にひでーな、と思った一日でした。

2009年1月4日日曜日

睡眠のリズムがまたおかしくなってきた

せっかく睡眠のリズムが良くなったのに、またおかしくなってきた。

朝から夜になるまではずっと強烈に眠い。ただ、布団に入って寝たくなるような眠さではなく、額と眼の奥がツーンとして集中できず、眼を開けているのがとても辛い。

そういう状況に抵抗しているだけで一日が終わり、今日はもう早く寝ようと思っているのだが、夜中を回ると少しだけ眼と頭が冴えてきて、強烈な眠気はありつつも、少しだけ活動し易くなるものだから眠るタイミングを掴めなくなって夜更かしし気味になる。しかし今までと違って不眠気味にはならず、布団に入ればちゃんと寝付ける。ただ、睡眠の質は最近の改善から逆戻りして、浅い眠りを繰り返しながら午後遅くまで起きれない感じ。朝~昼に起きて起きれない訳でもないのだが、そうしても何も手に付かなくなってしまって、その辛い状況が予想できるので寝ながら時間をやり過ごしたいという気持ちも起きれない一因だが、無理に起きてもグロッキーなのも事実。

高校の頃から次第次第に、眼を開けているのが辛くなって眼が細くなっていった(あと、いつの頃からか目じりの隈が消える事がなくなった)。それで逆に人と話す時には意識的に眼をぎゅっと見開いてオーバーアクションで話すように心がけるようになって、セミナーでの発表の時なんかには却ってそれが随分と役に立ったけど、結局こうなってしまうと意味のない技術になってしまった。いつか再び活かせる日が来る事を願おう。

iGoogleにニュースのフィードをタブでトピック毎にまとめて表示する

iGoogleを使っていて、まあ便利なのだが、Googleニュースガジェットの細かな使い勝手に不満があった。タブが不恰好に大きいし、ヘッドラインのみ表示する事もできない。そこでJun Yamaneさんが公開しているFeed Tabs Readerを使ってみた。

これは複数のRSS/Atomフィードをタブで表示でき、個々のタブのタイトルをカスタマイズできたりフィードの表示方法をヘッドラインだけ表示するのかサマリーも表示するのかカスタマイズできたりと実に良い感じだった。しかも、個別にフィードを追加しなくても、フィードパックと称する機能があってYahoo ニュースのフィード、Google ニュースのフィード、Reuters ニュースのフィードをそれぞれ一括で簡単に追加できる。これが実に便利だった。

ただ、Googleニュースのフィードパックがうまく機能しない。自分でフィードを指定しようとしてみたが、調べてみるとGoogleニュースのフィードは提供されたり提供が停止されたりと紆余曲折を経て現在は提供されていないようだ。ヘルプページにはそれらしき記述もあるのだが、この通りにしてもフィードは取得できない。

結局、ニュースとしてはYahooニュースを使う事にした。Googleニュースは自動検索によるニュースサイトで、将来に期待して使ってきたけれど現状のクオリティはとても低いと思うのと、朝鮮日報が何故か幅を利かせているのも不満だったので、Yahooニュースへ移行する事に不満はない。ただ、Yahooニュースのフィードはヘッドラインのみでサマリーがないようだ。これは改善して欲しい所。

それと、経済関係のニュースを追いかけるために、もう一つFeed Tabs Readerを追加してReutersニュースのフィードパックを設定し、ついでにNikkei Netのフィードのタブも追加した。

ついでに、CNNのフィードBCCのフィードのフィードをそのままiGoogleに追加した。リッチなガジェットの影に隠れているけれど、iGoogleはただのフィードをガジェットと同じように追加する事ができて、設定できるのは表示するエントリ数だけなんだけどなかなかに考えられた動作をするので満足度が高い。まずヘッドラインだけ表示され、脇の+ボタン(ポインタを近づけると出てくる)をクリックするとサマリーが表示され、別のヘッドラインのサマリーを表示すると前に表示していたサマリーは自動で閉じる、と実に勘所を捉えた動作をする。

そんなこんなでガジェットよりもフィードに関してiGoogleをかなりカスタマイズしたのでした。

2009年1月2日金曜日

「身も蓋もない」大発会用

大納会/大発会の大引け時刻が11:10である事に伴って、「身も蓋もない」がデータを正しく受信できない可能性があります。そういう事態に遭遇したら、一度はっちゅう君プラスを終了し、再起動するだけで対応できると思いますが、うまくいかなければ詳細サイトのファイル置き場においておいた mimohuta_.zip をお試しください。

デリゲートの等価性

以前このエントリに書いた事は間違っていた。デリゲートの等価性は参照先のメソッドが等しいかどうかに従って判断される。

簡単なWindows Formsアプリケーションのプロジェクトを作って実験してみた。

Form1にbutton1を配置しそのクリックイベントにbutton1_Clickを指定して、
[1]
 private void button1_Click(object sender, EventArgs e)
 {
  EventHandler A = new EventHandler(a);
  EventHandler B = new EventHandler(a);
  MessageBox.Show((A==B).ToString());
 }
 private void a(object sender, EventArgs e)
 {
 }
と記述する。これで実験してみると、Trueと表示された。

結局、デリゲートへの参照フィールドの等価性を評価する時には、参照先のデリゲートオブジェクトのインスタンスが異なるかどうかに関わらずデリゲートオブジェクトのインスタンスが参照するメソッドが等しければ等しいと判断される。

恐らくこの理解すら間違いで、実状は以下のようになっている。そもそも、以前、win32APIの関数ポインタを引数として取れる場面でデリゲートを渡せる事を知った時随分と奇妙な感じがした。デリゲートが内部的に関数ポインタを保持している特殊なオブジェクトならばこのような事が可能である筈がない。その経験から言って以下の事は正しい。

恐らく、デリゲートオブジェクトのインスタンスなんて物は存在せず、デリゲートフィールドにはメソッドのエントリポイントへの参照(関数ポインタ)が直接格納されているのだろう。

つまり
 EventHandler A = new EventHandler(a);
と書いたからと言って、参照の関係は
 A -> EventHandlerオブジェクトのインスタンス in ヒープ
 EventHandlerオブジェクトのインスタンスが持っている隠蔽された内部のフィールド -> aメソッド
とはなっていなくて、
 A -> aメソッド
となっているわけだ。

C言語の時代にはポインタをアドレスと理解する事が、ポインタの抽象性を破壊するために学習者にとって望ましくないとされつつもポインタ自身抽象概念に徹する事ができていなかったためにそのような理解は結局必要悪であった。

同じ事がデリゲートに対しても言えて、その実状が関数ポインタであるというのは単なる内部実装であってデリゲート自体は抽象概念であるわけだが、それでも内部的実装が関数ポインタである事をC#のユーザは知っている必要があるだろう。どうやらデリゲートオブジェクトのインスタンスという物は存在しないようだから、見た目上クラスのインスタンスを作成する記法と一貫性がある
 EventHandler A=new EventHandler(a);
という記法は完璧なミスリーディングだ。C#の歴史的には後から導入された
 EventHandler A=a;
という記法の方が余程本質的であるという事になる。実際、コードを
[2]
  EventHandler A = a;
  EventHandler B = a;
  MessageBox.Show((A==B).ToString());
と書き換えても結果はTrueであった。Aにはaメソッドへの参照が、Bにもaメソッドへの参照が格納されていると理解すれば、この結果を理解する事は容易い。そして、[1]は見かけによらず[2]と等価なコードであって、デリゲートオブジェクトのインスタンスなるものは生成されはしない。

しかしながらこのような折衷様式を取る事で、Win32APIに関数ポインタと同様にデリゲートを渡す事ができ、かつ、メソッドをオブジェクトでラップしたかのように記述して(以上の考察から分かるように、実際には全くラッピングなんて行われていないのだが)オブジェクト指向言語の範疇でメソッドという概念を整合的に扱う事ができるわけだ。C#の、アカデミックな場面で議論されている最新のプログラミング言語の理論を取り入れながらもJavaと違い実用性のためにはダーティーな内部構造を選ぶ事も辞さないという潔さが良く現れている。アカデミックな側面を持ちつつお高く止まらない、うん、C#は実に良い言語だ。

なお、
[3]
 EventHandler A = delegate(object sender_, EventArgs e_) { a(sender_, e_); };
 EventHandler B = delegate(object sender_, EventArgs e_) { a(sender_, e_); };
 MessageBox.Show((A == B).ToString());
こういうコードを書くと結果はFalse。二つの行それぞれで暗黙に別々のメソッドが生成されているわけだ。匿名メソッドと呼ばれている所以である。

追記:.net ReflectorでSystem.Delegateを見てみたけれど、やっぱりデリゲートはちゃんとしたインスタンス化できるごくごく普通のオブジェクトでC#の言語仕様の中で例外的に扱われているわけではない.。System.Delegateはそれが継承しているObject.Equalsメソッド(それと ==, != 演算子)をオーバーライドしていて、
 internal object _target;
 internal IntPtr _methodPtr;
の二つのフィールドを比較するように実装されているので、参照先のメソッドが一致するかどうかでデリゲートが一致するかどうかが決まっているという訳だ(実際はもう_methodPtrAuxとか_methodBaseとかのフィールドもあってややこしい。ちょっと調べてみたが良く分からん。)。

それでは、どうしてWin32APIにデリゲートを渡せるのかというと、DllImport属性が付されたメソッドに関しては関数ポインタは自動的に__stdcall呼び出し規約が仮定され、他のマネージドな型とアンマネージドな型の間のマーシャリングと同様にデリゲートも、関数ポインタに変換される。具体的には、そのデリゲートを呼び出し、自身は__stdcall呼び出し規約で呼び出し可能な関数(Thunk)が暗黙に作成されて、そこへの関数ポインタへと変換される。決して内部的にデリゲートが関数ポインタそのものなのではなく、やっぱり暗黙の変換プロセスが仲介しているわけだ。ようやくすっきりした。引用したMSDNのページではWin32APIよりもCOMインタフェース寄りの解説になっているので、こっちのページも合わせて参照の事。

まとめると、やっぱり、見た目通りに[1]ではそれぞれの行で異なるEventHandlerのインスタンスが作成される。ただし、EventHandlerのEqualsメソッド, ==, != 演算子はいわゆる値比較の方法をとるようにオーバーライドされている。従ってイベントに+=new EventHandler(a)した後、そのイベントに-=new EventHandler(a)すると、ちゃんとイベントからaメソッド呼び出しが削除される。C#では参照型フィールドの比較は基本的に参照先のインスタンスの比較なので、色々うがった見方をして[2]の方が[1]より本質的と書いたけど、Equalsと ==, != 演算子が値比較でオーバーライドされているのならば、それ自体はよくやる普通の事だから、まあいちゃもんだった。それと、これらの考察に従えば、[1]と等価な[2]でも、暗黙に二つの異なる(しかし==の関係を満たす)EventHandlerのインスタンスが作成されるのだろう(未確認)。

2009年1月1日木曜日

目と額

目と額がツーンとして集中力が極端に低下する状態がこの数週間でとても強まっている。布団に入って寝たくなるような意味での眠気がなくなって睡眠のリズムも整ったため、薬の副作用だと思うようにしていたのだけど、まあ結局は、症状の出かたが変わっただけなんだろうなあ。冬になると寝易くなって逆に過眠気味になるのもいつもの事だし。はあ。

ミニ/ラージの設定をフォーム毎に保持するようにした

今まで「身も蓋もない」をいくら開いても設定は共通するようになっていた。これは「身も蓋もない」をラージ用・ミニ用と並べて表示する時などに便利なのだが、ラージ/ミニの設定も全ての「身も蓋もない」で共通なのは少しまずかった。例えば一つ目の「身も蓋もない」をミニに設定し、二つ目の「身も蓋もない」をラージに設定すると、一つ目の「身も蓋もない」ではミニが選択されているように見えるにも関わらずラージの歩み値・四本値が表示され、ラージの取引が行われてしまう。

この問題を修正して、ミニ/ラージの設定はフォーム毎に保持するように修正した。
修正版は詳細サイトのファイル置き場からどうぞ。

スキップリストの.netでの実装にドキュメントを付けた

どうしてSandcastleを使ってみたかと言うと、スキップリストのライブラリにドキュメントを付けたかったから。昨日年越し蕎麦を食べたくで眠くても無理に起きていたら夜になってから少しだけ目と頭が冴えてきて、それでも苦労しがちだったけど、ドキュメンテーションコメントの書き方とSandcastleについて調べてドキュメントを生成する所までたどり着けた。特に可換半群の総和計算のサンプルコードをドキュメンテーションコメントとして埋め込む事ができた。

今回からこういう.netの開発関係の話題は``.net''のラベルを付ける事にした。

ドキュメントの付いたスキップリストのC#コードあるいは.netアセンブリ形式のライブラリが必要な方は アドイン 「身も蓋もない」の詳細サイトのファイル置き場に置いてありますのでどうぞ。

Sandcastleを使ってみた

SandCastleを使ってみて、自分なりのまとめ。Html Helpのコンパイラを持っていないのとそもそもWEBページとして作成したかったのでそういう設定の例。
  • Sandcastleをインストールする。これはシステム環境変数DXRootを設定するので管理者権限の方が良い。(ユーザ権限でもユーザ環境変数に登録するかもしれないが未確認)
  • Sandcastle Help File Builderをインストールする。管理者権限でインストールしたが、この権限が必須かは未確認。
  • 生成されるヘルプファイルは何もしないと英語・日本語交じりになる。ローカライズするためには現行のバージョン( SandcastleのMay 2008 Release (Version 2.4.10520) と Sandcastle Help File Builder の Version 1.7.0.0)では以下の方法でうまく入った。このエントリから Sandcastle_Localize.zip をダウンロードする。この中のPresentationフォルダの中身のみSandcastleのPresentationフォルダにコピーする。他のフォルダに入っているファイルについては対応する修正が現行バージョンではなされている。ネタ元として参照されているエントリにも色々書いてあるが全て現行バージョンでは対応する修正がなされているためこれだけで十分。
  • Visual C# 2008(私の場合はexpress editionを使用)のツールメニューから``外部ツール'を選択して、以下の設定を登録する。
    • タイトル=Sandcastle Help File Builder
    • コマンド=C:\Program Files\EWSoftware\Sandcastle Help File Builder\SandcastleBuilderConsole.exe
    • 引数=$(ProjectDir)$(TargetName).shfb
    • ``出力ウィンドウを使用''にチェックを入れておく。
    なお、必要ならば``起動時に引数を入力''のチェックも入れる。
  • C#のプロジェクトのプロパティのビルドタブで``XMLドキュメントファイル''にチェックを入れる。XMLファイル名は必ずしも指定しなくて良い。勝手に生成される。またドキュメンテーションコメントを付けていない項目がたくさんある間は警告メッセージが煩いので``警告の表示なし''の横のテキストボックスに1591と書いておく。
  • 一度C#のプロジェクトをビルドする。一応bin/releaseにxmlファイルが出来たか確認する。
  • Sandcastle Help File Builderを開いて``Project''-``New Project From Visual Studio Project''からソリューションまたはプロジェクトを選択。bin/debugとbin/releaseのどちらにあるxmlファイルを使うか聞かれる。普通はbin/releaseが良いと思うのでそう選択する。
  • 多分自動で設定されるけれどFrameworkVersionは自分のプロジェクトに合わせる。HelpFileFormatは``Website''に(他の選択だと対応するHTML Helpのコンパイラが必要)。Languageは``日本語''にすると少しローカライズされる。NamingMethodを``MemberName''にすると生成されるファイルのファイル名が分かり易くなる。PresentationStyleをvs2005にすると現行のMSDNと類似のフォーマットで出力される。ShowMissingNamespacesは``False''にする(あるいは右上にある``Namespaces''で何かしら設定する)。
  • 他にHelpTitle, CopyrightHref, CpyrightText, FeedbackEMailAddress, FeedbackEmailLinkTextをそれぞれ設定すれば表示される内容をカスタムできる。
  • SdkLinkTypeを``None''に、DocumentInheritedMembersを``False''に、DocumentInheritedFrameworkMembersを``False''に設定するとビルドが劇的に早くなるとの情報があるが実際に劇的に早くなるかは未確認。SdkLinkTypeはSDKの(というか.Net Frameworkの)要素にリンクを張る方法を、インターネットのMSDNにするかローカルのヘルプファイルにするかリンクを張らないかの三択で選択するのだが、MSDNと設定してインターネット上のMSDNにリンクするようにするとめちゃくちゃ便利。例えば<see cref="IEnumerable&lt;T&gt;">と書くと対応するMSDNのページにリンクされる。それから、DocumentInheritedMembersやDocumentInheritedFrameworkMembersはポリモルフィズムによって継承によって作成したクラスは継承元のメンバを持つわけだがそれを一覧に表示するかどうか。System.Objectから継承されるメンバなんかも表示されて煩いのでDocumentInheritedFrameworkMembersは切った方が良いかも。DocumentInheritedMembersはお好みで。
  • Sandcastle Help File BuilderのプロジェクトをC#のプロジェクトファイルと同じディレクトリに、プロジェクトのプロパティのアプリケーションタブから確認できる``アセンブリ名''と同じ名前で拡張子を.shfbとして保存する。
  • Visual C# 2008から念のためもう一度プロジェクトをビルド。XMLドキュメンテーションコメントの不備はエラーでなく警告で表示されるので自分で``エラー一覧''タブを開いて確認する。問題なければ、ツールメニューから``Sandcastle Help File Builder''を選択。すごく時間がかかるけれどしばらく待つと
    Completed
    The help output is located at: ほにゃらら
    Build details can be found in ほにゃらら
    というメッセージが出力ウィンドウに表示されて、プロジェクトのフォルダのHelpフォルダの中にドキュメントが生成される。Index.htmlを開いて内容を確認する。