Opções - página 5

 

Esboçou um indicador para o cálculo do preço teórico de uma opção.

Não tenho certeza se todas as fórmulas estão corretas. Quem conhece a matemática, por favor, verifique.

 
Sergey Chalyshev:

É claro que a propagação tem que ser levada em conta.

Você também poderia testar a um preço teórico, mas isso seria muito grosseiro. Mesmo assim, a oferta e a demanda podem não existir no mercado real.

Portanto, para testes precisos e próximos do real, precisamos de todo o histórico de citações com todas as greves e furos.

A volatilidade histórica também pode ser torcida em um sorriso, você tem que pensar sobre isso.

Se você puder torcê-lo realisticamente, me avise, acho que será útil a todos).

As fórmulas:

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

Está em sharpe se alguma coisa.

 

Pergunta!

Uma "sebe delta" pode fazer dinheiro?

Eu já formei minha própria opinião sobre este assunto, já a testei.

Mas eu gostaria de ouvir opiniões sobre este assunto, talvez eu esteja enganado.

 

Gráfico de opções em MT5 RealTime


 
Sergey Chalyshev:

Gráfico de opções em MT5 RealTime

Como você conseguiu isso?

 
Aleksey Vyazmikin:

Como você conseguiu isso?

Eu me associo à pergunta

 
A propósito, os gráficos de opções não são necessários para negociação - você fez o download das cotações para testes?
 
Aleksey Vyazmikin:

Como você conseguiu isso?

É óbvio.

Citações de Quickquotes, MT5 tem um símbolo personalizado que faz o download dessas citações.

 
prostotrader:

Isto é óbvio.

Citações de Quickquotes, MT5 tem um símbolo personalizado que faz o download dessas citações.

Então essa é a questão, como fazer tal ponte, que seria automaticamente carregada em tempo real?

 
prostotrader:

Isto é óbvio.

Citações de Quickquotes, MT5 tem um símbolo personalizado que faz o download dessas citações.

Muleta inútil...

Depois disso, você ainda tem que escrever um monte de aulas de matemática de opção

Razão: