Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 111
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
¡Muchas gracias! Lo necesitaba para comparar las características de las velas (más, menos, etc.) Lo atornillé y funciona. Sólo no puedo entender cómo se compara el tipo de datos cadena? O doble a la cadena no se traduce número a la cadena? :-D
PS. No funciona en el indicador - sólo en el script... Cuando llamo a High[i] - obtengo sólo 4 decimales en él.
Estoy escribiendo:
Alert ("doubletostr High = ", DoubleToStr(High[1],5));
if (DoubleToStr(High[2],5)>(DoubleToStr(High[3],5)
{
Alerta ("Más");
}
if (DoubleToStr(High[2],5)<(DoubleToStr(High[3],5))
{
Alerta ("Más pequeño");
}
Funciona, escribe el resultado con cinco dígitos, cuenta por encima/por debajo. El problema es que en el indicador la matriz de cadenas no aparece en el gráfico. Por lo tanto...
...escribir:
Alert ("Normalized Double High = ", NormalizeDouble(High[1],5));
No funciona - el resultado es > 1,1234
No entiendo a los desarrolladores, ¿por qué han tenido que complicar tanto las cosas? ¿Por qué si muestra tantos dígitos en el gráfico, no raya la función llamada con cinco dígitos? ¿Quizás haya una solución sencilla?
La cosa se pone aún más interesante:
traducir
Alert ("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Escribe: 1,32169 - OK.
Convertir de nuevo a un valor numérico utilizando StrToDouble:
Alert ("iFractals StrToDoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits);
Resultado: 1,3217
Debería haber un meme con Jackie Chan en el que no entienda el chip).
¿Y qué es lo que realmente produce Alert?
Dice 0,01 pero en realidad es 0...0100.
La cosa se pone aún más interesante:
traducir
Alert ("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Escribe: 1,32169 - OK.
Convertir de nuevo a un valor numérico utilizando StrToDouble:
Alert ("iFractals StrToDoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits);
Resultado: 1,3217
Debería haber un meme con Jackie Chan en el que se malinterpreta el chip).
DoubleToStr() se utiliza para dar salida a los mensajes con la precisión deseada. Las funciones estándar Print(), Alert(), etc., imprimen en 4 dígitos.
Cuando quiera ver un número con la precisión que desee, utilice entonces DoubleToStr(), no en los cálculos.
No es necesario traducir nada de un lado a otro... ;)
Dice 0,01 pero el valor real es 0...0100.
Salida entonces 100 * punto = 100 * 0,00001 = 0,001pp (si para cinco dígitos)
El valor de lBUY ha sido modificado anteriormente. Por lo tanto, como yo lo veo, la condición:
No se cumplirá. Y, por tanto, el valor de lBUY seguirá siendo el mismo.
La variable j debe inicializarse explícitamente al principio de la función con un valor negativo. Pruébalo. Todavía no he mirado más allá.
Hasta ahora lo mismo. Aquí tenemos:
DoubleToStr() se utiliza para dar salida a los mensajes con la precisión deseada. Las funciones estándar Print(), Alert(), etc. imprimirán 4 dígitos.
Cuando quieres ver un número con la precisión que deseas, es cuando usas DoubleToStr(), no en los cálculos.
No es necesario traducir nada de un lado a otro... ;)
Es comprensible... ahora...) Pero la cuestión es que necesito sacar de alguna manera un quinto dígito para los cálculos(
Si DoubleToStr() no sirve para ello, ¿entonces este lenguaje no tiene esa característica? ¿No lo previeron los desarrolladores?
Hmm. Hasta ahora, todo bien. Aquí estamos:
Es comprensible... ahora...) Pero la cuestión es que necesito sacar de alguna manera un quinto dígito para los cálculos(
Si DoubleToStr() no sirve para ello, ¿entonces este lenguaje no tiene esa característica? ¿No lo previeron los desarrolladores?
¡Señores programadores! Por favor, aconsejar cómo combinar un EA con un indicador?
Por ejemplo, tomé un simple bot mo_bidir.mq4 que comercia usando su propio algoritmo y quiero que siga abriendo operaciones usando su propio algoritmo pero después de la señal de 3 МА.
Por ejemplo en una señal - Tres medias móviles:
FastEMA>MediumEMA>SlowEMA (tendencia al alza) - bot compra
FastEMA<MediumEMA<SlowEMA (tendencia hacia abajo) - bot vende
Inp_Signal_ThreeEMA_FastPeriod = 8;
Inp_Signal_ThreeEMA_MediumPeriod = 38;
Inp_Signal_ThreeEMA_SlowPeriod = 48;
Lo que necesito es que el Asesor Experto siga operando en 5 minutos y que el indicador dé señales desde el marco temporal diario o de 4 horas, y quiero poder cambiar los marcos temporales en la configuración del bot.