Precio por punto - página 5

 

@Gordon

"¿Qué quieres decir con 'Ejecucióninstantánea'? (se da a entender que no es lo mismo que 'Ejecución de Mercado')..."

MT4 Server parece referirse (lo verás en su lista desplegable de apertura de órdenes manuales) a la posibilidad de establecer los stops en la apertura de órdenes como "Ejecución instantánea"; y "Ejecución de mercado" cuando hay que ponerlos a 0 y modificarlos.

@SDC y 1005philip

"¿No sería más fácil simplemente utilizar Symbol() en todas las referencias al símbolo, entonces incluso si el servidor de los corredores tiene EURUSD introducido como mooncheese no importa, siempre y cuando la EA también sabe EURUSD se llama mooncheese"

Cuando el nombre del símbolo es cambiado por el broker, esto requiere la apertura de un nuevo gráfico al que añadirás tu EA.

CB

 
cloudbreaker:

MT4 Server parece referirse (lo verás en su lista desplegable de apertura de órdenes manuales) a la posibilidad de establecer los stops en la apertura de órdenes como "Ejecución instantánea"; y "Ejecución de mercado" cuando deben establecerse en 0 y modificarse.

Que me aspen, el menú desplegable realmente cambia cuando se registra en una cuenta que sólo acepta stops a 0. Nunca me había dado cuenta de eso. Gracias.
 
SDC:

no sería más fácil sólo para utilizar Symbol() en todas las referencias al símbolo a continuación, incluso si el servidor de los corredores tiene EURUSD entró como mooncheese que no importa, siempre y cuando la EA también sabe EURUSD se llama mooncheese

Wow! el tema ha crecido a 42 mensajes y contando, es un récord ...

Si todo el mundo no importa.... retomando donde lo había dejado...

SDC, si no me equivoco, Phillip estaba exponiendo su función personalizada para producir TickValue, de forma independiente, en lugar de simplemente llamar al MarketInfo predefinido. Por supuesto que llamar a MODE_TICKVALUE en Symbol() es la cosa lógica más fácil de hacer. Pero aparte de demostrar/probar donde/cómo el TickValue obtuvo su valor. Podría estar equivocado pero creo que esto tiene la ventaja de sintetizar un/algunos par(es) exótico(s) que cualquier broker particular puede no ofrecer. Podemos permutar toda la base/contador que esté disponible. No tengo un ejemplo a mano. Pero estoy bastante seguro de que lo que los corredores tienen que ofrecer no es una permutación completa de base / counter-s disponibles. Sólo estoy explorando en lo que Phillip había publicado. Puede que no sea útil a menos que uno necesite cobertura/arbitraje o algo así...

 

cameo Estaría encantado de compartir más del código que tengo aquí si encuentras valor en él. Honestamente, asumí que era un camino mundano/rutinario que la mayoría de la gente ya había recorrido en el curso de sus propias aventuras de codificación, así que no quise insultar la inteligencia de nadie asumiendo que era algo nuevo para la comunidad. (también mi código no es exactamente lo que considero digno de ser publicado en la forma en que se encuentra en mi disco duro, potencialmente haciendo más daño que bien en las manos equivocadas y realmente no quiero que nadie pierda dinero a causa de mi estilo de comentario mediocre, etc)

El beneficio (yo lo veo más como "la necesidad") de poder calcular el tickvalue a partir de los fundamentales no es tanto para la cobertura/arbitraje (aunque ciertamente se podría aprovechar ahí también) sino que es para algo mucho más simplista. En mi caso lo encuentro necesario para calcular el patrimonio en riesgo, la colocación de stoploss, etc.

(también, nota: el valor de marketinfo para MODE_TICKVALUE se basa estrictamente en el precio de oferta del par de divisas, no el precio de demanda, como tal el tickvalue de marketinfo es realmente sólo técnicamente correcto para el uso con los cálculos que dependen del precio de oferta como el valor de toma de ganancias de una posición larga o el stoploss de una posición corta... de nuevo la discrepancia es menor, y naturalmente no hace ninguna diferencia para los pares de divisas en los que la moneda de la cuenta es la contra-divisa como EURUSD y así sucesivamente)

El problema con el uso de marketinfo Tickvalue es que sólo es válido para los precios actuales del mercado. El tickvalue depende del precio de mercado para todos los pares de divisas excepto para aquellos que tienen la divisa de la cuenta como moneda de contrapartida. (el tickvalue de USDJPY es diferente en USDJPY = 99,00 frente a 98,00, etc)

La razón para la creación de pares "sintéticos" como usted los llama es que para los pares de divisas cruzadas el tickvalue depende del precio de dos pares de divisas. Tanto el símbolo que se negocia como el par de divisas que está formado por la divisa de la cuenta y la del par de divisas contrario en el símbolo que se negocia.

Un ejemplo. Supongamos que la denominación de su cuenta es USD y que quiere operar con el EURGBP. El valor de la posición en el EURGBP una vez que la abra va a depender del precio de mercado del EURGBP así como del precio de mercado del GBPUSD.

