待辦事項 #21454

バージョン2.0とバージョン1.5のPtSimでシステムプログラムの動作が異なる

啟用日期: 2010-04-18 18:37 最後更新: 2010-05-02 14:59

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

細節

Ver2.0でProtraがより進化することを期待して黙々とテストしています。
Protra2.0でのチャート上でのポインタ位置でテクニカル値を表示する点、とても良いです。

さて、Ver2.0でのシステムプログラムの後方互換においてバグを発見しました。
初めはIF文法においておかしなことになっているように見えたのですが
どうやらCode関数で取得した値がVer1.5ではInt型、
Ver2.0ではStr型と判別されているようです。

添付するptファイルでご確認下さい。

Ver1.5での結果
5401 新日本製鐵 96/01/04 5401
5401 新日本製鐵 96/01/04 Code=5401
5401 新日本製鐵 96/01/04 codenum=5401
正常に終了しました。

Ver2.0での結果
5401 新日本製鐵 96/01/04 5401
5401 新日本製鐵 96/01/04 Code=string5401
5401 新日本製鐵 96/01/04 codenum=string5401
正常に終了しました。

自分はCode関数を利用する自前の関数を多数作成していますので、
Int型からStr型に変換するだけでも大変手間がかかります。
特に不都合が無ければ、Code関数だけでなく、
Ver2.0でVer1.5までのシステムプログラムの後方互換を維持して頂きたく、お願いします。

Ticket History (3/9 Histories)

2010-04-18 18:37 Updated by: None
  • New Ticket "バージョン2.0とバージョン1.5のPtSimでシステムプログラムの動作が異なる" created
2010-04-18 18:41 Updated by: None
評語
失礼しました、アカウントが無いとファイル添付できないようですね。
これまで何件かバグ報告をさせて頂きました知りませんでした。すみません。
単純なものなので、以下に記載させて頂きます。

--------------------------------------------------
require "TIlib"

# 初期化または更新
if ! $__INIT__
	$__INIT__ = 1

	codenum = Code

	PrintLog(codenum)

	if Code == 5401
		PrintLog("Code=5401")
	elsif Code == "5401"
		PrintLog("Code=string5401")
	else
		PrintLog("Code=else")
	end

	if codenum == 5401
		PrintLog("codenum=5401")
	elsif codenum == "5401"
		PrintLog("codenum=string5401")
	else
		PrintLog("codenum=else")
	end

end
2010-04-18 20:27 Updated by: panacoran
  • 處理結果 Update from to Accepted
  • 負責人 Update from (無) to panacoran
  • 里程碑 Update from (無) to バージョン2.0
評語

将来、証券コードに記号が入ってくるらしいので、それに備えて内部的に証券コードを数字ではなく文字列で扱うようにしました。ですが、組み込み関数の仕様が変わってしまったのはバグです。直します。

2010-04-20 00:24 Updated by: None
評語
>将来、証券コードに記号が入ってくるらしい
初めて知りました。4桁数字ではそろそろ足りないとは思っていましたが。
その際はご対応宜しくお願いします。

ところでVer2.0の正式リリースはいつごろを予定でしょうか?
差し支えなければご回答お願いします。
2010-04-21 00:58 Updated by: panacoran
評語

「らしい」だったのが決定になっていますね。http://www.tse.or.jp/sicc/code_ssme.pdf

いつかはCode関数の返値を文字列に変更せざるを得ないので、この際2.0からCode関数の返値を文字列にしたいのですがダメですかね? intが良ければ(int)Codeと返値をintにキャストするだけです。

バージョン2.0のリリースの予定は今年中です。時間が取れて気分が乗っているときにしか開発しないので歩みが遅いんです。

2010-04-22 01:07 Updated by: None
評語
では2.0からCode関数の戻り値は文字列で実装で構いません。
自作のコード判定関数は当面はキャストで凌ぎ、そのうち文字列対応します。

ついでと言ってはなんですが、キャストの方法の確認です。
整数型のキャストが(int)、実数型のキャストが(float)であることは
TIlib.ptから確認済みで実際に自作関数でも利用していますが、
文字列型のキャストは(string)で合ってますか?
文字列型のキャストだけ実装していないのであれば、実装をお願いします。

Ver2.0の完成、楽しみに待ってます。
2010-04-22 07:22 Updated by: panacoran
評語

確かに文字列型へのキャストはないですね。実装します。

そういえばマニュアルにキャストについて書いてないんですよね。これも何とかしないといけませんね。

2010-04-28 07:31 Updated by: panacoran
評語

文字列型への型キャストはありました。(string)でできます。

2010-05-02 14:59 Updated by: panacoran
  • 狀態 Update from 開啟 to 關閉
  • Ticket Close date is changed to 2010-05-02 14:59

Attachment File List

No attachments

編輯

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