Opzioni - pagina 5

 

Abbozzato un indicatore per calcolare il prezzo teorico di un'opzione.

Non sono sicuro che tutte le formule siano corrette. Chi conosce la matematica, per favore controlli.

 
Sergey Chalyshev:

Naturalmente bisogna tenere conto dello spread.

Si potrebbe anche testare ad un prezzo teorico, ma sarebbe molto rozzo. Tuttavia, la domanda e l'offerta possono non esistere nel mercato reale.

Quindi, per un test accurato e vicino al reale, abbiamo bisogno dell'intera storia delle quotazioni con tutti i colpi e i buchi.

La volatilità storica può anche essere trasformata in un sorriso, bisogna pensarci.

Se riuscite a torcerlo realisticamente, fatemelo sapere, penso che sarà utile a tutti).

Le formule:

  // private:
        private static double Erf(double x)
        {
            // constants
            double a1 = 0.254829592;
            double a2 = -0.284496736;
            double a3 = 1.421413741;
            double a4 = -1.453152027;
            double a5 = 1.061405429;
            double p = 0.3275911;

            // Save the sign of x
            int sign = 1;
            if (x < 0)
                sign = -1;
            x = Math.Abs(x);

            // A&S formula 7.1.26
            double t = 1.0 / (1.0 + p * x);
            double y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.Exp(-x * x);

            return (sign * y);
        }

        public static double d1(InitalOptionData data)
        {
            return (Math.Log(data.S / data.K) + (data.r - data.q + Math.Pow(data.IV, 2) / 2) * data.T) / (data.IV * Math.Sqrt(data.T));
        }
        public static double d2(InitalOptionData data)
        {
            return d1(data) - data.IV * Math.Sqrt(data.T);
        }
        public static double N(double d)
        {
            return Erf((Math.Sqrt(2) * d) / 2) / 2 + 0.5;
        }
        public static double p(double d)
        {
            return 1 / Math.Sqrt(2 * Math.PI) * Math.Exp(-Math.Pow(d, 2) / 2);
        }
        private double Call(InitalOptionData data)
        {
            return data.S * Math.Exp(-data.q * data.T) * N(d1(data)) - data.K * Math.Exp(-data.r * data.T) * N(d2(data));
        }
        private double Put(InitalOptionData data)
        {
            return data.K * Math.Exp(-data.r * data.T) * N(-d2(data)) - data.S * Math.Exp(-data.q * data.T) * N(-d1(data));
        }

È su Sharpe, semmai.

 

Domanda!

Un "delta hedgerow" può fare soldi?

Ho già formato la mia opinione su questo argomento, l'ho già testato.

Ma mi piacerebbe sentire le opinioni su questo argomento, forse mi sbaglio.

 

Grafico delle opzioni in MT5 RealTime


 
Sergey Chalyshev:

Grafico delle opzioni in MT5 RealTime

Come l'hai avuto?

 
Aleksey Vyazmikin:

Come l'hai avuto?

Mi associo alla domanda

 
A proposito, i grafici delle opzioni non sono necessari per il trading - hai scaricato le quotazioni per i test?
 
Aleksey Vyazmikin:

Come l'hai avuto?

È ovvio.

Citazioni da Quickquotes, MT5 ha un simbolo personalizzato che scarica queste citazioni.

 
prostotrader:

Questo è ovvio.

Citazioni da Quickquotes, MT5 ha un simbolo personalizzato che scarica queste citazioni.

Quindi questa è la domanda, come fare un tale ponte, che verrebbe caricato automaticamente in tempo reale?

 
prostotrader:

Questo è ovvio.

Citazioni da Quickquotes, MT5 ha un simbolo personalizzato che scarica queste citazioni.

Stampella inutile...

Dopo di che devi ancora scrivere un mucchio di classi per la matematica delle opzioni