No puedo tomar esto más! (iMaOnArray)
No puedo tomar esto más! (iMaOnArray)

 

Publi

Página 1 de 352 12 ??ltimo??ltimo
Resultados 1 al 10 de 14

Tema: No puedo tomar esto más! (iMaOnArray)

  1. #1
    Hay muchos ejemplos de código que usan iMAOnArray () en los indicadores. Solo examine algunos y compárelos con su código.

  2.                         
    Publicidad
  3. #2
    Estoy teniendo el mismo problema en este momento, seriamente frustrado.
    Cita Iniciado por ;
    Recordé algo más esta mañana sobre iMAOnArray (). No se puede usar en un EA. Recuerdo haber luchado con esto durante horas, igual que tú y, finalmente, cuando buscaba un código de muestra, descubrí este hilo de discusión que confirmaba mis sospechas. Lo que terminé haciendo fue usar iMAOnArray () en un indicador y recuperar los valores por medio de iCustom (). Lo siento, no recuerdo esto en mis respuestas anteriores. No pierdas más tiempo, dudo que se pueda hacer.
    http://forum.mql4.com/9228
    Estoy usando iMAOnArray () en mi indicador, y sigue mostrando 0 y ha estropeado todo mi trabajo.

  4. #3

    Cita Iniciado por ;
    ¡Hola a todos! Iré directamente al punto: este es el código: doble AUX [22]; doble EMASMAANGLE = 0; int j = 0; para (j = 0; jlt; 21; j ) AUX [j] = iCustom (NULL, 0, SMAAngle, 0, j); EMASMAANGLE = iMAOnArray (AUX, 21,21,0, MODE_EMA, j); Alerta (EMASMAANGLE); ¿Debería eso darme una alerta con la EMA (21) de los últimos 21 valores del indicador EMAAngle? ¡Esto devuelve 0 en su lugar! ¡Gracias!
    Hola Armagedhoo, puedes usar el cálculo básico de ema: Código PHP: <code> <span style = ???color: # 000000???> <span style = ???color: # 0000BB???> </span> <span style = ???color: # FF8000 ???>/ConvertEmaPeriod (21) toSmoothFactor:
    </span> <span style =??? color: # 0000BB ???> doubleSF </span> <span style =??? color: # 007700 ???> = </span > <span style = ???color: # 0000BB???> 2.0 </span> <span style = ???color: # 007700???>(</span> <span style = ???color: # 0000BB???> 21 </span> <span style = ???color: # 007700???> </span> <span style = ???color: # 0000BB???> 1 </span> <span style = ???color: # 007700???>);
    <span> <span style = ???color: # FF8000???>/Definir valor de configuración:
    </span> <span style = ???color: # 0000BB???> doubleEmaSmaAngle </span> <span style = ???color: # 007700 ???> = </span> <span style =??? color: # 0000BB ???> iCustom </span> <span style =??? color: # 007700 ???> (</span> <span style =??? color: # 0000BB ??? > NULL </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> 0 </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # DD0000???> ???SMAAngle??? </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> 0 </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> 21 </span> <span style = ???color: # 007700???>);
    </span > <span style = ???color: # FF8000???>/Iteratethenextema, comience desde los datos más antiguos:
    </span> <span style = ???color: # 007700???> for (</span> <span style = ???color: # 0000BB ???> j </span> <span style =??? color: # 007700 ???> = </span> <span style =??? color: # 0000BB ???> 20 </span> <span style =??? color: # 007700 ???>; </Span> <span style =??? color: # 0000BB ???> j </span> <span style =??? color: # 007700 ???> gt; = </span> <span style =??? color: # 0000BB ??? ???> 0 </span> <span style =??? color: # 007700 ???>; </span> <span style =??? color: # 0000BB ???> j </span> <span style =??? color: # 007700 ???> -)
    </span> <span style = ???color: # 0000BB???> EmaSmaAngle </span> <span style = ???color: # 007700???> = </span> <span style = ???color: # 0000BB ???> EmaSmaAngle </span> <span style =??? color: # 007700 ???> </span > <span style = ???color: # 0000BB???> SF </span> <span style = ???color: # 007700???> * (</span> <span style = ???color: # 0000BB???> iCustom </span> <span style = ???color: # 007700???> (</span> <span style = ???color: # 0000BB???> NULL </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> 0 </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # DD0000???> ???SMAAngle??? </span> <span style = ???color: # 007700???>, </span> <span style = ???color: # 0000BB???> 0 </span> <span style = ???color: # 007700???>, </span> <span style = ???Color: # 0000BB???> j </span> <span style = ???color: # 007700???>) - </span> <span style = ???color: # 0000BB???> EmaSmaAngle </span> <span style = ??? color: # 007700 ???>);
    </span> <span style =??? color: # 0000BB ???> Alerta </??????span> <span style =??? color: # 007700 ???> (</span> <span style = ???color: # 0000BB???> EmaSmaAngle </span> <span style = ???color: # 007700???>);
    </span> <span style = ???color: # 0000BB???> </span> </span> </code>

  5. #4
    ¡¡Muchas gracias!! Creo que la solución más inteligente ahora será aplicar la fórmula EMA21 a la matriz que obtuve con los datos. He estado comprobando pero no puedo encontrar la fórmula EMA utilizada en metatrader, utilicé la que se proporciona en el siguiente enlace:
    http://stockcharts.com/school/doku.p...ntial_moving_aDespués de usar esa fórmula, el código que obtuve es este: Código insertado doble AUX1 = 0; doble EMASMAANGLE = 0; int j = 0; para (j = 0; jlt; 21; j ) {AUX1 = EMASMAANGLE; EMASMAANGLE = iCustom (NULL, 0, SMAAngle, 0, j 21) AUX1; } AUX1 = EMASMAANGLE; EMASMAANGLE = AUX121; j = 0; para (j = 0; jlt; 21; j ) {AUX1 = EMASMAANGLE; EMASMAANGLE = AUX1 ((iCustom (NULL, 0, SMAAngle, 0, 20 - j) -AUX1))11; }/EMA (actual) = ((Precio (actual) - EMA (prev)) x Multiplicador) EMA (prev) Alerta (DoubleToStr (EMASMAANGLE, 8)); No me da el número exacto calculado por el gráfico, pero supongo que está tan cerca como voy a obtener ^ _ ^ Thx otra vez

  6. #5
    Recordé algo más esta mañana sobre iMAOnArray (). No se puede usar en un EA. Recuerdo haber luchado con esto durante horas, igual que tú y, finalmente, cuando buscaba un código de muestra, descubrí este hilo de discusión que confirmaba mis sospechas. Lo que terminé haciendo fue usar iMAOnArray () en un indicador y recuperar los valores por medio de iCustom (). Lo siento, no recuerdo esto en mis respuestas anteriores. No pierdas más tiempo, dudo que se pueda hacer.
    http://forum.mql4.com/9228

  7. #6
    Bien, investigaré los indicadores que sugieres CodeMeister. Unaiz, el código que compartió obtendrá una ventana emergente con 0 como valor. Gracias por la ayuda y el tiempo. Si obtengo una solución, la publicaré.

  8. #7
    I hope this can provide some help. PHP Code: <code><span style=???color: #000000???> <span style=???color: #0000BB???></span><span style=???color: #FF8000???>//----buffers
    </span><span style=???color: #0000BB???>doubleAUX</span><span style=???color: #007700???>#91;#93;;
    </span><span style=???color: #0000BB???>doubleEMASMAANGLE</span><span style=???color: #007700???>#91;#93;;
    </span><span style=???color: #FF8000???>//------------------------
    </span><span style=???color: #007700???>for(</span><span style=???color: #0000BB???>intj</span><span style=???color: #007700???>=</span><span style=???color: #0000BB???>0</span><span style=???color: #007700???>;</span><span style=???color: #0000BB???>j</span><span style=???color: #007700???>lt;</span><span style=???color: #0000BB???>21</span><span style=???color: #007700???>;</span><span style=???color: #0000BB???>j</span><span style=???color: #007700???> )
    {
    </span><span style=???color: #0000BB???>AUX</span><span style=???color: #007700???>#91;</span><span style=???color: #0000BB???>j</span><span style=???color: #007700???>#93;=</span><span style=???color: #0000BB???>iCustom</span><span style=???color: #007700???>(</span><span style=???color: #0000BB???>NULL</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>0</span><span style=???color: #007700???>,</span><span style=???color: #DD0000???>???SMAAngle???</span><span style=???color: #007700???>,</span><span style=???color: #FF8000???>/*entercustomindiorparametershereifnecessary*/</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>0</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>j</span><span style=???color: #007700???>);
    }
    </span><span style=???color: #0000BB???>intcounted_bars</span><span style=???color: #007700???>=</span><span style=???color: #0000BB???>IndiorCounted</span><span style=???color: #007700???>();
    </span><span style=???color: #0000BB???>intlimit</span><span style=???color: #007700???>=</span><span style=???color: #0000BB???>Bars</span><span style=???color: #007700???>-</span><span style=???color: #0000BB???>counted_bars</span><span style=???color: #007700???>;
    for(</span><span style=???color: #0000BB???>inti</span><span style=???color: #007700???>=</span><span style=???color: #0000BB???>0</span><span style=???color: #007700???>;</span><span style=???color: #0000BB???>i</span><span style=???color: #007700???>lt;</span><span style=???color: #0000BB???>limit</span><span style=???color: #007700???>;</span><span style=???color: #0000BB???>i</span><span style=???color: #007700???> )
    {
    </span><span style=???color: #0000BB???>EMASMAANGLE</span><span style=???color: #007700???>#91;</span><span style=???color: #0000BB???>i</span><span style=???color: #007700???>#93;=</span><span style=???color: #0000BB???>iMAOnArray</span><span style=???color: #007700???>(</span><span style=???color: #0000BB???>AUX</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>Bars</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>21</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>0</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>MODE_EMA</span><span style=???color: #007700???>,</span><span style=???color: #0000BB???>i</span><span style=???color: #007700???>);
    </span><span style=???color: #0000BB???>Alert</span><span style=???color: #007700???>(</span><span style=???color: #0000BB???>DoubleToStr</span><span style=???color: #007700???>(</span><span style=???color: #0000BB???>EMASMAANGLE</span><span style=???color: #007700???>#91;</span><span style=???color: #0000BB???>i</span><span style=???color: #007700???>#93;,</span><span style=???color: #0000BB???>8</span><span style=???color: #007700???>));
    }
    </span><span style=???color: #0000BB???></span> </span> </code>

  9. #8
    Si solo está interesado en el valor de la última barra, entonces el código que escribió debería funcionar. Sin embargo, debo señalar que los otros valores no serán correctos y que asumí que ese era el problema. No estoy muy familiarizado con IMAOnArray () entonces lo que suelo hacer en esa situación es encontrar un código que esté funcionando y compararlo con mi código y luego tratar de encontrar el problema a través del proceso de eliminación. Hay varios indicadores que vienen con MT4 como MACD y ATR que usan IMAOnArray (). Sugeriría que te familiarices con ellos y quizás encuentres el problema.

  10. #9
    Sí, lo que quiero decir es que había pasado tanto tiempo en él que no pude darme cuenta de lo que dices. En cuanto a lo que estoy tratando de conseguir, trataré de describirlo para que no tengas que adivinar jeje ... Tengo un indicador (SMAAngle) que tiene un valor numérico con cada barra (no es una línea continua, solo 1 valor cada barra) Luego, sobre ese indicador, puse una EMA con un período = 21, y un cambio de 0, aplicado por supuesto a los valores de ese indicador. Lo que quiero obtener es solo el último valor de esa EMA. Entonces con la codificación: * La matriz AUX tiene los 21 (y solo 21) últimos valores del indicador SMAAngle * Comprobé los valores en la matriz AUX y almacenan correctamente los valores del indicador SMAAngle * Tomé el código insertado EMASMAANGLE = iMAOnArray (AUX, 21,21,0, MODE_EMA, 0); fuera de la iteración, porque solo quiero el último valor. ¿EMASMAANGLE no debe devolver el último valor de la EMA (21) del indicador SMAAngle?

  11. #10
    Para corregir una falsa impresión que usted y muchos otros tienen, la mayoría de los programadores no pueden simplemente mirar docenas de líneas de código y descubrir qué es lo incorrecto, excepto cuando es notoriamente obvio. Incluso con nuestro propio código, no es posible y se convierte en un proceso de eliminación. De nuevo, estoy adivinando. Me parece que desea calcular valores para toda la matriz, no solo los últimos 21 valores. Creo que la llamada debería ser iMAOnArray (AUX, 0, 21,0, MODE_EMA, j);

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.