[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 587
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
Ejemplo:
Aquí mis variables seleccionadas son de tipo double, pero en iMA su valor se utiliza donde se necesita un valor int (como un periodo de MA).
La pregunta es: ¿Es correcto este uso o es necesario convertir los valores a tipo int?
No me importa, ¿hay algún ejemplo o enlace que funcione?
Por favor, díganme si es posible utilizar el valor de double, que es el resultado del cálculo, como valor int sustituto para los cálculos posteriores.
Ejemplo:
Aquí mis variables seleccionadas son de tipo double, pero en iMA su valor se utiliza donde se necesita el valor int (como periodo de MA).
Así que mi pregunta es: ¿Es correcto este uso o es necesaria alguna conversión de los valores a tipo int?
La conversión se realiza de forma automática, simplemente cortando la parte fraccionaria. La única limitación a este uso que he visto es que no se puede poner double en el índice del array
Una pregunta más:
Construcciones
no funcionan. Al mostrar sus valores en el gráfico, todos tienen el mismo valor, por ejemplo
1,4118 para MA200_DIN, MA200_UP, MA200_DN y
1,4106 para MA5_DIN, MA5_UP, MA5_DN.
Resulta que las fórmulas de cálculo de los niveles +20 y -20 puntos no funcionan.
¿Qué estoy haciendo mal?
Como dijo Matroskin: Eres un tonto... :)
Danos un código o establece una tarea y lo corregiremos
En WelsLab, el análogo del problema se ve así:
MyATR = SMA.Series((((High-Low)/Low), PerB)[i-1] ;
if (BuyAtStop(i, (Open[i] + Open[i]*MyATR), "") ;
es decir, cuando se abre una barra, se coloca una posición Stop donde el precio Open [i] de la barra actual + el trigger (el mismo precio Open multiplicado por MyATR calculado para el periodo PerB en las barras cerradas [i-1]) se abre una vez si se alcanza el nivel especificado
Este muestra lo que quiero conseguir en mql4 usando WellLab como ejemplo.
He estudiado los materiales del sitio y he intentado hacer una analogía.
Resultado: Las órdenes se acumulan. Por favor, indique qué condición debe añadirse (o cambiarse) para que las órdenes se ejecuten una vez en un nivel determinado.
Nota: el primer parámetro de la función iMAOnArray debe ser un array - y tienes MyATR escalar. Para hacerlo bien, deberías:
1. Declarar el doble MyATR[];
2. Establecer el tamaño del array a ArrayResize(MyATR,PerB);
3. rellenar la matriz for(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i]; el índice i empieza por 1 ya que sólo necesitamos barras cerradas
4. después de esto se puede leer iMAOnArray(MyATR,0,PerB,0,MODE_SMA,0); aquí el último parámetro es 0 ya que el desplazamiento ha1 ya se ha tenido en cuenta en el paso 3.
comprueba cómo funciona, tal vez el error está en esto