Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
No es correcto utilizar la condición == para variables de tipo double. Se recomienda comparar así:
No es correcto utilizar la condición == para variables de tipo double. Se recomienda comparar así:
Bastante razonable y, sobre todo, un enfoque sensato. Pero me parece que al menos la primera línea debería haber sido así:
De vez en cuando me aparecen estos mensajes en el registro
2010.06.15 14:48:09 MemoryException 4915200 bytes no disponibles
¿No sé qué hacer?
De vez en cuando me aparecen estos mensajes en el registro
2010.06.15 14:48:09 MemoryException 4915200 bytes no disponibles
¿No sé qué hacer?
No es correcto utilizar la condición == para variables de tipo double. Se recomienda comparar así:
No hay suficiente memoria op. Compruebe el tamaño de las matrices dinámicas, lo más probable es que sea un intento de asignar más memoria de la disponible.
Ese no es el sentido de la pregunta. Si lo he entendido bien, el operador return debe colocarse siempre al final de la función de usuario
Creo que la respuesta sobre == era esencial. Realmente debería haber un return(...) en algún lugar de una función de tipo double. No necesariamente al final. El uso del operador == en if() return(); puede causar una salida falsa si tiene el tipo de paso de lote 0.100000000000001. En este caso ninguno de los retornos funcionará y la función no devolverá nada. Aunque en tu caso el retorno probablemente no le guste a NormalizeDouble dentro de él. En tu versión que funciona, arregla el final a return(NormilizeDouble(lot,2)) y mira si funciona. Yo también tengo curiosidad.
Creo que la respuesta sobre == era esencial. Realmente debería haber un return(...) en algún lugar de una función de tipo double. No necesariamente al final. El uso del operador == en if() return(); puede causar una salida falsa si tiene el tipo de paso de lote 0.100000000000001. En este caso ninguno de los retornos funcionará y la función no devolverá nada. Aunque en su caso el retorno probablemente no le gusta NormalizeDouble dentro. En tu versión que funciona, arregla el final a return(NormilizeDouble(lot,2)) y mira si funciona. Yo también tengo curiosidad.
Debe haber return(...) al final, pero puede no llegar a él (si una de las condiciones If funciona)...
: Renat
El error es que te olvidaste de la moneda del margen en tus cálculos. Saldo = 100 USD y requisito de margen = 100 EUR (119 USD).
Por eso no se puede realizar la operación, todo es correcto.
Quiero volver a mi pregunta sobre el cálculo correcto del margen. Como Renat notó en mis cálculos, LotRqdMgn (margen requerido para comprar 1 lote) no toma en cuenta el precio de la divisa. Recuerdo haber visto esta mesa
Identificador
Descripción
Fórmula
SYMBOL_CALC_MODE_FOREX
Modo Forex - cálculo de beneficios y márgenes para Forex
Margen: Lotes*Tamaño_del_contrato/Levante
Beneficio: (precio_cerrado-precio_abierto)*Tamaño_del_contrato*Lotes
SYMBOL_CALC_MODE_FUTURES
Modo de futuros: cálculo del margen y del beneficio para los futuros
Margen: Lotes *MargenInicial*Porcentaje/100
Beneficio: (precio_cierre-precio_abierto)*PrecioTick/TamañoTick*Lotes
SYMBOL_CALC_MODE_CFD
Modo CFD: cálculo del margen y del beneficio para CFD
Margen: Lotes *Tamaño del contrato*Precio de mercado*Porcentaje/100
Beneficio: (precio_cerrado-precio_abierto)*Tamaño_del_contrato*Lotes
SYMBOL_CALC_MODE_CFDINDEX
Modo de índice CFD - cálculo de margen y beneficio para CFD por índices
Margen: (Lotes*Tamaño del contrato*Precio del mercado)*Precio del tick/Tamaño del tick
Beneficio: (precio_cerrado-precio_abierto)*Tamaño_del_contrato*Lotes
SYMBOL_CALC_MODE_CFDLEVERAGE
Modo de apalancamiento de CFDs - cálculo del margen y el beneficio para CFDs en operaciones de apalancamiento
Margen: (Lotes*Tamaño del contrato*Precio de mercado*Porcentaje)/Levante
Beneficio: (precio_cerrado-precio_abierto)*Tamaño_del_contrato*Lotes
Así que resulta que hay un error en la tabla: en lugar de Lotes*Tamaño_del_contrato/Levante, debe ser Precio*Lotes*Tamaño_del_contrato/Levante.