⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rq_fpml_product_equityoption.c

📁 风险财务控制库 Risk Quantify is an open source financial library, with a focus on managing the risk of fi
💻 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 + -