Page: 1 | Go to End | |
Author | Topic:Alcuni dubbi sul Tutorial Vanilla Interest Swap della User Guide | 1359 Views |
2 July 2014 at 3:25am
Buonasera a tutti coloro che seguono le attività di questo Forum,
disturbavo perchè stavo vedendo ed analizzando i Tutorials disponibili nella User Guide di Fairmat (io sto utilizzando, in particolare, la Versione Academic).
In particolare stavo studiando il Tutorial VANILLA INTEREST SWAP e ho un dubbio: fra i vari oggetti del problema che si devono inserire nell'ambiente Parameters & Functions c'è anche la Analytic Function RateFun che, immagino sia la funzione FRA poi utilizzata per stilizzare i payoff per la controparte contrattuale B del contratto, ma non ho idea di come scriverla.
Mi spiego meglio: io vado nell'ambiente Parameters & Functions e provo ad inserire una nuova Analytic Function, che si dovrà chiamare appunto RateFun, ma come devo scriverla la sua espressione nel campo "Expression f(x1, ..., xn) ="?
Ho cercato on-line un esempio di template simile al problema proposto ma non ho trovato nulla che possa aiutarmi.
Qualcuno potrebbe gentilmente darmi una mano?
2 July 2014 at 10:49am
Buongiorno,
in generale una "analitic function" è una funzione che genera un output in relazione all'inserimento di uno (x1) o più (x1, x2, ..., xn) argomenti.
Fairmat prevede due tipologie di funzioni:
Built-in Function = sono funzioni già presenti all'interno di Fairmat (es. AMax, AMin, FRA, RATE ecc..)
User-defined function = sono funzioni create dall'utente inserendo un oggetto "analitic function" nell'ambiente Parameters & Functions (Add > Functions > Analytic Function)
Ad esempio supponiamo di inserire un vettore 4x1 di numeri naturali, che chiameremo MyVector = [25, 12, 10, 45] (nell'ambiente Parameters & Functions facciamo Add > Parameters > Vector). Siamo interessati a verificare qual è il numero massimo all'interno del vettore.
Possiamo allora usare la built-in function AMax applicata al vettore MyVector. AMax è così definita
AMax(@vec; {expr})
"Calculate the maximum of expression expr evaluated in all elements of the array arr".
Nel tab in basso a destra "Fairmat Console" scriviamo AMax(@MyVector;{xa}) (il @ identifica il vettore MyVector come oggetto vettore, {xa} i generici elementi del vettore di riferimento), che restituisce 45.
Potremmo, tuttavia, anche creare una nostra funzione del tutto similare ad AMax, che chiameremo MyMax, che sfrutta la funzione max (l'equivalente di AMax, ma applicata ad una serie di scalari).
In Parameters & Functions facciamo Add > Functions > Analytic Function, inseriemo il Function Name "MyMax" e l'Expression max(x1;x2;x3;x4) e diamo l'Ok.
Nel tab in basso a destra "Fairmat Console" scriviamo MyMax(MyVector[1];MyVector[2];MyVector[3];MyVector[4]) (con MyVector[ ] richiamo i singoli elementi del vettore MyVector), che restituisce 45.
Si noti che sto richiamando la funzione user-defined MyMax la quale, al suo interno, richiama la built-in function max dandole, come argomenti, i quattro elementi del vettore MyVector.
Tornando al Suo caso specifico, Lei potrebbe essere interessato ad inserire un payoff del tipo "tasso variabile + spread". Può allora creare una analytuc function MyFunction così definita:
MyFunction = x1+x2
dove l'argomento x1 è la funzione FRA o RATE (le quali, a loro volta, avranno i loro propri argomenti) e x2 lo spread (che potrà essere un vettore o, più semplicemente, uno scalare).
Spero di esserLe stato d'aiuto.
Buona giornata
1359 Views | ||
Go to Top |
Currently Online: There is nobody online.
Welcome to our latest member: User4d51