Programmazione Tradestation Tesina su piattaforma R

Micina90

Nuovo forumer
Salve vi scrivo perchè ho un disperato bisogno di aiuto: la professoressa ci ha dato da svolgere una piccola tesina sulla piattaforma R, anche se in aula ha spiegato soltanto poche nozioni di base e io nn so da dove iniziare. :(
Questa é la traccia della mia tesina:
Nell’ambito dello studio su titoli derivati, si effettui un’analisi su 10 opzioni finanziarie (arbitrariamente scelte) call o put di tipo plain vanilla. In particolare si consideri come varia il valore delle greche.
In particolare, si richiede di produrre stime e grafici, nonché indicatori della bontà di adattamento (analisi dei residui, ecc.), eventualmente ricorrendo al pacchetto quanto, fOptions, QuantLib altri affini della piattaforma R CRAN.

Non so da dove iniziare. Qualcuno potrebbe aiutarmi per favore?
Grazie anticipatamente
 
Ok ti rispondo qui, la mia tesina é un po' diversa xke devo considerare le opzioni finanziare ma devo verificare anche come varia il valore delle greche. Come devo fare?
 
Ok ti rispondo qui, la mia tesina é un po' diversa xke devo considerare le opzioni finanziare ma devo verificare anche come varia il valore delle greche. Come devo fare?
Aggiungi questo pezzo in fondo al mio codice che trovi qui:
# +---------------------------------
# | 11. Analisi di sensitività (Greche)
# +---------------------------------

greeks <- matrix(NA, nrow = nrow(optionChain_), ncol = 5)
Selection <- c("delta", "gamma", "vega", "theta", "rho")
colnames(greeks) <- Selection
rownames(greeks) <- rep('', nrow(greeks))

for(i in 1:nrow(greeks))
{
rownames(greeks) <- paste('C', optionChain_[i,1], sep = '')

for(j in 1:ncol(greeks))
{
greeks[i,j] <- GBSGreeks(Selection = Selection[j], TypeFlag = "c", S = S, X = optionChain_[i,1], Time = as.numeric(Time) / 365, r = 0, b = 0, sigma = volSmile)

}

}

round(greeks, 4)

Ottieni questo risultato al momento coi prezzi dell'Eurex:
> round(greeks, 4)
delta gamma vega theta rho
C10000 0.0068 0.0001 31.1731 -71.6210 -0.0151
C9900 0.0091 0.0001 40.2956 -80.4677 -0.0181
C9850 0.0176 0.0002 71.0157 -142.5769 -0.0377
C9800 0.0269 0.0003 101.6190 -197.2543 -0.0588
C9750 0.0434 0.0005 150.5759 -286.2399 -0.0995
C9700 0.0694 0.0007 218.1456 -407.4240 -0.1688
C9650 0.1112 0.0010 310.0272 -577.1102 -0.2953
C9600 0.1731 0.0014 418.7048 -788.5642 -0.5153
C9550 0.2543 0.0017 524.4637 -1010.9660 -0.8649
C9500 0.3504 0.0019 606.0446 -1215.4026 -1.3893
C9450 0.4507 0.0019 647.5264 -1379.8328 -2.1247
C9400 0.5426 0.0017 648.7884 -1501.8854 -3.0785
C9350 0.6197 0.0015 622.9074 -1557.4676 -4.1559
C9300 0.6790 0.0013 585.6753 -1614.3021 -5.4021
C9250 0.7237 0.0011 547.0058 -1662.5853 -6.7356
C9200 0.7571 0.0009 511.8040 -1713.5223 -8.1325
C9150 0.7810 0.0008 483.0021 -1785.4096 -9.5896
C9100 0.8040 0.0007 452.3893 -1798.1184 -11.0030
C9050 0.8177 0.0006 432.6433 -1882.6960 -12.5099
C9000 0.8347 0.0005 406.5619 -1875.2598 -13.9353
C8950 0.8425 0.0005 393.8162 -1974.8314 -15.4723
La prima colonna è la descrizione dell'opzione (in questo caso tutte le Call sul DAX dalla 8950 alla 10000), le altre colonne sono le Greche al momento dello scarico dei dati.

Purtroppo la formattazione crea dei problemi e la tabella non è perfettamente leggibile qui, ma su R si legge benissimo.
 
Ultima modifica:
grazie mille sto provando a svolgerlo su R, ma non riesco ad andare avanti perchè dopo aver inserito il comando
strikePrice <- sub(pattern = ',', replacement = '', x = strikePrice)

mi dice Warning message: si è prodotto un NA per coercizione
che significa? cosa devo fare?
 
grazie mille sto provando a svolgerlo su R, ma non riesco ad andare avanti perchè dopo aver inserito il comando
strikePrice <- sub(pattern = ',', replacement = '', x = strikePrice)

mi dice Warning message: si è prodotto un NA per coercizione
che significa? cosa devo fare?
Niente, te ne sbatti e vai avanti lo stesso.

E' solo un avvertimento, non è un errore.
 
ok grazie. E se voglio fare una rappresentazione grafica di questa tabella delle greche come devo scrivere?
par(mfrow = c(3, 2))

for(j in 1:ncol(greeks))
{
barplot(greeks[,j], horiz = FALSE, beside = TRUE, main = Selection[j])​
}​
 

Allegati

  • Rplot.png
    Rplot.png
    7,2 KB · Visite: 596
Ultima modifica:

Users who are viewing this thread

Back
Alto