債券のさまざまな側面に基づいて、「CPR」機能を見つけています。
現在の式は次のとおりです。
SELECT All
a.[CUSIP NUMBER],
CPR,
a.[POOL PREFIX],
a.[POOL NUMBER],
a.[POOL TYPE],
a.[CURRENT MM],
a.[CURRENT YY],
a.[ISSUE MM],
a.[ISSUE DD],
a.[ISSUE YY],
a.[MATURITY MM],
a.[MATURITY DD],
a.[MATURITY YY],
a.[SELLER NAME],
a.[SELLER STREET],
a.[SELLER CITY],
a.[SELLER STATE],
a.[SELLER ZIP],
a.[ORIGINAL WA COUPON],
a.[SD SECURITY TYPE],
a.[SD INTEREST RATE],
a.[SD POOL PREFIX],
a.[SD POOL NUMBER],
a.[CURRENT WA COUPON],
a.[CURRENT BALANCE],
a.[ORIGINAL WA MATURITY],
a.[CURRENT WA MATURITY],
a.[PASS THRU RATE],
a.[CURRENT FACTOR],
b.[CURRENT FACTOR] as AprilFactor,
b.[ORIGINAL BALANCE],
MonthlyRate,
Payment,
InterestPayment,
Principle,
ScheduledFace,
PreviousFace,
ScheduledFactor,
SMM
INTO March2013CPR
FROM dbo.mbs022013 a
JOIN dbo.mbs032013 b ON a.[CUSIP NUMBER] = b.[CUSIP NUMBER]
CROSS APPLY (Select (a.[PASS THRU RATE]*.01)/12) CA(MonthlyRate)
CROSS APPLY (Select (a.[CURRENT BALANCE] * ((MonthlyRate)/((1-(1/power(1+ MonthlyRate, a.[CURRENT WA MATURITY]))))))) CA2(Payment)
Cross Apply (Select a.[CURRENT BALANCE] * MonthlyRate) CA3 (InterestPayment)
Cross Apply (Select Payment - InterestPayment) CA4 (Principle)
Cross Apply (Select a.[ORIGINAL BALANCE] * a.[CURRENT FACTOR]) CA5 (PreviousFace)
CROSS APPLY (Select PreviousFace - Principle) CA6(ScheduledFace)
Cross Apply (Select ScheduledFace/a.[ORIGINAL BALANCE]) CA7 (ScheduledFactor)
Cross Apply (Select 100 * (1-(b.[CURRENT FACTOR]/ScheduledFactor))) CA8(SMM)
Cross Apply (Select (1-(power(1-SMM/100,12)))*100) CA9 (CPR)
WHERE a.[CURRENT WA MATURITY] != 0 and a.[CURRENT BALANCE] != 0
各債券の CPR 値を含む新しいテーブルにポートフォリオ全体を掲載できるように、相互適用を通じて計算しました。この関数は数か月のデータに対して機能しましたが、今月は次のように返されました。
Msg 8117, Level 16, State 1, Line 49
Operand data type varchar is invalid for multiply operator.
これは、3 月の関数を計算しています。3 月のファイルは、2 月のファイルと 3 月のファイルの情報を使用します。ただし、1月と2月のデータを使用する2月のファイルと、4月と3月のデータを使用する4月のファイルの関数は正しいため、どちらのファイルにも問題はないと思います。
49 行目は次の行です。
Cross Apply (Select a.[ORIGINAL BALANCE] * a.[CURRENT FACTOR]) CA5 (PreviousFace)
修正方法はありますか?:-D
アップデート:
以下にデータの例を示します。
CUSIP NUMBER Original Balance Current Factor Pass Thru Rate Current Balance
31416HAB1 00000325972000 0.19556008 04.500 00000063747109
31416HAB1 00003749061700 0.11487645 05.000 00000430678890
31416HAC9 00002164121900 0.15490762 05.500 00000335238974
31416HAD7 00000274716900 0.22204878 06.000 00000061000552
31416HAE5 00018198400200 0.10905233 06.000 00001984577976
現在の WA 成熟度の範囲は 0 ~ 360 です。