DStream::pricingEngine

Syntax

DStream::pricingEngine(timeColumn, typeColumn, securityType, method, [securityReference], [keyColumn], [extraMetrics])

Details

Creates a pricing engine. For details, see createPricingEngine.

Return value: A DStream object.

Arguments

Examples

if (!existsCatalog("orca")) {
	createCatalog("orca")
}
go
use catalog orca

// If a stream graph with the same name already exists, destroy it first.
// dropStreamGraph('engine')
g = createStreamGraph('engine')

typeList=[0,1,2]
start=2022.07.15
maturity=2072.07.15
issuePrice=100
coupon=0.034
frequency="Semiannual"
dayCountConvention="ActualActual"
bondType="FixedRate"
settlement=2025.04.10
price=0.02
priceType="YTM"

methodList=[<bondDirtyPrice(start, maturity, issuePrice, coupon, frequency, dayCountConvention, bondType, settlement, price, priceType)>,
             <bondAccrInt(start, maturity, issuePrice, coupon, frequency, dayCountConvention, bondType, settlement)>,
             <bondDuration(start, maturity, issuePrice, coupon, frequency, dayCountConvention, bondType, settlement, price, priceType)>]
securityReference= table(take(0 1 2, 100) as type, take(1 2 3 4, 100) as assetType,"s"+string(1..100) as symbol, 2025.07.25+1..100 as maturity, rand(10.0, 100) as coupon, rand(10,100) as frequency,take([1],100) as basis )


g.source("trades", 1000:0, `tradeTime`Symbol`realTimeX`predictY`price,[TIMESTAMP,SYMBOL, DOUBLE, DOUBLE, DOUBLE])
.pricingEngine(timeColumn=`tradeTime, typeColumn=`type, securityType=typeList, method=methodList, securityReference=securityReference, keyColumn=`Symbol, extraMetrics=[<price * predictY>, <coupon+price>])
.sink("output")
g.submit()
go

data = table(take(now(), 100)as tradeTime,"s"+string(1..100) as symbol, rand(10.0, 100) as realTimeX,  rand(10.0, 100) as predictY, rand(10.0, 100) as price)

appendOrcaStreamTable("trades", data)