この内容は、CQGを使いたくてPCを新調されたばかりの人には、「え〜」という内容なのだが、現在ある状況をまず伝えたい。 セミナーでPCのスペックを確認されて購入された方には申し訳ないと思うが、すでに導入されたものに対しては、うまく使いこなしていくことを伝えるのが重要だと思う。なお、日本株をトレードされる方には当てはまらない。なぜなら圧倒的に株価の変化が少ないからだ。これから購入するPCで問題になることはほとんど無いと思う。
今週末から始まる米株ナイトライブセミナーから、CQGのバージョンを6x6057から7x1812へアップデートする予定で作業を進めている。
(注) これを書いた早々、今週末は、6x6057を使うことになった。また性能問題を解消すべくCQGのカスタマサポートと動いている。
当初、9月にリプレースしたPCの性能を、馬渕さんに実マーケットで評価していただき、使える性能のレベルであることを確認していただいたのだが、GOOG(Google)が上場した辺りからTick回数の多い銘柄が増えてきた。
この状況は性能の見込み外れも出てきてしまった。
CQGのStudy Recalculation Modeの設定を、EveryTickとしていたところ、CQG単体でCPUのオーバーロードを起こしてしまった。つまりCPU使用率がほとんど100%に張り付く状況だ。
負荷が高い銘柄のひとつであるGOOG。RIMM、TASRなど、1分間のTick回数が継続的に100〜200回を記録すると、処理が追いつかなくなる
CQGのStudy Recalculation Modeの設定を End of Bar に変更したところ、単体での動作は何とかなるようになったが、問題はTradeStreamの実行。
セミナーで配布するレベル2ウィンドウを二つ表示する状況では、CQGのチャート遅れがかなり顕在化する。ましてGOOGのレベル2を表示したりするとその遅れは加速する。
FixWeekの設定を一切止めれば、かなり改善の効果があるのだが、それではせっかくのCQGが泣いてしまう。
左はマーケット開始直後、右は開始13分後にレベル2ウィンドウをひとつ削除。TradeStreamのCPU負荷が急に落ちたのが見える。画像をクリックすると拡大。
開始3分後。左は6x6057、右は7x1812だがFixWeekは無し。共にCPU使用率は100%に近いが、なんとか動いている。画像をクリックすると拡大。
今、セミナーに向けて検討しているのは、TradeStreamのレベル2ウィンドウの表示はひとつにする。
CQGのバージョンは、6x6057および7x1812の両方を用意して、主に6x6057を使用するが、7x1812での性能も確認してもらう。
などだ。何しろ遅れたチャートでは、ライブトレードセミナーに疑問符が付いてしまう。
さて、今回の問題はどこから来ているのだろうか?
ひとつにはCQGのバージョンが6x8、7x1と上がっていく過程で、マクロの実行性能がどこかの部分で低下していることだ。(実は7x1は、6x8よりも改善されている)
もうひとつの問題は、Pentium4にもありそうだ。
というのは、Pentium4がPrescotte世代になって、ただでさえ長いパイプラインが、更に長くなった。このことは命令分岐の予測に失敗すると、大きなペナルティを払うことになる。たくさんのチャートを開くことや株価の変化が起こるということは、それだけ分岐予測の失敗の可能性が高くなる。
馬渕さんが自宅で使われているAthlon64 3800+では、特に問題ないという。もちろんCPU使用率はかなり高い。
Athlon64はパイプラインを比較的短く収めてCPUの1サイクル辺りの実行効率(IPC)を高めてきた。この結果、高負荷環境でのタスク切り替え性能が高いという。つまりトレード向けのCPUになる。
ところが、Athlon64(更にメモリがデュアルチャネル)を搭載したメーカー製PCは皆無の状態。我々も価格、大きさ、サポートを考えて、Dell GX280をチョイスしてきた。
しかし、7x1812で性能を出し切るには、厳しいものとなっている。
これからCQGを使うことを前提にPCを購入する人はどうしたらよいだろうか?
自作(ようはパーツからPCを組み立てる)可能な方はAthlon64の高クロック版、あるいは価格が跳ね上がってしまうし音も五月蝿くなってしまうが、XeonやOpteronなどのDualプロセッサ構成であれば、性能を満足できるだろう。
来年後半には、ひとつのCPUの中に、二つのCPUコアを収めるものがリリースされる。
現時点でメーカー製となると、Intelのトップレンジ(Pentium4 Model560(3.6GHz)、Pentium4EE 3.46GHz、あるいは Xeon 3.60F GHz)のチョイス。選択肢はかなり狭い。
もうひとつは、少し操作性が悪くなるが、CQGと執行ソフトを別PCにする。
最後に、消極的な選択肢だが、高Tickな銘柄。つまり1分間に200回を超えるような銘柄は表示しない(トレードしない)。更に表示するチャート数やStudyは、CPU性能の範囲内に抑える。
いつまで継続できるか不明だが、6x6057を使い続ける。(でもいつかはアップデートの日はやってくる。)
あまり、良い話を書くことが出来ないのだが、最後にひとつだけ、良くなる話を書いておく。CQGをナスダックマーケットで使っていると、メモリ消費量の増大に悩んでいる人がかなり多いと思う。
今回の性能問題を調査している過程で、CQGよりコード変更の提案を受けた。
この変更を加えた上で、CQGのStudy Recalculation Modeの設定を、End of Bar に変更すると、CQGのメモリ消費が抑えられることを確認した。
メモリ不足になって、PCの動作が緩慢になるよりは、状況の改善を図ることが出来る。これを修正したマクロライブラリは、近いうちにメンバーズサービスで公開するようにしたい。
ただし、副作用がある。6x6057ではPeak系マクロのガイドライン表示が、ローソク足1本分遅れる。
7x1812では、PeakGap/PeakBdyのMarkItによる着色が、ローソク足1本分遅れる。FixWeekはローソク足1本分遅れる。いいことには、やはり裏があった。
コメント