FC2ブログ

またシステム時刻が勝手に変更されちゃった

以前、勝手にシステム時刻が変更されたということがあったのですが、昨日の夕方5時ごろにも同じ現象が発生しました。幸い、既に自動売買プログラムが終了していた時刻だったのですが、自動売買プログラムの動作中にこの現象が起こってしまうと、夜中に突然マケスピを起動させようとして失敗してしまったり、手仕舞いしないまま自動売買プログラムが終了してしまって強制持ち越しになってしまったりする可能性があるので、大変危険です。そこで、変な時刻を検出したら時刻補正のアプリケーションを起動して修正させるようにしてみました。
これで自動売買中は最低限守られるようになりますが、自動売買中でない場合にこれが起こっても結構ウザいです。ノートンが突然警告を出したり落ちたりしてネットに接続できなくなったり、バックテストで生成したファイルの更新時刻が空の値になってしまいます。もうちょっと何とかならないのかと思います。
スポンサーサイト



Dell Studio15のタッチパッドが勝手にバシバシ押される

Dell Studio15のタッチパッドがこのごろ勝手にバシバシ押されたかのように誤反応します。どうもタッチパッドの右側のパームレフトに手を置いていると、筐体が少し傾いて押されるようになってしまうようです。最近の暑さのせい(といっても今年はかなり涼しいのですが)か、筐体自身も少しずつ曲がってきているらしく、手を置かずとも押されるようになってしまったようです。ちょっとウザいので、タッチパッドを押してもクリックされないように設定を変更しました。ファンクションキーの上のボタンもたまに誤作動しますし、シフトキーの反応もあまり良くなく、このPCはどうも入力廻りがダメっぽいです。
週末のクリック証券モバトレ君のサイトのメンテナンスは、私の自動売買プログラムには特に影響が無かったようなので、今日も売買できると思います。米国株式市場が大幅に上昇して、日経平均先物もかなり高く寄ってくると思うのですが、このごろ大幅GUのときのシステムで負けが多いのでちょっと心配です。

Vistaでシステム時刻が突然勝手に変更された。

私はWindows Vistaの載ったDELLStudio15を使っています。たまに変なことが起こるのですが、今日はどういうわけだか勝手にシステム時刻が変更されてしまいました。ノートンが突然サービス期限切れになってアップデートを開始したのでびっくりしました。
「コンピュータの管理」のシステムログでは1658/09/07 22:25:33に出力されています。ログの中身には 2009/08/03 14:31:34 と書いてありますが、これはグリニッジ標準時らしく、日本時間では23時31分34秒のようです。


システム時間は 2009/08/03 14:31:34 から 1658/09/07 13:25:33 に変更されました。
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Kernel-General" Guid="{a68ca8b7-004f-d7b6-a698-07e2de0f1f5d}" />
<EventID>1</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000010</Keywords>
<TimeCreated SystemTime="1658-09-07T13:25:33.675Z" />
<EventRecordID>81594</EventRecordID>
<Correlation />
<Execution ProcessID="3388" ThreadID="3392" />
<Channel>System</Channel>
<Computer>DELLStudio15</Computer>
<Security UserID="S-1-5-18" />
</System>
- <EventData>
<Data Name="NewTime">1658-09-07T13:25:33.673Z</Data>
<Data Name="OldTime">2009-08-03T14:31:34.268Z</Data>
</EventData>
</Event>


システムログをもう少し詳しく見てみると、どうやらこのごろ頻繁にシステム時間が変更されていたようで、ザラ場中でも30分おきくらいに変更がかかっています。ザラバ中にシステム時刻を変更されてしまうとちょっと困るので、システムの設定を見直そうと思います。

と思って今見てみたら、ちゃんとWindowsタイムサービスは切ってるので、自動補正は為されない筈なんですが……何これorz。

2009.08.04 0:23 追記
どうやらこれが原因?
高精度イベント タイマがサポートされている Windows Vista ベースのコンピュータで、システム時刻が BIOS 時刻と異なる場合がある
どうやらこれによる補正はwindows timeサービスとは異なるサービスで修正されているらしいです。
今までもザラ場中にこのせいでシステム時刻が更新されていたようなのですが、幸いのところそれによる不具合は無かったようです。
ティックのログは5秒ごとに取得していますが、時刻に正確さを期すために、システム時刻の秒数が5の倍数のときにログを記録するという方法をとっています。このせいで、システム時刻が更新されてしまうと、ログが1ティック分飛んでしまうことがありうるのですが、今までもそれで動作していたのでそれ自体は問題無いと思います。
問題は先程のようにいきなり江戸時代の時刻になっちゃったりするケースで、こうなってしまうと自動売買プログラムが勝手にログオフしてしまって強制持ち越しになったりするので、かなり危険です。しかしこれは如何ともし難い可能性が高いですorz。

