Ticket #19479

DMI計算で0除算をする時がある

Open Date: 2009-11-07 15:34 Last Update: 2010-03-04 23:51

Reporter:
(Anonymous)
Owner:
Type:
Status:
Closed
Component:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

DMI_next計算時に0除算をする時がある。

例えば、 $DMI = DMI_new(14, 14, 0) では

1805 飛島建設 09/01/08 runtime error in \TIlib.pt:582: divided by 0

となる。 該当行は以下だが dx = Abs(obj80 - obj90) / (obj80 + obj90) このとき、obj80==0、obj90==0 の値が入っている。

Ticket History (3/9 Histories)

2009-11-07 15:34 Updated by: None
  • New Ticket "DMI計算で0除算をする時がある" created
2010-01-15 23:15 Updated by: panacoran
  • Owner Update from (None) to panacoran
  • Resolution Update from None to Accepted
Comment

報告ありがとうございます。
確かにほとんど値動きのない期間に0除算してしまいます。
+DIと-DIの移動平均が両方0のときはDXを100%として計算するようにします。

2010-01-17 19:06 Updated by: panacoran
  • Resolution Update from Accepted to Fixed
Comment

直したバージョンをスナップショットpt-100117として公開しました。
試してみてください。

2010-02-03 00:45 Updated by: None
Comment

対応ありがとうございました。 エラーは出なくなりました。 ただ、元からそのようですが、 new(14,14,0)で初期化したチャート表示が証券会社のツールと違うようです。 なにか計算方法が違うような? また、new(14,14,0)はCutlerRSIと思っていたのですが、 認識は合ってますか?

2010-02-03 00:47 Updated by: None
Comment

失礼しました。 RSI_new(14, 14, 0) ではなく RSI_new(14, 0) です。

2010-02-03 02:34 Updated by: panacoran
Comment

はい、RSIのデフォルトはCutlerのです。

どの指標の定義にも出来高がない日などの例外に対する言及がないので、
その扱いは実装者の判断に依ります。
たぶん証券会社のツールと違うのは、出来ない日があるとか、
何日も値動きがないとか、そういう銘柄の指標だと思います。
TIlibでは、一応それっぽい数字が出るようにしてますけど、
ほかのツールとの互換性は気にしていません。
もし、そういう銘柄でないのに表示が違うものがあったら教えてください。直します。

2010-02-03 23:16 Updated by: None
Comment

寝ぼけながら書いたため、途中から支離滅裂になってました。本当に申し訳ない。
RSIではなく、DMIでした。どうしてRSIになってしまったのやら・・・

チャート表示が証券会社ツールと異なるのはDMI(14,14,0)です。
例えば、5401新日鐵の直近3ヶ月のチャートで比較した場合、
SBIのHSBI、松井のネットストックと比べてPDI、MDI、ADXの全てが微妙に異なる軌道を描きます。
勿論、SBIのHSBIと松井のネットストックもそれぞれ異なる軌道となります。
ただし、松井のネットストックと野村のジョイエクスプレスでは同じとなります。
ネットストックとジョイエクスプレスは開発元が同じですので、
これはpanacoran様の言うとおり、実装者の判断の違いに因るものと考えられます。

0除算のような致命的なものではないので、このままで問題無いと思います。
ご対応、ありがとうございました。

2010-02-04 08:22 Updated by: panacoran
Comment

まあ同じワイルダーの指標ですから間違えることもあるのかなと。

幸い野村ジョイの口座を持っていましたので、ジョイエクスプレスで確認してみました。
ワイルダーの定義を忠実に実装しているようです。Wilder DMI(14)つまりDMI_new(14, 14, 1)と比べてみてください。
まったく同じ軌跡を描いていることが確認できると思います。

2010-03-04 23:51 Updated by: panacoran
  • Status Update from Open to Closed
  • Milestone Update from (None) to バージョン1.5 (closed)
  • Ticket Close date is changed to 2010-03-04 23:51
Comment

問題ななそうなので完了にしますね。

Attachment File List

No attachments

Edit

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