Usted podría abrir una posición larga en el EURGP a 0,8500 y podría permanecer allí a ese mismo precio durante todo el día y, sin embargo, su operación se verá perjudicada si el GBPUSD ha tendido a la baja mientras tanto. (Por eso, es posible que haya leído uno o dos posts míos antes en los que afirmaba que la cobertura es necesaria, pero poco práctica, cuando se operan pares de divisas cruzadas si se pretende gestionar el riesgo).

En mi caso me gusta determinar programáticamente los pares de divisas que sirven de puente entre la divisa de la cuenta y el par de divisas cruzado, de ahí el uso de la formación de pares "sintéticos".

 
1005phillip:

cameo Estaré encantado de compartir más del código que tengo aquí si encuentras valor en él.

Sí. ¡Eso sería genial...! Por favor, adjúntalo o envíame un correo electrónico si te inclinas por él. Gracias Phillip...

El beneficio (yo lo veo más como "la necesidad") de poder calcular el tickvalue a partir de los fundamentales no es tanto para la cobertura/arbitraje (aunque ciertamente se podría aprovechar ahí también) sino que es para algo mucho más simplista. En mi caso, lo encuentro necesario para calcular el capital en riesgo, la colocación de stoploss, etc.

(también, nota: el valor de marketinfo para MODE_TICKVALUE se basa estrictamente en el precio Bid del par de divisas, no en el precio ask, como tal, el tickvalue de marketinfo es en realidad sólo técnicamente correcto para su uso con los cálculos que dependen del precio Bid como el valor de takeprofit de una posición larga o el stoploss de una posición corta...de nuevo la discrepancia es menor, y naturalmente no hace ninguna diferencia para los pares de divisas en los que la moneda de la cuenta es la contra-divisa como EURUSD y así sucesivamente)

¿Implica esto que la información de mercado del otro lado de la operación, es decir, del corto (precio Ask), tendrá discrepancias si se calcula de forma independiente?

El problema con el uso de marketinfo Tickvalue es que sólo es válido para los precios actuales del mercado. El tickvalue depende del precio de mercado para todos los pares de divisas excepto para aquellos que tienen la divisa de la cuenta como moneda de contrapartida. (el tickvalue de USDJPY es diferente en USDJPY = 99,00 frente a 98,00, etc)

La razón de la creación de pares "sintéticos" como usted los llama es que para los pares de divisas cruzadas el tickvalue depende del precio de dos pares de divisas. Tanto el símbolo que se negocia como el par de divisas que está formado por la divisa de la cuenta y la del par de divisas contrario en el símbolo que se negocia.

Sí, esto está claramente descrito en el Libro mql4. Desde entonces siempre he miradolos pares de divisas cruzados TickValues' como 'flotantes'

Un ejemplo. Digamos que la denominación de tu cuenta es USD y quieres operar con el EURGBP. El valor de la posición en el EURGBP una vez que la abra va a depender del precio de mercado del EURGBP así como del precio de mercado del GBPUSD.

Usted podría abrir una posición larga en el EURGP a 0,8500 y podría estar allí a ese mismo precio durante todo el día y, sin embargo, su operación estará bajo el agua si el GBPUSD ha sido la tendencia a la baja en el ínterin. (Por eso, es posible que haya leído uno o dos posts míos antes en los que afirmaba que la cobertura es necesaria, pero poco práctica, cuando se operan pares de divisas cruzadas si se pretende gestionar el riesgo).

Nunca lo he visto de esa manera. Necesito reflexionar sobre esto s'more.... :)

En mi caso me gusta determinar programáticamente los pares de divisas que hacen de puente entre la divisa de la cuenta y el par de divisas cruzado, de ahí el uso de la formación de pares "sintéticos".

Una pregunta (una estúpida tal vez): ¿Alguna vez has encontrado un par que no tiene USD como su base / contador, pero existen como una cruz?


 
gordon:

Desgraciadamente, la denominación de MODE_TICKSIZE y MODE_TICKVALUE añade una segunda definición a Tick (que supongo que es la fuente de la confusión...). La definición de Tick en este contexto es: un Tick es el menor cambio de precio posible para el símbolo en cuestión:

  • MODE_TICKSIZE - el tamaño de este cambio en términos de precio (la documentación afirma "tamaño del Tick en puntos", pero eso es obviamente inexacto).
  • MODE_TICKVALUE - el valor de este cambio en la moneda de depósito de la cuenta (esto se calcula en el lado del servidor por el corredor).
Observaciones:
  1. Un "Punto" (MODE_POINT) es el cambio de precio más pequeño posible en el tamaño de la izquierda del punto decimal para el símbolo en cuestión. Esto NO es lo mismo que MODE_TICKSIZE. Técnicamente: MODE_TICKSIZE>=MODE_POINT, aunque casi siempre son iguales.
  2. Un 'Pip' es una convención, algo en lo que todos estamos de acuerdo. No es una propiedad matemática del símbolo o una propiedad del servidor MT4. Así, por ejemplo, con un broker de 4 dígitos para EURUSD un Pip es 1 Punto, pero para un broker de 5 dígitos un Pip es 10 Puntos...
  3. Hay una buena discusión sobre cómo determinar automáticamente el tamaño de un Pip en Puntos aquí -> https://www.mql5.com/en/forum/124692.
  4. MODE_TICKSIZE puede variar, aunque es extremadamente raro (por otro lado, Point es fijo). CB tiene un método para tratar estos cambios aquí -> https://www.mql5.com/en/forum/109552/page3#195878.

Si se me permite ofrecer lo que ha sido mi interpretación hasta la fecha - añadiendo a lo que Gordon había expuesto muy bien arriba.

  • Point : Siempre termina en 1. Es un factor de conversión a la relación que llamamos 'precio'.
  • MODE_TICKSIZE : La unidad más pequeña de movimiento del precio en puntos.
  • MODE_TICKVALUE : Valor actual de la moneda del contador en conversión a su ratio base.
 

cameofx:

Punto : Siempre termina en 1. Esun factor de conversión a la relación que llamamos "precio".
Añadiendo una aclaración al "casi siempre" de gordon, no puedo pensar inmediatamente en un instrumento de forex donde esto no sea cierto, pero rara vez es cierto cuando los corredores ofrecen metales, índices, etc. Por ejemplo, en el contrato de oro de Alpari, el TICKSIZE es 0,05 (y el Point es 0,01). Hasta donde yo sé, MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS))
 
cameofx:

Sí. ¡Eso sería genial...! Por favor, adjúntalo o envíame un correo electrónico si te sientes inclinado a hacerlo. Gracias Phillip...


Incluido en el archivo rar adjunto. Estoy seguro de que usted tendrá preguntas de uso, el fuego de distancia.


cameofx:

¿Implica esto que la información de mercado del otro lado de la operación, es decir, del corto (precio Ask), tendrá discrepancias si se calcula de forma independiente?



Eso es correcto. Pero el porcentaje de error es simplemente el diferencial en puntos dividido por el precio de venta (~0.02%-0.05% dependiendo del par de divisas)... sólo importa si quieres tener en cuenta hasta el último centavo.


cameofx:

Nunca lo había visto de esa manera. Necesito reflexionar sobre este s'more.... :)


He incluido un archivo excel en el archivo rar adjunto con la esperanza de que te ayude a reflexionar.

cameofx:

Una pregunta (tal vez estúpida): ¿Se ha encontrado alguna vez con un par que no tenga el USD como base/contrapartida, sino que exista como un cruce?



Tal y como está redactada su pregunta, la respuesta fácil es que sí - todos los cruces sin USD cumplen su criterio. Pero creo que usted quería hacer una pregunta diferente - es decir, ¿me he encontrado con un corredor que ofrece un par de divisas cruzadas y al mismo tiempo no ofrece el par de divisas requerido que contiene la moneda contraria del par cruzado y la moneda de la denominación de la cuenta?

La respuesta a esta pregunta es no, y por una buena razón, porque un corredor simplemente no puede. La razón por la que un corredor no puede hacer eso es porque están obligados por las mismas conexiones de precios fundamentales de las ecuaciones detalladas aquí ... en otras palabras, necesitan tener acceso a la misma información de precios con el fin de calcular y reportar sus valoraciones de posición de divisas cruzadas.

Por ejemplo, digamos que usted tiene una cuenta denominada en euros y compra 1 lote de GBPUSD. La moneda de contrapartida en el GBPUSD es el USD. Así que para calcular su beneficio/pérdida en su posición de GBPUSD su corredor (y usted) también necesitan saber el precio del EURUSD. (el EUR es la moneda de su cuenta, el USD es la moneda de contrapartida del par cruzado en el que abrió una posición)

Si el broker no tiene el EURUSD como par ofrecido, entonces el terminal MT4 no podría calcular la ganancia/pérdida flotante de su posición sobre una base de tick a tick. Por lo tanto, nunca encontrará un corredor que le ofrezca la posibilidad de operar con un par cruzado (en relación con la denominación de su cuenta) sin ofrecer también el par de divisas principal que contiene la moneda de su cuenta.
 
jjc:
Añadiendo una aclaración al "casi siempre" de gordon, no puedo pensar inmediatamente en un instrumento de forex donde esto no sea cierto, pero rara vez es cierto cuando los corredores ofrecen metales, índices, etc. Por ejemplo, en el contrato de oro de Alpari, el TICKSIZE es 0,05 (y el Point es 0,01). Hasta donde yo sé, MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS))
De acuerdo en ambas cosas. Nunca he visto un caso en el que MODE_POINT y MODE_DIGITS no confirmaran esta fórmula.
 
cameofx:
Punto : Siempre termina en 1.
"Un 'Punto' (MODE_POINT) es el menor cambio de precio posible" , por lo tanto obviamente debe terminar en un 1.
MODE_TICKSIZE : La unidad más pequeña de movimiento del precio en puntos.

Como he dicho antes, aunque la documentación afirma "Tamaño deltick en puntos", esto es obviamente inexacto. Es en términos de precio también.

MODE_TICKVALUE : Valor actual de la moneda del contador en conversión a su ratio base.

Esta definición no es clara... (¿tal vez el inglés no es su lengua materna?).