Options - page 5

 

Esquisse d'un indicateur permettant de calculer le prix théorique d'une option.

Je ne suis pas sûr que toutes les formules soient correctes. Si vous connaissez les maths, vérifiez-les.

 
Sergey Chalyshev:

Bien sûr, il faut tenir compte de l'écart de prix.

Vous pourriez également tester à un prix théorique, mais ce serait très grossier. Il n'en reste pas moins que l'offre et la demande peuvent ne pas exister sur le marché réel.

Par conséquent, pour un test précis et proche du réel, nous avons besoin de l'historique complet des citations avec toutes les frappes et les trous.

La volatilité historique peut aussi être détournée en sourire, il faut y penser.

Si vous pouvez le tordre de façon réaliste, faites-le moi savoir, je pense que cela sera utile à tous).

Les formules :

  // 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));
        }

C'est sur Sharpe si quoi que ce soit.

 

Question !

Une "couverture delta" peut-elle rapporter de l'argent ?

Je me suis déjà fait ma propre opinion sur la question, je l'ai déjà testée.

Mais j'aimerais entendre des avis sur cette question, peut-être que je me trompe.

 

Graphique des options dans MT5 RealTime


 
Sergey Chalyshev:

Graphique des options dans MT5 RealTime

Comment l'avez-vous eu ?

 
Aleksey Vyazmikin:

Comment l'avez-vous eu ?

Je me joins à la question

 
A propos, les graphiques d'options ne sont pas nécessaires pour le trading - avez-vous téléchargé les cotations pour les tester ?
 
Aleksey Vyazmikin:

Comment l'avez-vous eu ?

C'est évident.

Citations de Quickquotes, MT5 a un symbole personnalisé qui télécharge ces citations.

 
prostotrader:

C'est évident.

Citations de Quickquotes, MT5 a un symbole personnalisé qui télécharge ces citations.

La question est donc la suivante : comment réaliser un tel pont, qui serait automatiquement chargé en temps réel ?

 
prostotrader:

C'est évident.

Citations de Quickquotes, MT5 a un symbole personnalisé qui télécharge ces citations.

Béquille inutile...

Après cela, vous devez encore écrire un tas de classes pour les options mathématiques.