GetFlexSpreadPrice
METADATA
| Attribute | Value |
|---|---|
| Topic | 3480-mlink-custom |
| MLink Token | RiskCalc |
| Product | SRFlex |
| accessType | SELECT,UPDATE,INSERT,DELETE |
Table Definition
| Field | Type | Key | Default Value | Comment |
|---|---|---|---|---|
| userName | VARCHAR(24) | PRI | '' | |
| calcId | INT | PRI | 0 | |
| uPrc | DOUBLE | 0 | live uPrc on arrival if not supplied | |
| fixedPremUPct | DOUBLE | 0 | premium as a percent of the underlying price required if a leg with strikeTypePctVariable is included can be zero | |
| incGreeks | enum - YesNo | 'No' | whether greeks should be computed | |
| ticker_at | enum - AssetType | 'None' | underlier ticker all legs must have the same underlier ticker | |
| ticker_ts | enum - TickerSrc | 'None' | underlier ticker all legs must have the same underlier ticker | |
| ticker_tk | VARCHAR(12) | '' | underlier ticker all legs must have the same underlier ticker | |
| sprdPrem | DOUBLE | 0 | spread premium | |
| sprdDelta | FLOAT | 0 | delta | |
| sprdGamma | FLOAT | 0 | gamma | |
| sprdTheta | FLOAT | 0 | theta | |
| sprdVega | FLOAT | 0 | vega | |
| sprdVolga | FLOAT | 0 | volga | |
| sprdVanna | FLOAT | 0 | vanna | |
| sprdRho | FLOAT | 0 | rho | |
| sprdPhi | FLOAT | 0 | phi | |
| calcDetail | TINYTEXT | '' | calculation details | |
| error | TINYTEXT | '' | overall error for the calculation | |
| timestamp | DATETIME(6) | '1900-01-01 00:00:00.000000' | ||
| DiscreteDividendList | JSON | 'JSON_ARRAY()' | ||
| LegsList | JSON | 'JSON_ARRAY()' |
PRIMARY KEY DEFINITION (Unique)
| Field | Sequence |
|---|---|
| userName | 1 |
| calcId | 2 |
JSON Block (DiscreteDividendList)
| Field | Type | Comment |
|---|---|---|
| date | enum - date | |
| amount | enum - amount |
JSON Block (LegsList)
| Field | Type | Comment |
|---|---|---|
| okey | enum - okey | should be in OSI root format strike can be zero for the variable strike leg |
| side | enum - BuySell | |
| ratio | enum - ratio | leg ratio |
| strikeType | enum - StrikeType | DollarAmt Percent or PctVariable exactly one leg can be PctVariable |
| flexTypeOut | enum - FlexType | reflects the type of flex decoded from the okey root |
| vYearsOut | enum - vYearsOut | volatility years to expiry |
| dYearsOut | enum - dYearsOut | calendar days to expiry 3650 |
| sdivOut | enum - sdivOut | continuous stock dividend used for pricing |
| rateOut | enum - rateOut | discount rate used for pricing |
| effStrikeOut | enum - effStrikeOut | effective strike will be the implied surface strike if strikeTypePctVariable |
| sVolOut | enum - sVolOut | leg surface volatility |
| sPrcOut | enum - sPrcOut | leg surface price |
| deltaOut | enum - deltaOut | delta |
| gammaOut | enum - gammaOut | gamma |
| thetaOut | enum - thetaOut | theta |
| vegaOut | enum - vegaOut | vega |
| volgaOut | enum - volgaOut | volga |
| vannaOut | enum - vannaOut | vanna |
| rhoOut | enum - rhoOut | rho |
| phiOut | enum - phiOut | phi |
| errorOut | enum - errorOut | leg error if any |
CREATE TABLE EXAMPLE QUERY
CREATE TABLE `SRFlex`.`MsgGetFlexSpreadPrice` (
`userName` VARCHAR(24) NOT NULL DEFAULT '',
`calcId` INT NOT NULL DEFAULT 0,
`uPrc` DOUBLE NOT NULL DEFAULT 0 COMMENT 'live uPrc on arrival (if not supplied)',
`fixedPremUPct` DOUBLE NOT NULL DEFAULT 0 COMMENT 'premium as a percent of the underlying price. required if a leg with strikeType=PctVariable is included (can be zero).',
`incGreeks` ENUM('None','Yes','No') NOT NULL DEFAULT 'No' COMMENT 'whether greeks should be computed',
`ticker_at` ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY') NOT NULL DEFAULT 'None' COMMENT 'underlier ticker (all legs must have the same underlier ticker)',
`ticker_ts` ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFE','ICEUS') NOT NULL DEFAULT 'None' COMMENT 'underlier ticker (all legs must have the same underlier ticker)',
`ticker_tk` VARCHAR(12) NOT NULL DEFAULT '' COMMENT 'underlier ticker (all legs must have the same underlier ticker)',
`sprdPrem` DOUBLE NOT NULL DEFAULT 0 COMMENT 'spread premium ($)',
`sprdDelta` FLOAT NOT NULL DEFAULT 0 COMMENT 'delta',
`sprdGamma` FLOAT NOT NULL DEFAULT 0 COMMENT 'gamma',
`sprdTheta` FLOAT NOT NULL DEFAULT 0 COMMENT 'theta',
`sprdVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'vega',
`sprdVolga` FLOAT NOT NULL DEFAULT 0 COMMENT 'volga',
`sprdVanna` FLOAT NOT NULL DEFAULT 0 COMMENT 'vanna',
`sprdRho` FLOAT NOT NULL DEFAULT 0 COMMENT 'rho',
`sprdPhi` FLOAT NOT NULL DEFAULT 0 COMMENT 'phi',
`calcDetail` TINYTEXT NOT NULL DEFAULT '' COMMENT 'calculation details',
`error` TINYTEXT NOT NULL DEFAULT '' COMMENT 'overall error for the calculation',
`timestamp` DATETIME(6) NOT NULL DEFAULT '1900-01-01 00:00:00.000000',
`DiscreteDividendList` JSON NOT NULL DEFAULT JSON_ARRAY() CHECK(JSON_VALID(DiscreteDividendList)),
`LegsList` JSON NOT NULL DEFAULT JSON_ARRAY() CHECK(JSON_VALID(LegsList)),
PRIMARY KEY USING HASH (`userName`,`calcId`)
) ENGINE=SRSE DEFAULT CHARSET=LATIN1 COMMENT='';
SELECT TABLE EXAMPLE QUERY
SELECT
`userName`,
`calcId`,
`uPrc`,
`fixedPremUPct`,
`incGreeks`,
`ticker_at`,
`ticker_ts`,
`ticker_tk`,
`sprdPrem`,
`sprdDelta`,
`sprdGamma`,
`sprdTheta`,
`sprdVega`,
`sprdVolga`,
`sprdVanna`,
`sprdRho`,
`sprdPhi`,
`calcDetail`,
`error`,
`timestamp`,
`DiscreteDividendList`,
`LegsList`
FROM `SRFlex`.`MsgGetFlexSpreadPrice`
WHERE
/* Replace with a VARCHAR(24) */
`userName` = 'Example_userName'
AND
/* Replace with a INT */
`calcId` = 5;
UPDATE TABLE EXAMPLE QUERY
UPDATE `SRFlex`.`MsgGetFlexSpreadPrice`
SET
/* Replace with a DOUBLE */
`uPrc` = 4.56,
/* Replace with a DOUBLE */
`fixedPremUPct` = 4.56,
/* Replace with a ENUM('None','Yes','No') */
`incGreeks` = 'No',
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY') */
`ticker_at` = 'None',
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFE','ICEUS') */
`ticker_ts` = 'None',
/* Replace with a VARCHAR(12) */
`ticker_tk` = 'Example_ticker_tk',
/* Replace with a DOUBLE */
`sprdPrem` = 4.56,
/* Replace with a FLOAT */
`sprdDelta` = 1.23,
/* Replace with a FLOAT */
`sprdGamma` = 1.23,
/* Replace with a FLOAT */
`sprdTheta` = 1.23,
/* Replace with a FLOAT */
`sprdVega` = 1.23,
/* Replace with a FLOAT */
`sprdVolga` = 1.23,
/* Replace with a FLOAT */
`sprdVanna` = 1.23,
/* Replace with a FLOAT */
`sprdRho` = 1.23,
/* Replace with a FLOAT */
`sprdPhi` = 1.23,
/* Replace with a TINYTEXT */
`calcDetail` = 'dummy tiny text',
/* Replace with a TINYTEXT */
`error` = 'dummy tiny text',
/* Replace with a DATETIME(6) */
`timestamp` = '2022-01-01 12:34:56.000000',
/* Replace with a JSON */
`DiscreteDividendList` = '{"key": "value"}',
/* Replace with a JSON */
`LegsList` = '{"key": "value"}'
WHERE
/* Replace with a VARCHAR(24) */
`userName` = 'Example_userName'
AND
/* Replace with a INT */
`calcId` = 5;
INSERT TABLE EXAMPLE QUERY
INSERT INTO `SRFlex`.`MsgGetFlexSpreadPrice`(
/* Replace with a VARCHAR(24) */
`userName`,
/* Replace with a INT */
`calcId`,
/* Replace with a DOUBLE */
`uPrc`,
/* Replace with a DOUBLE */
`fixedPremUPct`,
/* Replace with a ENUM('None','Yes','No') */
`incGreeks`,
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY') */
`ticker_at`,
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFE','ICEUS') */
`ticker_ts`,
/* Replace with a VARCHAR(12) */
`ticker_tk`,
/* Replace with a DOUBLE */
`sprdPrem`,
/* Replace with a FLOAT */
`sprdDelta`,
/* Replace with a FLOAT */
`sprdGamma`,
/* Replace with a FLOAT */
`sprdTheta`,
/* Replace with a FLOAT */
`sprdVega`,
/* Replace with a FLOAT */
`sprdVolga`,
/* Replace with a FLOAT */
`sprdVanna`,
/* Replace with a FLOAT */
`sprdRho`,
/* Replace with a FLOAT */
`sprdPhi`,
/* Replace with a TINYTEXT */
`calcDetail`,
/* Replace with a TINYTEXT */
`error`,
/* Replace with a DATETIME(6) */
`timestamp`,
/* Replace with a JSON */
`DiscreteDividendList`,
/* Replace with a JSON */
`LegsList`
)
VALUES(
'Example_userName',
5,
4.56,
4.56,
'No',
'None',
'None',
'Example_ticker_tk',
4.56,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
'dummy tiny text',
'dummy tiny text',
'2022-01-01 12:34:56.000000',
'{"key": "value"}',
'{"key": "value"}'
);
DELETE TABLE EXAMPLE QUERY
DELETE FROM `SRFlex`.`MsgGetFlexSpreadPrice`
WHERE
/* Replace with a VARCHAR(24) */
`userName` = 'Example_userName'
AND
/* Replace with a INT */
`calcId` = 5;
Doc Columns Query
SELECT * FROM SRFlex.doccolumns WHERE TABLE_NAME='GetFlexSpreadPrice' ORDER BY ordinal_position ASC;