📄 rq_fpml_product_equityoption.c
字号:
/*** rq_fpml_product_equityoption.c**** Written by Brett Hutley - brett@hutley.net**** Copyright (C) 2001 Brett Hutley**** This file is part of the Risk Quantify Library**** Risk Quantify is free software; you can redistribute it and/or** modify it under the terms of the GNU Library General Public** License as published by the Free Software Foundation; either** version 2 of the License, or (at your option) any later version.**** Risk Quantify is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU** Library General Public License for more details.**** You should have received a copy of the GNU Library General Public** License along with Risk Quantify; if not, write to the Free** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*/#include "fpml/rq_fpml_product_equityoption.h"#include <stdlib.h>#include <string.h>/* -- structures --------------------------------------------------- */struct rq_fpml_product_equityoption { const char *underlying_instrument_id; double strike_price; long number_of_options; double option_entitlement;};/* -- globals ------------------------------------------------------ */const char *rq_fpml_product_equityoption_product_type = "equityOption";/* -- code --------------------------------------------------------- */static void rq_fpml_product_equityoption_free(void *product_data){ struct rq_fpml_product_equityoption *p = (struct rq_fpml_product_equityoption *)product_data; if (p->underlying_instrument_id) free((char *)p->underlying_instrument_id); free(p);}intrq_fpml_product_equityoption_write_xml(void *product_data, rq_stream_t output_stream){ struct rq_fpml_product_equityoption *p = (struct rq_fpml_product_equityoption *)product_data; int status = 0; rq_stream_write_string(output_stream, "<equityOption>"); rq_stream_write_string(output_stream, "<productType>americanCallStock</productType>"); rq_stream_write_string(output_stream, "<buyerParty>"); rq_stream_write_string(output_stream, "<partyReference href=\"#partyB\"/>"); rq_stream_write_string(output_stream, "</buyerParty>"); rq_stream_write_string(output_stream, "<sellerParty>"); rq_stream_write_string(output_stream, "<partyReference href=\"#partyA\"/>"); rq_stream_write_string(output_stream, "</sellerParty>"); rq_stream_write_string(output_stream, "<optionType>Call</optionType>"); rq_stream_write_string(output_stream, "<underlying>"); rq_stream_write_string(output_stream, "<description>STMicroelectronics N.V. ordinary shares</description>"); rq_stream_write_string(output_stream, "<instrumentId instrumentIdScheme=\"\">STM FP</instrumentId>"); rq_stream_write_string(output_stream, "<clearanceSystem>SICOVAM</clearanceSystem>"); rq_stream_write_string(output_stream, "</underlying>"); rq_stream_write_string(output_stream, "<strike>"); rq_stream_write_string(output_stream, "<strikePrice>32</strikePrice>"); rq_stream_write_string(output_stream, "</strike>"); rq_stream_write_string(output_stream, "<numberOfOptions>150000</numberOfOptions>"); rq_stream_write_string(output_stream, "<optionEntitlement>1.00</optionEntitlement>"); rq_stream_write_string(output_stream, "<equityExercise>"); rq_stream_write_string(output_stream, "<equityAmericanExercise>"); rq_stream_write_string(output_stream, "<commencementDate>"); rq_stream_write_string(output_stream, "<adjustableDate>"); rq_stream_write_string(output_stream, "<unadjustedDate>2001-07-13</unadjustedDate>"); rq_stream_write_string(output_stream, "<dateAdjustments>"); rq_stream_write_string(output_stream, "<businessDayConvention>NONE</businessDayConvention>"); rq_stream_write_string(output_stream, "</dateAdjustments>"); rq_stream_write_string(output_stream, "</adjustableDate>"); rq_stream_write_string(output_stream, "</commencementDate>"); rq_stream_write_string(output_stream, "<expirationDate>"); rq_stream_write_string(output_stream, "<adjustableDate>"); rq_stream_write_string(output_stream, "<unadjustedDate>2001-09-27</unadjustedDate>"); rq_stream_write_string(output_stream, "<dateAdjustments>"); rq_stream_write_string(output_stream, "<businessDayConvention>NONE</businessDayConvention>"); rq_stream_write_string(output_stream, "</dateAdjustments>"); rq_stream_write_string(output_stream, "</adjustableDate>"); rq_stream_write_string(output_stream, "</expirationDate>"); rq_stream_write_string(output_stream, "<latestExerciseTime>"); rq_stream_write_string(output_stream, "<hourMinuteTime>17:15</hourMinuteTime>"); rq_stream_write_string(output_stream, "<businessCenter>GBLO</businessCenter>"); rq_stream_write_string(output_stream, "</latestExerciseTime>"); rq_stream_write_string(output_stream, "<latestExerciseTimeType>Other</latestExerciseTimeType>"); rq_stream_write_string(output_stream, "<equityExpirationTimeType>Close</equityExpirationTimeType>"); rq_stream_write_string(output_stream, "<!--(%FpML_EquityAmericanExercise)-->"); rq_stream_write_string(output_stream, "<equityMultipleExercise>"); rq_stream_write_string(output_stream, "<!--(%FpML_EquityMultipleExercise)-->"); rq_stream_write_string(output_stream, "<integralMultipleExercise>1</integralMultipleExercise>"); rq_stream_write_string(output_stream, "<minimumNumberOfOptions>1</minimumNumberOfOptions>"); rq_stream_write_string(output_stream, "<maximumNumberOfOptions>150000</maximumNumberOfOptions>"); rq_stream_write_string(output_stream, "</equityMultipleExercise>"); rq_stream_write_string(output_stream, "</equityAmericanExercise>"); rq_stream_write_string(output_stream, "<automaticExerciseApplicable>true</automaticExerciseApplicable>"); rq_stream_write_string(output_stream, "<equityValuation>"); rq_stream_write_string(output_stream, "<valuationTimeType>Close</valuationTimeType>"); rq_stream_write_string(output_stream, "</equityValuation>"); rq_stream_write_string(output_stream, "<settlementCurrency>EUR</settlementCurrency>"); rq_stream_write_string(output_stream, "<settlementPriceSource>OfficialClose</settlementPriceSource>"); rq_stream_write_string(output_stream, "<settlementType>Physical</settlementType>"); rq_stream_write_string(output_stream, "<failureToDeliverApplicable>true</failureToDeliverApplicable>"); rq_stream_write_string(output_stream, "</equityExercise>"); rq_stream_write_string(output_stream, "<equityPremium>"); rq_stream_write_string(output_stream, "<payerPartyReference href=\"#partyB\"/>"); rq_stream_write_string(output_stream, "<receiverPartyReference href=\"#partyA\"/>"); rq_stream_write_string(output_stream, "<paymentAmount>"); rq_stream_write_string(output_stream, "<currency>EUR</currency>"); rq_stream_write_string(output_stream, "<amount>405000</amount>"); rq_stream_write_string(output_stream, "</paymentAmount>"); rq_stream_write_string(output_stream, "<paymentDate>"); rq_stream_write_string(output_stream, "<unadjustedDate>2001-07-17</unadjustedDate>"); rq_stream_write_string(output_stream, "<dateAdjustments>"); rq_stream_write_string(output_stream, "<businessDayConvention>NONE</businessDayConvention>"); rq_stream_write_string(output_stream, "</dateAdjustments>"); rq_stream_write_string(output_stream, "</paymentDate>"); rq_stream_write_string(output_stream, "<pricePerOption>2.70</pricePerOption>"); rq_stream_write_string(output_stream, "</equityPremium>"); rq_stream_write_string(output_stream, "<methodOfAdjustment>CalculationAgent</methodOfAdjustment>"); rq_stream_write_string(output_stream, "<extraordinaryEvents>"); rq_stream_write_string(output_stream, "<mergerEvents>"); rq_stream_write_string(output_stream, "<shareForShare>AlternativeObligation</shareForShare>"); rq_stream_write_string(output_stream, "<shareForOther>CancellationAndPayment</shareForOther>"); rq_stream_write_string(output_stream, "<shareForCombined>CancellationAndPayment</shareForCombined>"); rq_stream_write_string(output_stream, "</mergerEvents>"); rq_stream_write_string(output_stream, "<nationalisationOrInsolvency>CancellationAndPayment</nationalisationOrInsolvency>"); rq_stream_write_string(output_stream, "</extraordinaryEvents>"); rq_stream_write_string(output_stream, "</equityOption>"); return status;}rq_fpml_product_t rq_fpml_product_equityoption_alloc(){ struct rq_fpml_product_equityoption *p = (struct rq_fpml_product_equityoption *)calloc(1, sizeof(struct rq_fpml_product_equityoption)); rq_fpml_product_t product = _rq_fpml_product_alloc( rq_fpml_product_equityoption_product_type, p, rq_fpml_product_equityoption_write_xml, rq_fpml_product_equityoption_free ); return product;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -