Precio por punto - página 2

 

LEHayes, no pasa nada si ignoras totalmente mi post. No tengo más que respeto por tu experiencia, pero a veces hasta el más inteligente puede pasar por alto algo. Tu problema se parece mucho a TickValue, por eso pregunto. Esta es la mejor explicación que he encontrado que se asemeja a tu problema. Desde el Libro, tal vez esto puede ayudar :

El tamaño de un lote estándar para el mismo símbolo puede variar en diferentes centros de negociación. <br / translate="no"> La cantidad requerida de activos libres para la apertura de una orden de un lote es inversamente proporcional a la cantidad del apalancamiento proporcionado. Al mismo tiempo, el coste de 1 punto en la moneda de depósito para un símbolo no está relacionado con el apalancamiento proporcionado.

Tabla 3. Posibles combinaciones del coste de 1 lote y del coste de 1 punto (la moneda de depósito es el dólar estadounidense).
Centro de negociación 1 Centro de negociación 2 Centro de negociación 3
Compra Venta 1pt Compra Venta 1pt Compra Venta 1pt
EUR/USD 1296,40 1296,20 10,00 1296,50 1296,20 10,00 1000,00 1000,00 10,00
GBP/USD 1966.20 1966.00 10.00 1376.48 1376.20 7.50 1000.00 1000.00 10.00
AUD/USD 784,40 784,20 10,00 1569,20 1568,40 20,00 1000,00 1000,00 10,00
USD/JPY 1000,00 1000,00 8,29 1000,00 1000,00 8,29 1000,00 1000,00 8,29
USD/CHF 1000,00 1000,00 8,02 1000,00 1000,00 8,02 1000,00 1000,00 8,02
EUR/CHF 1296,40 1296,20 8,02 1296,35 1296. 35 8.02 1000.00 1000.00 8.02

Los precios se indican a partir del 16.12.2007.

Consideremos brevemente algunos métodos habituales de cálculo del coste de 1 lote y de 1 punto.

Centro de negociación 1 (el más común)

Para los símbolos que tienen recíprocamente USD, el coste de 1 lote es igual al precio actual de la correspondiente cotización de dos vías multiplicado por 1000, mientras que el coste de 1 punto es igual a 10 dólares.

Para los símbolos que tienen USD como numerador, el coste de 1 lote es igual a 1000 dólares, mientras que el coste de 1 punto es inversamente proporcional a la cotización actual e igual a 1/(Bid). Por ejemplo, en el caso del USD/CHF, a Bid= 1,2466, el coste de 1 punto es 1/1. 2466 = 8,02.

En el caso de los tipos cruzados, el coste de 1 lote se calcula de la misma manera que el de la moneda numeradora, mientras que el coste de 1 punto se calcula de la misma manera que el de la moneda denominadora. Por ejemplo, para el EUR/CHF, el coste de 1 lote es de 129,40 (como para el EUR/USD), mientras que el coste de 1 lote es de 8,02 (como para el USD/CHF).

Centro denegociación 2

En algunos centros de negociación, considerando la misma regla de cálculo de costes, los valores de los costes pueden ser diferentes para algunos símbolos. Por ejemplo, el coste de 1 lote y el coste de 1 punto pueden aumentar o disminuir proporcionalmente. Por ejemplo, este factor puede ser 0,75 para el GBP/USD, mientras que es 2,0 para el AUD/USD. Esta representación de los valores de los costes no supone ningún cambio económico; en estos casos, sólo tiene que tener en cuenta esta particularidad a la hora de calcular los costes de sus órdenes. También debe prestar atención al hecho de que los costes de 1 lote para la compra y la venta de activos a tipos cruzados son los mismos.

Centro de negociación 3

También hay centros de negociación que fijan el coste de 1 lote en 1000,00 dólares para cualquier símbolo. Al mismo tiempo, el coste de 1 punto sigue siendo proporcional a los precios actuales. Esto implica establecer un apalancamiento especial para cada símbolo. El coste de 1 punto de todos los símbolos que no se cotizan en relación con el USD siempre cambia proporcionalmente al coste del símbolo especificado recíprocamente.

En general, pueden existir otros principios de construcción de valores de coste. No hace falta decir que, antes de empezar a operar de verdad, debería informarse sobre el método de cálculo de cualquier centro de negociación específico y considerar este método en su codificación.

Saludos cordiales

 
engcomp:

No estoy seguro de cómo tomar esto. Está en el límite de ser molesto.

LEHayes, si echas un vistazo verás que el "tamaño del stop loss" es una de las entradas, NO lo que el script intenta determinar.

Además, el script no "intenta" sino que determina el tamaño del lote en función del stop loss y del porcentaje de riesgo que determines.

Por último, el valor del tick que devuelve está en la moneda de la cuenta. Traducirlo a tu moneda depende de ti.



Lo siento, ahora veo que el Stop loss no se utilizó en el cálculo.

Tengo la impresión de que TICKVALUE no es una fuente fiable para determinar el valor real de un pip. Esta es una de las razones por las que soy tímido sobre el uso de TICKVALUE. Me han dicho que salta o puede cambiar. La única cosa que tu código hizo con TICKVALUE fue determinar si necesitabas calcularlo contra 10 para la situación del dígito extra, ¿cierto? Refiriéndose a esto:

   double tickvalue = (MarketInfo(Symbol(),MODE_TICKVALUE));
   if(Digits == 5 || Digits == 3){
      tickvalue = tickvalue*10;
   }

Así que, en resumen, TICKVALUE podría decirse que es lo mismo que el Valor del Pip o el Precio por Pip. Si me preocupa que el valor salte, entonces tal vez debería comprobar la validez del valor antes de asumirlo en un cálculo correcto, o utilizar otro método para obtener el Precio por Pip.

Creo que una de las razones por las que estoy frustrando a la gente es porque hay diferentes términos para describir la misma cosa en este maket. Valor del pip, precio por pip, valor del tick, etc. Tal vez un libro de sinónimos en este mercado sería útil ;-)

 
LEHayes:

CB, esta es la razón por la que vuelvo a llegar a la raíz de esto. Cuando hago la búsqueda como sugieres, hay más de 2800 hilos en el foro, de alguna manera relacionados con esto. He leído hilos sobre una contraversia de si un tick es realmente un pip o que es debe ser tratado de manera diferente porque un tick es cuando el corredor decide actualizar su MT4, no dicta que un tick será una actualización cada pip. Por lo tanto, el argumento pasa a afirmar que era una fuente poco fiable para obtener un valor de pip.

No sé si esto ayuda, pero...

  • Casi todo el mundo está de acuerdo en que un "pip" es una unidad de movimiento del precio. Puede que no estén de acuerdo en el tamaño -por ejemplo, si un pip en el EURUSD es 0,0001 o 0,00001- pero el término es bastante inequívoco.
  • "Tick" se utiliza ampliamente para significar dos cosas diferentes: o bien lo mismo que "pip", o bien el significado muy diferente de "evento de mercado", como "30 ticks por minuto". Algunas personas tratan de insistir en que "tick" se reserve para este último significado, pero están luchando una batalla perdida. Para decirlo de otra manera, MODE_TICKSIZE y MODE_TICKVALUE de MT4 serían un poco menos polémicos si se llamaran MODE_PIPSIZE y MODE_PIPVALUE.

 
gordon:
¿Precio por pipa o precio por punto? Si es lo primero, entonces esto es relevante -> https://www.mql5.com/en/forum/124692, discute cómo determinar el tamaño del pip (en puntos) para un símbolo...


Si pongo un EA en EURUSD, y el precio se mueve de 1,1234 a 1,1235, quiero saber el valor en efectivo de ese único movimiento. Sé que va a haber una necesidad de apalancamiento en este cálculo, y el tamaño del lote, pero podemos establecer el tamaño del lote a un estándar de 1 con el fin de determinar el valor del pip, a continuación, calcular que contra mini o micros, etc.

Sinceramente, amigos, no estoy tratando de ser complicado y estoy tratando de escribir lo más directo posible. Espero no estar molestando a nadie.

 
LEHayes:


Lo siento por eso, ahora veo que el Stop loss no se utilizó en el cálculo.

Tengo la impresión de que TICKVALUE no es una fuente fiable para determinar el valor real de un pip. Esta es una de las razones por las que soy tímido en el uso de TICKVALUE. Me han dicho que salta o puede cambiar. La única cosa que tu código hizo con TICKVALUE fue determinar si necesitabas calcularlo contra 10 para la situación del dígito extra, ¿cierto? Refiriéndose a esto:

Así que, en resumen, TICKVALUE podría decirse que es lo mismo que el Valor del Pip o el Precio por Pip. Si me preocupa que el valor salte, entonces tal vez debería comprobar la validez del valor antes de asumirlo en un cálculo correcto, o utilizar otro método para obtener el Precio por Pip.

Creo que una de las razones por las que estoy frustrando a la gente es porque hay diferentes términos para describir la misma cosa en este maket. Valor del pip, precio por pip, valor del tick, etc. Tal vez un libro de sinónimos en este mercado sería útil. ;-)

Y del artículo


Definamos NominalPipValue como el valor de un solo pip en moneda de depósito cuando el Volumen=1.00.
El NominalPipValue se puede calcular conociendo el tipo de cambio actual del par elegido.

Digamos que usted está operando EURUSD en una cuenta estándar con apalancamiento 1:100. Si su moneda de depósito es el USD, entonces el NominalPipValue siempre será de 10$, sin importar el tipo de cambio.
Si su moneda de depósito es el EUR entonces debe considerar el tipo de cambio, más precisamente la inversa del tipo de cambio.

NominalPipValue = (10 / tipo de cambio)

