会社員KNIGHTの趣味三昧(卓球・盆太鼓・色々!)

会社員KNIGHTの趣味三昧(卓球・盆太鼓・色々!)

PR

Calendar

Category

カテゴリ未分類

(0)

卓球

(1194)

盆太鼓・盆踊り

(407)

トイドローン

(21)

その他

(334)

■■■■■■↓以下は凍結カテゴリー↓■■■■■■

(0)

KATS(自動売買プログラム)

(87)

「VB.NETで自動売買」入門

(24)

本日の取引

(1292)

デイトレ結果(勝ち)

(365)

デイトレ結果(負け)

(591)

夜間取引結果

(15)

今週の取引

(480)

今月の取引

(103)

明日の監視銘柄

(54)

株関連

(55)

草野球

(36)

Keyword Search

▼キーワード検索

Comments

accelwin@ Re[4]:【卓球】シェイクのラケット反転について(11/23) KNIGHTさんへ ご返信ありがとうございます…
KNIGHT@ Re[1]:【卓球】シェイクのラケット反転について(11/23) accelwinさんへ ブログへのコメント、どう…
accelwin@ Re:【卓球】シェイクのラケット反転について(11/23) 61歳でカットマンに挑戦し、2カ月目に突…
KNIGHT@ Re[1]:単身赴任を終え兵庫に戻ります(06/28) Tomohiro Takahashiさんへ コメント有難う…
Tomohiro Takahashi@ Re:単身赴任を終え兵庫に戻ります(06/28) お疲れ様でした。そのうち、私も頑張って…
KNIGHT@ Re[1]:第1回 日中杯 SpinOnline(WSS団体戦)(04/14) fukufuku1789さんへ いえいえ。むしろ私が…
fukufuku1789 @ Re:第1回 日中杯 SpinOnline(WSS団体戦)(04/14) 一緒に試合に出てくださりありがとうござ…
KNIGHT@ Re[1]:第15回 朝霧オープン卓球大会(チームマッチ)(01/21) fukufuku1789さんへ お疲れ様でした。今回…
fukufuku1789 @ Re:第15回 朝霧オープン卓球大会(チームマッチ)(01/21) 惜しい試合が多かったですね。 また卓球し…
KNIGHT@ Re[3]:2023年度台東区オープン年代別後期団体戦(12/10) マニャさんへ コメントどうも有難うござい…
Dec 18, 2007
XML
取引なし


なし
【総合損益】
時価評価額  86,536円 (-413,464円)/500,000円(うちクリック証券への入金額:111,055円)

今日はログを見る限り、昨日と全く同じ現象で異常終了していました。
昨日より少しログを出すようにしていたので何となく見えてきました。

いや、それより今日はマルチスレッド処理の方法をさらに変更する必要がありました。

先週末まで動いていた処理は、自動購入や自動売却というそれぞれの処理がマルチスレッドで



 自動購入スレッド
 →DDEクライアントのインスタンス化
 →イベントハンドラに割り付け
 →更新通知開始
 ・・・イベントハンドラは全銘柄×全項目のイベントを直列に処理する

※同一スレッドから呼び出されたイベントハンドラは並列に実行されないので、
  銘柄数や監視項目数が増えたらとてもじゃないが実行に堪えない


このお陰で相場が開いて時間が経つにつれて処理が遅延し、最終的には更新通知が止まって
しまうような形になり途中から購入してくれなくなっていました。

この問題を解決するために、土日で考えたのが「監視銘柄毎に新しいスレッドを立てて
並列に処理しよう」という方法でした。
しかし月・火と即異常終了するありさま。作りこみの甘さもありますが、この方法には


(2)監視銘柄毎にスレッドを作成(昨日・今日)
 自動購入スレッド
 →DDEクライアント用のスレッド開始
  →DDEクライアントのインスタンス化
  →イベントハンドラに割り付け
  →更新通知開始


※イベントハンドラは複数スレッドが同時に動くが、スレッド数が25までなので
  それ以上になるとロックされる(監視から外れない限り次の銘柄の監視が出来ない)


どちらにしてもこのままだと監視出来る銘柄が20銘柄に満たなくなり、自動売買として
全く意味を成さなくなります。どちらにしても作り変える必要が出たのです。

そこで今回考えたのが、監視銘柄のインスタンスは同一スレッドで作成するが
更新通知を受けた時の処理を並列で行うという方法です。
更新処理の1つ1つは非常に短時間で終わるので、いくらスレッドの最大が25個でも
どんどん消化されて進みます。

(3)更新イベント毎に新しいスレッドを開始
 自動購入スレッド
 →DDEクライアントのインスタンス化
 →イベントハンドラに割り付け
 →更新通知開始
 ・・・イベントハンドラは新しいスレッドを開始させ、更新処理を行う

※1銘柄の1項目毎に新しいスレッドを開始する。更新処理は25個しか同時に動かないが、
 1つ1つが短時間で終わる処理なので実質並行処理が行われる。
 銘柄数・項目数に上限が無いのでプログラムも書きやすい


机上の空論なら駄目なので、テスト用プログラムを作成してパフォーマンスを測定して
みました。すると、シングルスレッドに比べておよそ6倍の速度で処理を行う事が
分かりました。ちなみに2番目の方法は、スレッドが25個に達した時点で実際問題として
処理が止まってしまうので結局使えませんでした。

現在、この新方式を自動購入に組み込んでテスト中です。
テストを終えて、自動売却にも反映させてから日記をアップしようと思いましたがそれだと
夜中になると思ったので先に投稿しました。
これから開発とテストに集中して、自信を持って明日の相場に臨めたらなぁと淡い夢を
抱いています。
結果は明日の日記を楽しみにして下さい(笑)。
ちなみに明日は飲み会なので詳細報告は夜中です。出来るだけ速報は入れたいと思います。






お気に入りの記事を「いいね!」で応援しよう

Last updated  Dec 18, 2007 09:41:11 PM
コメント(1) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: