OptionCalculator
This table allows custom option pricing based on either user or SR supplied input values.
METADATA
| Attribute | Value |
|---|---|
| Topic | 5030-srse-calculators |
| MLink Token | Internal |
| Product | SRAnalytics |
| accessType | SELECT,UPDATE,INSERT,DELETE |
| MLink Endpoint | MLink-Live |
Table Definition
| Field | Type | Key | Default Value | Comment |
|---|---|---|---|---|
| userName | VARCHAR(24) | PRI | '' | |
| okey_at | enum - AssetType | PRI | 'None' | |
| okey_ts | enum - TickerSrc | PRI | 'None' | |
| okey_tk | VARCHAR(12) | PRI | '' | |
| okey_yr | SMALLINT UNSIGNED | PRI, SEC | 0 | |
| okey_mn | TINYINT UNSIGNED | PRI, SEC | 0 | |
| okey_dy | TINYINT UNSIGNED | PRI, SEC | 0 | |
| okey_xx | DOUBLE | PRI | 0 | |
| okey_cp | enum - CallPut | PRI | 'Call' | |
| vol | DOUBLE | 0 | volatility | |
| volSrc | enum - FieldSrc | 'Default' | ||
| uPrc | DOUBLE | 0 | underlying price | |
| uPrcSrc | enum - FieldSrc | 'Default' | ||
| years | DOUBLE | 0 | yearstoexpiration default uses SR volatility time value | |
| yearsSrc | enum - FieldSrc | 'Default' | ||
| sdiv | DOUBLE | 0 | continuous stock dividend using for pricing | |
| sdivSrc | enum - FieldSrc | 'Default' | ||
| rate | DOUBLE | 0 | discount rate used for pricing | |
| rateSrc | enum - FieldSrc | 'Default' | ||
| exType | enum - ExerciseType | 'None' | exercise type of the option American or European | |
| exTypeSrc | enum - FieldSrc | 'Default' | ||
| effStrike | DOUBLE | 0 | effective strike used for pricing default is okeyStrike | |
| effStrikeSrc | enum - FieldSrc | 'Default' | ||
| symRatio | DOUBLE | 0 | underlying symbol ratio for nonstandard options discrete dividend will be scaled by this factor | |
| symRatioSrc | enum - FieldSrc | 'Default' | ||
| divString | TINYTEXT | '' | discrete dividend string yearsToExpiry years1amt1 years2amt2 or 1 date1amt1 date2amt2 | |
| divSrc | enum - FieldSrc | 'Default' | ||
| modelType | enum - CalcModelType | 'None' | Normal or LogNormal default is product specific | |
| modelTypeSrc | enum - FieldSrc | 'Default' | ||
| prcFramework | enum - PricingFramework | 'None' | None Spot Forward Future Physical default is product specific | |
| prcFrameworkSrc | enum - FieldSrc | 'Default' | ||
| calcPrecision | enum - CalcPrecision | 'Normal' | numerical precision of steps if a numerical method is used more steps will be slower to calculate | |
| incGreeks | enum - YesNo | 'No' | ||
| price | DOUBLE | 0 | price premium | |
| delta | FLOAT | 0 | delta | |
| gamma | FLOAT | 0 | gamma | |
| theta | FLOAT | 0 | theta | |
| vega | FLOAT | 0 | vega | |
| volga | FLOAT | 0 | volga | |
| vanna | FLOAT | 0 | vanna | |
| rho | FLOAT | 0 | rho | |
| phi | FLOAT | 0 | phi | |
| deDecay | FLOAT | 0 | delta decay | |
| error | VARCHAR(32) | '' | ||
| pricerModel | VARCHAR(8) | '' | ||
| timestamp | DATETIME(6) | '2000-01-01' |
PRIMARY KEY DEFINITION (Unique)
| Field | Sequence |
|---|---|
| userName | 1 |
| okey_tk | 2 |
| okey_yr | 3 |
| okey_mn | 4 |
| okey_dy | 5 |
| okey_xx | 6 |
| okey_cp | 7 |
| okey_at | 8 |
| okey_ts | 9 |
SECONDARY INDEX (ExpirationIndex) (Not Unique)
| Field | Sequence |
|---|---|
| okey_yr | 1 |
| okey_mn | 2 |
| okey_dy | 3 |
SELECT TABLE EXAMPLE QUERY
SELECT *
FROM `SRAnalytics`.`MsgOptionCalculator`
WHERE
/* Replace with a VARCHAR(24) */
`userName` = 'Example_userName'
AND
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE') */
`okey_at` = 'None'
AND
/* 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','ICEFEC','ICEFEF','CEQT','TSX','TMX') */
`okey_ts` = 'None'
AND
/* Replace with a VARCHAR(12) */
`okey_tk` = 'Example_okey_tk'
AND
/* Replace with a SMALLINT UNSIGNED */
`okey_yr` = 123
AND
/* Replace with a TINYINT UNSIGNED */
`okey_mn` = 1
AND
/* Replace with a TINYINT UNSIGNED */
`okey_dy` = 1
AND
/* Replace with a DOUBLE */
`okey_xx` = 4.56
AND
/* Replace with a ENUM('Call','Put','Pair') */
`okey_cp` = 'Call';
UPDATE TABLE EXAMPLE QUERY
UPDATE `SRAnalytics`.`MsgOptionCalculator`
SET
/* Replace with a DOUBLE */
`vol` = 4.56,
/* Replace with a ENUM('Default','User') */
`volSrc` = 'Default',
/* Replace with a DOUBLE */
`uPrc` = 4.56,
/* Replace with a ENUM('Default','User') */
`uPrcSrc` = 'Default',
/* Replace with a DOUBLE */
`years` = 4.56,
/* Replace with a ENUM('Default','User') */
`yearsSrc` = 'Default',
/* Replace with a DOUBLE */
`sdiv` = 4.56,
/* Replace with a ENUM('Default','User') */
`sdivSrc` = 'Default',
/* Replace with a DOUBLE */
`rate` = 4.56,
/* Replace with a ENUM('Default','User') */
`rateSrc` = 'Default',
/* Replace with a ENUM('None','American','European','Asian','Cliquet') */
`exType` = 'None',
/* Replace with a ENUM('Default','User') */
`exTypeSrc` = 'Default',
/* Replace with a DOUBLE */
`effStrike` = 4.56,
/* Replace with a ENUM('Default','User') */
`effStrikeSrc` = 'Default',
/* Replace with a DOUBLE */
`symRatio` = 4.56,
/* Replace with a ENUM('Default','User') */
`symRatioSrc` = 'Default',
/* Replace with a TINYTEXT */
`divString` = 'dummy tiny text',
/* Replace with a ENUM('Default','User') */
`divSrc` = 'Default',
/* Replace with a ENUM('None','LogNormal','Normal') */
`modelType` = 'None',
/* Replace with a ENUM('Default','User') */
`modelTypeSrc` = 'Default',
/* Replace with a ENUM('None','Spot','Forward','Future','Physical') */
`prcFramework` = 'None',
/* Replace with a ENUM('Default','User') */
`prcFrameworkSrc` = 'Default',
/* Replace with a ENUM('None','Low','Normal','High','Custom') */
`calcPrecision` = 'Normal',
/* Replace with a ENUM('None','Yes','No') */
`incGreeks` = 'No',
/* Replace with a DOUBLE */
`price` = 4.56,
/* Replace with a FLOAT */
`delta` = 1.23,
/* Replace with a FLOAT */
`gamma` = 1.23,
/* Replace with a FLOAT */
`theta` = 1.23,
/* Replace with a FLOAT */
`vega` = 1.23,
/* Replace with a FLOAT */
`volga` = 1.23,
/* Replace with a FLOAT */
`vanna` = 1.23,
/* Replace with a FLOAT */
`rho` = 1.23,
/* Replace with a FLOAT */
`phi` = 1.23,
/* Replace with a FLOAT */
`deDecay` = 1.23,
/* Replace with a VARCHAR(32) */
`error` = 'Example_error',
/* Replace with a VARCHAR(8) */
`pricerModel` = 'Example_pricerModel',
/* Replace with a DATETIME(6) */
`timestamp` = '2022-01-01 12:34:56.000000'
WHERE
/* Replace with a VARCHAR(24) */
`userName` = 'Example_userName'
AND
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE') */
`okey_at` = 'None'
AND
/* 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','ICEFEC','ICEFEF','CEQT','TSX','TMX') */
`okey_ts` = 'None'
AND
/* Replace with a VARCHAR(12) */
`okey_tk` = 'Example_okey_tk'
AND
/* Replace with a SMALLINT UNSIGNED */
`okey_yr` = 123
AND
/* Replace with a TINYINT UNSIGNED */
`okey_mn` = 1
AND
/* Replace with a TINYINT UNSIGNED */
`okey_dy` = 1
AND
/* Replace with a DOUBLE */
`okey_xx` = 4.56
AND
/* Replace with a ENUM('Call','Put','Pair') */
`okey_cp` = 'Call';
INSERT TABLE EXAMPLE QUERY
INSERT INTO `SRAnalytics`.`MsgOptionCalculator`(
/* Replace with a VARCHAR(24) */
`userName`,
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE') */
`okey_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','ICEFEC','ICEFEF','CEQT','TSX','TMX') */
`okey_ts`,
/* Replace with a VARCHAR(12) */
`okey_tk`,
/* Replace with a SMALLINT UNSIGNED */
`okey_yr`,
/* Replace with a TINYINT UNSIGNED */
`okey_mn`,
/* Replace with a TINYINT UNSIGNED */
`okey_dy`,
/* Replace with a DOUBLE */
`okey_xx`,
/* Replace with a ENUM('Call','Put','Pair') */
`okey_cp`,
/* Replace with a DOUBLE */
`vol`,
/* Replace with a ENUM('Default','User') */
`volSrc`,
/* Replace with a DOUBLE */
`uPrc`,
/* Replace with a ENUM('Default','User') */
`uPrcSrc`,
/* Replace with a DOUBLE */
`years`,
/* Replace with a ENUM('Default','User') */
`yearsSrc`,
/* Replace with a DOUBLE */
`sdiv`,
/* Replace with a ENUM('Default','User') */
`sdivSrc`,
/* Replace with a DOUBLE */
`rate`,
/* Replace with a ENUM('Default','User') */
`rateSrc`,
/* Replace with a ENUM('None','American','European','Asian','Cliquet') */
`exType`,
/* Replace with a ENUM('Default','User') */
`exTypeSrc`,
/* Replace with a DOUBLE */
`effStrike`,
/* Replace with a ENUM('Default','User') */
`effStrikeSrc`,
/* Replace with a DOUBLE */
`symRatio`,
/* Replace with a ENUM('Default','User') */
`symRatioSrc`,
/* Replace with a TINYTEXT */
`divString`,
/* Replace with a ENUM('Default','User') */
`divSrc`,
/* Replace with a ENUM('None','LogNormal','Normal') */
`modelType`,
/* Replace with a ENUM('Default','User') */
`modelTypeSrc`,
/* Replace with a ENUM('None','Spot','Forward','Future','Physical') */
`prcFramework`,
/* Replace with a ENUM('Default','User') */
`prcFrameworkSrc`,
/* Replace with a ENUM('None','Low','Normal','High','Custom') */
`calcPrecision`,
/* Replace with a ENUM('None','Yes','No') */
`incGreeks`,
/* Replace with a DOUBLE */
`price`,
/* Replace with a FLOAT */
`delta`,
/* Replace with a FLOAT */
`gamma`,
/* Replace with a FLOAT */
`theta`,
/* Replace with a FLOAT */
`vega`,
/* Replace with a FLOAT */
`volga`,
/* Replace with a FLOAT */
`vanna`,
/* Replace with a FLOAT */
`rho`,
/* Replace with a FLOAT */
`phi`,
/* Replace with a FLOAT */
`deDecay`,
/* Replace with a VARCHAR(32) */
`error`,
/* Replace with a VARCHAR(8) */
`pricerModel`,
/* Replace with a DATETIME(6) */
`timestamp`
)
VALUES(
'Example_userName',
'None',
'None',
'Example_okey_tk',
123,
1,
1,
4.56,
'Call',
4.56,
'Default',
4.56,
'Default',
4.56,
'Default',
4.56,
'Default',
4.56,
'Default',
'None',
'Default',
4.56,
'Default',
4.56,
'Default',
'dummy tiny text',
'Default',
'None',
'Default',
'None',
'Default',
'Normal',
'No',
4.56,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
1.23,
'Example_error',
'Example_pricerModel',
'2022-01-01 12:34:56.000000'
);
DELETE TABLE EXAMPLE QUERY
DELETE FROM `SRAnalytics`.`MsgOptionCalculator`
WHERE
/* Replace with a VARCHAR(24) */
`userName` = 'Example_userName'
AND
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE') */
`okey_at` = 'None'
AND
/* 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','ICEFEC','ICEFEF','CEQT','TSX','TMX') */
`okey_ts` = 'None'
AND
/* Replace with a VARCHAR(12) */
`okey_tk` = 'Example_okey_tk'
AND
/* Replace with a SMALLINT UNSIGNED */
`okey_yr` = 123
AND
/* Replace with a TINYINT UNSIGNED */
`okey_mn` = 1
AND
/* Replace with a TINYINT UNSIGNED */
`okey_dy` = 1
AND
/* Replace with a DOUBLE */
`okey_xx` = 4.56
AND
/* Replace with a ENUM('Call','Put','Pair') */
`okey_cp` = 'Call';
Doc Columns Query
SELECT * FROM SRAnalytics.doccolumns WHERE TABLE_NAME='OptionCalculator' ORDER BY ordinal_position ASC;