Si el tipo de cambio actual del EURUSD es, por ejemplo, 1,3333, entonces tendrá:

NominalPipValue = (10$ / 1,3333) = 7,519 EUR

Como puedes ver es bastante fácil. Las cosas se complican más cuando operas con un par como USDCHF y tu moneda de depósito está en EUR o GBPJPY y tu moneda de depósito es EUR o USD. De hecho en estos casos hay que tener en cuenta un doble tipo de cambio.

Afortunadamente no necesitamos hacer eso ya que MetaTrader tiene una función específica que nos dice fácilmente NominalPipValue:

NominalPipValue = MarketInfo(Symbol(),MODE_TICKVALUE) (6)

Esto funcionará sea cual sea el par en el que estés operando y sea cual sea tu moneda de depósito... incluso demasiado fácil ahora :)

ATENCIÓN: NominalPipValue cambia con los tipos de cambio, por lo que su valor en la apertura de la orden es diferente al del cierre de la misma. Los beneficios/pérdidas reales se calculan utilizando el tipo de cambio al cierre de la orden.

Desgraciadamente no conocemos este valor en el momento en el que abrimos la orden... de todas formas para variaciones del tipo de cambio del orden de los SL típicos la diferencia en NominalPipValue en la apertura y el cierre de la posición es lo suficientemente pequeña como para ser ignorada a efectos de nuestro cálculo (menos del 1% en para SL <= 100pips).

En este punto sabemos que al comprar/vender 1.00 Lotes el PipValue es igual al NominalPipValue. Más en general podemos decir:

1.00 / NominalPipValue = X / PipValue (7)

donde "X" es el número de lotes a negociar.
Extraemos X de la ecuación (7) convirtiéndola en:

X = PipValue / NominalPipValue (8)

Bien, hemos alcanzado nuestro objetivo. ¡¡¡Ahora sabemos cómo convertir el Capital de Riesgo en Lotes!!!

Esto puede ser de otra manera de utilidad para newbs / alguien...

 
cameofx:

LEHayes, no pasa nada si ignoras totalmente mi post. No tengo más que respeto por tu experiencia, pero a veces hasta el más inteligente puede pasar por alto algo. Tu problema se parece mucho a TickValue, por eso pregunto. Esta es la mejor explicación que he encontrado que se asemeja a tu problema. Del Libro, tal vez esto pueda ayudar :

Saludos cordiales


Sí, este es el cálculo que estoy buscando. Determinar 1 punto de movimiento. Has dado en el clavo, ahora lo que me confunde es cómo escribir esto en la función de determinar este valor. Tenemos una condición en la que el USD es un numerador, un demononador o se trata de situaciones de pares cruzados. Aqui es donde lo confundo.
 
jjc:

No sé si esto ayuda, pero...

  • Casi todo el mundo está de acuerdo en que un "pip" es una unidad de movimiento del precio. Puede que no estén de acuerdo en el tamaño -por ejemplo, si un pip en el EURUSD es 0,0001 o 0,00001-, pero el término es bastante inequívoco.
  • "Tick" se utiliza ampliamente para significar dos cosas diferentes: o bien lo mismo que "pip", o bien el significado muy diferente de "evento de mercado", como "30 ticks por minuto". Algunas personas tratan de insistir en que "tick" se reserve para este último significado, pero están luchando una batalla perdida. Para decirlo de otra manera, MODE_TICKSIZE y MODE_TICKVALUE de MT4 serían un poco menos polémicos si se llamaran MODE_PIPSIZE y MODE_PIPVALUE.


Que es justo lo que me lleva a mis preocupaciones. Su declaración sobre Tick.
 
cameofx:

Y del artículo

Esto puede ser de otra manera de utilidad para newbs / alguien...


Sí, esto es lo que estoy buscando también. Creo que los dos artículos dicen lo mismo. Así que básicamente, a partir de este artículo puedo asumir con seguridad que TICKVALUE es PipValue o Precio por Pips. El salto o cambio de este valor puede ser debido a los cálculos sobre la marcha que implican el tipo de cambio. Debería esperar las fluctuaciones.

Lo siento amigos si es así de simple, lo siento de verdad por causar tanto jaleo.

 

Gracias a todos por meterlo en mi cabeza. por alguna razón, yo tenía que TICKVALUE no era fiable.

 
LEHayes:

Gracias a todos por haberme metido en la cabeza. Por alguna razón, tenía la idea de que TICKVALUE no era fiable.

TICKVALUE, cuando se utiliza por sí solo, puede ser poco fiable.

Si examina TV y TS cada tick normalmente verá algo como esto:

1 0.0001

1 0.0001

1 0.0001

1 0.0001

Sin embargo, sólo ocasionalmente puede ver algo así

1 0.0001

1 0.0001

2 0.0002

1 0.0001

Por eso mencionaré (una vez más) que TICKVALUE y TICKSIZE deben usarse como una proporción. TV/TS es la fórmula que te dará lo que buscas.

CB