Obsolete属性

2chのふらっとC#,C♯,C#(初心者用) Part41スレを読んでいたら「obsolete属性」というものがあるということを知りました。ソース中にObsoleteを書いておくと、不要になったクラスやメソッドに印をつけておくことができ、コンパイル時に警告やエラーを出してくれるものなのだそうです。
これまで、自動売買プログラムで古くなった部分は適当にコメントアウトしたり削除したりしていました。また、新しいメソッドを用意したり、引数を追加したときは、古いメソッドの名前を意図的に書き換えてコンパイルエラーを出して、エラーが出たところを修正してゆくという方法をとっていました(シンボルの検索を使う手もあるのですが、編集中のファイルの行番号が変わっても検索結果が追随してくれないので不便でした)。プロジェクト中のソースリスト全てに対して一括で置換することもありましたが、似たような名前のメソッドがあったりすると間違ってしまわないか不安になったりして、途方に暮れることもよくありました。
売買のストラテジーを新しいものにしたいとき、古いストラテジーへの呼び出しを削除できているかどうか不安になることもあります。また、証券会社のWebサイトがリニューアルされたとき、それまでの古いスクレイピング処理を残しつつ、新しいスクレイピング処理を実装する必要があったりして、その度に上記のような処置をしてきました。しかし、コメントアウトする方法だと、たまにフレームワークの補完機能が作動して意図しないスニペットが追加されたりして、保守性に色々と問題がありました。
Obsolete属性を使えばそういうことがかなり解決できると思うので、これからは積極的に使っていこうと思います。
ObsoleteAttribute クラス (System)
不要となった古いクラスやメソッドを残すには? - @IT

inkscapeで用紙よりも大きな画像をインポートすると印刷がおかしくなる?

6月10日のinkscapeの話で、印刷できたと書いたのですが、そのあとで不具合に見舞われました。用紙よりも大きなラスター画像をインポートしていると、それを非表示にしていても印刷がおかしくなってしまうようです。
印刷したものをトレーシングペーパーでトレースして、それをスキャナに取り込んでinkscapeのベクター画像上にビットマップとして貼り付けるという作業をしていたのですが、はじめに印刷したときは大変だと思いました。幸いそのトレース画像はinkscapeで色々書くための下書きのようなもので、下書きが終わったら削除するものだったので、結局はその画像を削除して印刷しなおすことで対処しました。

Inkscapeでラスター画像を挿入しているとpdf出力がおかしくなる?

InkscapeでPDFを出力させようとして「PDF via Cairo (*.pdf)」の形式で保存させてみたのですが、どうもこの方法だとビットマップ画像のサイズが正方形になるように勝手に変更されてしまうようです。縦長のビットマップ画像が入ったsvgファイルをpdfに出力すると、そのビットマップ画像だけが横に引き伸ばされて正方形になってしまいます。
印刷回りが不安定というのをどこかで聞いたことがあったような気がするので、pdfファイルに変換して印刷をpdfビューアにやらせようと思っていたのですが、普通にinkscape上でprintしたらちゃんと問題なく印刷できました。その点に関してはただの杞憂だったのですが、pdf形式での出力がうまくいかないのは、先のことを考えると面倒かもしれないと思います。FreePDFのような、印刷時にpdfを出力するようなデバイスドライバを使えば大丈夫かも知れませんが。

アダプタとバインド

以前、有線LANと無線LAN接続の優先順位を変更しようとして失敗しました。そのときは、TCP/IP接続のインターフェイス メトリックを変更したのですが、どうやらそれ以外にも設定変更しなければならない項目があったようです。
ネットワーク接続のメニューにある詳細設定(N)→詳細設定(S)(同じ名前のメニューが二つある)で出てくる「アダプタとバインド」タブで、接続一覧にある接続名を上下に移動させると優先順位を変更できるようです(Microsoft Technet プロトコルのバインドの順序を変更する、及びMicrosoft サポートオンライン Windows XP および Windows 2000 でネットワーク アダプタのバインドの順序を変更する方法)。
私のPCの場合、ワイヤレスネットワーク接続が最上位になっていたのですが、自動売買をやるときは有線で接続しているので、有線用のローカルエリア接続を最上位に変更してみました。

前のページへ |