待辦事項 #9943

空の株価データベースからの更新で株価データが欠落する
啟用日期: 2007-02-14 07:35 最後更新: 2007-03-05 18:54

回報者:
負責人:
類型:
狀態:
關閉
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
修正
檔案:
2

細節

空の株価データベースからの更新で2006年9月27日の株価デ
ータが欠落する。

Ticket History (3/15 Histories)

2007-02-14 07:39 Updated by: panacoran
評語
Logged In: YES
user_id=6886

空のデータベースから1996年1月4日以降のデータを更新すると、
18個くらい株価データが欠落する。
2007-02-14 07:39 Updated by: panacoran
  • File 1738: Price.csv is attached
2007-02-14 07:41 Updated by: panacoran
  • File 1739: 0101.csv is attached
2007-02-14 07:41 Updated by: panacoran
  • 處理結果 Update from to Accepted
2007-02-14 10:08 Updated by: None
評語
Logged In: NO

t_sugaです。

私の、ADSL環境では、
1996年以降の株価データを
ダウンロードするのに半日以上掛かります。
もし、欠落データを埋める機能が有ると
有りがたいです。
2007-02-14 20:52 Updated by: panacoran
  • 處理結果 Update from Accepted to 修正
評語
Logged In: YES
user_id=6886

春分の日と秋分の日の計算式が間違ってました。欠落したのは秋
分の日や秋分の日と間違って判定された日のデータです。
2007-02-15 18:43 Updated by: None
評語
Logged In: NO

1996年以降、
日経225平均株価のデータ数で
比較したところ、欠落は無いように思います。

ところで、
Accessなどを使ってデータベース上から
日経先物、TOPIX先物、JAQ指数を削除した場合
何か不都合が生じますか?
例えば、コードと銘柄名、4本値の対応が崩れるとか
実際に、削除したら崩れました。
2007-02-15 19:37 Updated by: panacoran
評語
Logged In: YES
user_id=6886

BrandTableクラスのコメントに書いてあるんですが、銘柄の削除
が起きないことを前提にしてプログラムを書いてあります。
2007-02-20 14:17 Updated by: None
評語
Logged In: NO

Protraのホームページからダウンロードした株価データベースと
空の株価データベースから更新した株価データベースのBrandテー
ブルを比較すると、空の株価データベースの方が1318個少な
いです。
例えば極洋(1301)などは、東証1部のデータしかダウンロ
ード出来ていません。大証1部、名証1部が漏れています。
                     --> t_suga
2007-02-20 22:12 Updated by: None
評語
Logged In: NO

色々とデータが欠落するのは
下記のように無尽蔵の市場コードが
年代によって異なるからですか?
          --> t_suga

■1996年~1999年12月21日
11 東証1部
12 東証2部
20 大証
30 名証
91 JAQ

■1999年12月22日~
13 東証マ 追加

■2000年6月19日~
23 大証ヘ 追加


■2005年~
11 東証1部
12 東証2部
13 東証マ
14 外国
21 大証1部
22 大証2部
24 大証ヘ
31 名古1部
32 名古2部
91 JAQ

2007-02-20 22:51 Updated by: panacoran
評語
Logged In: YES
user_id=6886

調査ありがとうございます。以前私が調査したときと、ずいぶん
様子が変わっていますね。これだと今のプログラムでは最新の市
場コードしかひろえません。
2007-02-21 18:10 Updated by: None
評語
Logged In: NO

t_sugaです。
下記のソースを、
以下のように修正したのですが、いかがでしょう。

MujinzouDataStream.cs
MujinzouAdjustDataStream.cs

switch (tokens[2])
{
case "11":
r.MarketId = Db.MarketId.Tokyo1;
break;
case "12":
r.MarketId = Db.MarketId.Tokyo2;
break;
case "13":
r.MarketId = Db.MarketId.Mothers;
break;
case "14":
r.MarketId = Db.MarketId.TokyoForeign;
break;
case "20"://この大証は1部、2部混在しているので1部にする
case "21":
r.MarketId = Db.MarketId.Osaka1;
break;
case "22":
r.MarketId = Db.MarketId.Osaka2;
break;
case "23":
case "24":
r.MarketId = Db.MarketId.Hercules;
break;
case "30"://この名証は1部、2部混在しているので1部にする
case "31":
r.MarketId = Db.MarketId.Nagoya1;
break;
case "32":
r.MarketId = Db.MarketId.Nagoya2;
break;
case "91":
r.MarketId = Db.MarketId.Jasdaq;
break;
default:
return null;
}
2007-02-21 21:27 Updated by: panacoran
評語
Logged In: YES
user_id=6886

そのままいただきました。ついでに2004年9月27日を境に出来高が
1000倍狂うバグにも対応しました。

もう一つついでに、昔の無尽蔵のデータは一部のレコードが重複
していて、それに対応していたのですが、もうなくなった可能性
が高いので、そのコードも削除しました。
2007-02-22 10:19 Updated by: None
評語
Logged In: NO

t_sugaです。

まだ、下記のエラーが出るので
PriceDataUpdator.csは、
以前に戻した方が良さそうです。

OleDbError:
INSERT INTO Price VALUES(6670, #2005/02/28#, 1235, 1240,
1232, 1233, 35)
Index #0
Message: インデックス、主キー、またはリレーションシップで値
が重複しているので、
テーブルを変更できませんでした。
重複する値のあるフィールドの値を変更するか、インデックスを
削除してください。
または重複する値を使用できるように再定義してください。
NativeError: -105121349
Source: Microsoft JET Database Engine
SQLState: 3022
2007-03-05 18:54 Updated by: panacoran
  • Ticket Close date is changed to 2007-03-05 18:54
  • 狀態 Update from 開啟 to 關閉
評語
Logged In: YES
user_id=6886

別の問題なので#10040に移動します。

Attachment File List

  • Price.csv(162KB)
    • Protraでダウンロードしたデータ
  • 0101.csv(142KB)
    • 某ソフトでダウンロードしたデータ

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入