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

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

PR

Calendar

Category

カテゴリ未分類

(0)

卓球

(1278)

盆太鼓・盆踊り

(425)

トイドローン

(21)

その他

(340)

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

(0)

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

(87)

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

(24)

本日の取引

(1292)

デイトレ結果(勝ち)

(365)

デイトレ結果(負け)

(591)

夜間取引結果

(15)

今週の取引

(480)

今月の取引

(103)

明日の監視銘柄

(54)

株関連

(55)

草野球

(36)

Keyword Search

▼キーワード検索

Comments

KNIGHT@ Re[1]:愛好会の小さな盆踊り 令和7年・秋(11/23) 浪速の投げ師さんへ いつもお世話になり有…
浪速の投げ師@ Re:愛好会の小さな盆踊り 令和7年・秋(11/23) 遅くまで、お疲れさんでした。 久しぶり…
KNIGHT@ Re:2025年度 関西場所卓球大会(09/27) たかみさん、 こちらこそお世話になりまし…
たかみ@ お礼:2025年度 関西場所卓球大会(09/27) 助っ人、ありがとうございました。 おかげ…
KNIGHT@ Re[1]:第66回 協会杯争奪卓球大会(07/12) ゆう!さんへ 有難うございます。 私は昔…
ゆう!@ Re:第66回 協会杯争奪卓球大会(07/12) 3部優勝おめでとう! 卓山会って、山本高…
accelwin@ Re[4]:【卓球】シェイクのラケット反転について(11/23) KNIGHTさんへ ご返信ありがとうございます…
KNIGHT@ Re[1]:【卓球】シェイクのラケット反転について(11/23) accelwinさんへ ブログへのコメント、どう…
Nov 10, 2007
XML
水曜日に発覚した 「同日に同一銘柄を複数回買った時に監視してくれない」 バグの
修正をはじめとした各問題に対応するため、ソースコードを大幅に修正しました。

上記問題は、監視銘柄が売却され実際のDBからは監視銘柄が削除されているのに
メモリー空間に保持しているDataTableにはまだレコードが残っていて、あたかも
「まだ監視している」状態に見えたから次に同じ銘柄を購入しても既に監視中だと
みなされて新しく監視を始めてくれないというのが原因でした。
これは私のVB2005に対するスキルが低いから起こったバグで、恥ずかしい事です。

この問題を解決する為に、定期的にDataTableを作り直す(TableAdapterからFillする)と

でもテストをするとガンガン落ちまくり(滝汗)。
しかも「ユーザーがハンドル出来ない例外」になり、いわゆるWindowsアプリが
「ご迷惑をお掛けいたします」などとダイアログを出して突然落ちる状態なので
何もログが残らず最悪な状態です。。。
今までこんな事が無かったので焦ったのですが、どうやら監視銘柄のDataTableに対して
非同期処理が追加したり変更したりしてる中で別の処理がDataTableをクリアしたり
読み直したりする事によって起こる「マルチスレッドのハンドリングミス」に
よるものみたいです。
私はJavaでもマルチスレッド処理は苦手な分野なので焦りました。。。
とりあえず割り込まれたら整合性がおかしくなる所を「SyncLockブロック」で囲み
同期化させました。Javaでいうところのsynchronizedブロックです。

「マズい。。。」と落胆しましたが、もしかしたらDataTableのクリアやFillを
行わなくてもDataTableのAcceptChangeメソッドによって綺麗にしてくれるか、
あるいは削除されたレコードにはちゃんとRowStateに削除された印が付いているので
読み飛ばせば良いのでは無いかと思いました。
但しこれについては現在マケスピにログイン出来ない状態なので今晩試そうと思います。


それ以外に「分かっていたけど運用でカバーしていた」不具合・・・と言うか未実装の
ロジックがありました。

まずは 「同一銘柄の買い増し対応」 。既に売り注文のための監視を行っている銘柄を
買い増した時、株数が合わなくなって理想的な動きをしてくれないと予想してました。
例えば10株購入してその監視を行っている時、さらに5株買い増した場合。
トレーリングストップにより10株が売れてから5株の監視を始めていたと思います。
しかも5株を購入後の値動きは繁栄されず、10株が売れた時点からのトレーリングストップで
売られます。それではいけないと思い、買いましたら監視銘柄の株数も増やすように
ロジックを加えました。これで今まで敢えて避けていた同一銘柄の買い増し」が
出来るようになりました。

次に 「差金取引の問題」
持ち越した銘柄を当日売って、売った資金でその銘柄を買い戻した場合、当日中は
売る事が出来ません。でも今のKATSなら必死で売り注文を出して私の携帯にむやみに
メールを送りつけるでしょう。売れないのに(苦笑)。
それが予想出来たので運用でカバーしていました。
でも今回、保有銘柄一覧を取得した時にその銘柄に「注文可能か」を表す区分があって
それを判断して注文不可の保有銘柄なら監視しないというロジックを追加しました。
本来売る事が出来ない差金取引をする事自体が問題かも知れませんが、もしそうなっても
KATSがおかしな動作をしないようにしました。

あと修正したのは、

・設定に関する一式を外部ファイルに移動
・メッセージ文言などをリソースファイルに移動
・メソッドを然るべきクラスへ移動(リファクタリング)
・信頼された証明書の登録


などです。思いっきり手を入れました。
メンテ性向上、一元管理などを理由にしたものが多いです。
今後KATSのソースコードを他の方に見せる機会も多くなると思っているので
少しでも汎用化させて私のローカル設定を外出しするようにしています。

かなり大掛かりに修正したので今晩は念入りにテストしないと来週が恐いです。
明日は卓球の試合ですが、明日の晩までもつれこんだら厄介なので今晩完成させないと。





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

Last updated  Nov 10, 2007 12:49:26 PM
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


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

© Rakuten Group, Inc.
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: