Salve,

Citazione Originariamente Scritto da max2106 Visualizza Messaggio
Grazie mille, era esattamente quello che cercavo!
Potresti riportarmi il pezzetto di codice con le variabili, valorizzandomele?
Tipo se mi puoi mettere dei valori di esempio in "expiry, strike, serie opzione"

Grazie!

DateTime expiry = <Data e Ora di scadenza dell'opzione>;
double strike = <strike dell'opzione>;
OptionType optionType = <Serie dell'opzione, CALL o PUT>;
per la serie è abbastanza semplice:

// Esempio: cerco una CALL
OptionType optionType = OptionType.CALL;
Per quanto riguarda la scadenza e lo strike, invece, è un pò più complicato. Il modo più sicuro è quello di ottenere l'elenco delle scadenze direttamente da Iceberg:

// Elenco delle scadenze
List<DateTime> scadenze = this.Strategy.UserDefinedMainUnderlying.OptionsChain.GetExpiries();
Una volta ottenuto l'elenco delle scadenze, si può selezionare quella che interessa:

// Esempio, cerco la prima scadenza oltre i 30gg a partire da adesso
scadenze.Sort();
DateTime expiry = scadenze.Where(dt => (dt - DateTime.Now).TotalDays > 30.0).FirstOrDefault();
Il valore dello strike può essere recuperato anch'esso a partire dalla chain delle opzioni di Iceberg:
// Cerco lo strike più vicino a 20000 nella chain con la scadenza selezionata
List<double> strikes = this.Strategy.UserDefinedMainUnderlying.OptionsChain.GetStrikes(expiry);
double strike = strikes.OrderBy(s => Math.Abs(20000 - s)).FirstOrDefault();
Tutto questo deve comunque essere implementato all'interno di un plugin di Iceberg realizzato in .NET. Il codice di esempio che ho postato è scritto in C#, ma è possibile realizzare i plugin in qualsiasi linguaggio di .NET, come VB.NET o F# o altro.

Max Francario