[¡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 120

 

Hace un par de días descargué el EA "e-MoveSLTPbyMouse" (gracias Granit) y lo probé en la plataforma comercial Broco, funciona bien. Hoy decidí usarlo con IBFX y vi que no funcionaba. Apareció una línea adicional que "rebotó" en el precio, luego el mercado pasó con éxito la línea de stop loss y tuve que cerrar manualmente la posición con una pequeña pérdida. ¿Alguna opinión al respecto? ¿Qué puedo hacer para que mi Asesor Experto funcione con IBFX? ¿O quizá haya algo similar en el arsenal de alguien?

Una pregunta más. Tengo un EA que abre posiciones con líneas horizontales pero lamentablemente solo abre 3-4 pips desde el precio establecido. Por ejemplo, puse una línea de VENTA en 1,4018 con 1 pip para romperla (EUR) y la posición se abrió en 1,4015, es decir, ha bajado 2 pips. En la GBP, se sobrepasó en 3 pips. Quizás alguien tenga un EA similar, pero que funcione correctamente. Se lo agradecería mucho.

Estoy publicando este EA, tal vez alguien lo necesite.

Archivos adjuntos:
 

Señores expertos, me gustaría utilizar en mi Expert Advisor un indicador deslizante en un gráfico.

Si adjunto el indicador deslizante al gráfico manualmente, el parámetro Aplicar a puede escribirse como datos del indicador anterior, pero ¿cómo debo hacerlo en mi EA?

Creo que lo lógico sería aplicar la función OnArray , pero no sé de dónde sacar el array con los datos del primer МА.

Por ejemplo, necesito lo siguiente: si el primer МА (21) es mayor que el segundo MA (21) (construido sobre el primer MA) entonces..................

Y otra pregunta: si mi Asesor Experto tiene la siguiente llamada de función: iMA(0,0,250,0,1,0,0), entonces cada tick tomará estas 250 barras cerradas, las sumará y las dividirá por 250? Sin embargo, no es así. Y si uso una barra deslizante más, el precio bajará... Por favor, aclárese.



 
mukata писал(а) >>

Señores expertos, me gustaría utilizar en mi Expert Advisor un indicador deslizante en un gráfico.

Si adjunto el indicador deslizante al gráfico manualmente, el parámetro Aplicar a puede escribirse como datos del indicador anterior, pero ¿cómo debo hacerlo en mi EA?

Creo que la función iMAOnArray tiene sentido, pero no sé de dónde sacar el array con los datos de la primera MA, por favor, ilumíname o facilítame un enlace a dicha construcción, o la propia construcción, si existe.

Por ejemplo, necesito lo siguiente: si el primer МА (21) es mayor que el segundo MA (21) (construido sobre el primer MA) entonces..................

Y otra pregunta: si mi Asesor Experto tiene la siguiente llamada de función: iMA(0,0,250,0,1,0,0), entonces cada tick tomará estas 250 barras cerradas, las sumará y las dividirá por 250? Sin embargo, no es así. Y si uso una barra deslizante más, el precio bajará... Por favor, explique.

La forma más fácil de hacer un indicador.

 
Vinin >> :

Lo más fácil es hacer un indicador.

Hagamos un indicador, ¿de dónde sacamos la matriz de datos? Dame una pista sobre la construcción, el libro de texto no la tiene...

¿Y la segunda pregunta?

 
mukata писал(а) >>

Tengamos un indicador, ¿de dónde sacamos la matriz de datos? Por favor, dame una pista sobre la construcción, el libro de texto no la tiene...

¿Y la segunda pregunta?

En cuanto a la segunda pregunta. Todo depende de la aplicación. Puede calcular el indicador usted mismo optimizando el código. Puede calcular sólo la apertura de la barra. Hay muchas variantes.

Pero la mejor opción es utilizar el indicador. En el que se realizan todos los cálculos y el Asesor Experto los lee (valores calculados).

Este es un ejemplo de indicador

He cambiado el indicador

Archivos adjuntos:
 
Vinin >> :

Sobre la segunda pregunta. Todo depende de la aplicación. Puedes hacer tu propio cálculo optimizando el código. Sólo se puede calcular por apertura de barra. Hay muchas variantes.

Pero la mejor opción es utilizar el indicador. En el que se realizan todos los cálculos, y el Asesor Experto los lee (los valores calculados).

1) "Puedes calcular la herramienta tú mismo optimizando el código" - No entiendo esta línea. Entiendo: en cada tick se llama al inicio, y si hay llamada de la función iMA(0,0,250,0,1,0,0), entonces cada vez sumará y dividirá estas 250 barras. Y si creamos el indicador correctamente, sólo contará la última barra, y el último parámetro de desplazamiento se leerá del array. ¿Verdad?

2) ¿De dónde sacas el array para crear la segunda MA?

 
mukata >> :

2) ¿Dónde puedo obtener una matriz para calcular la segunda MA?


¡Correcto! Se me olvidaba, el indicador crea una matriz de valores MA...

Muchas gracias.

 
mukata писал(а) >>

1) "Puedes calcular la máquina tú mismo optimizando el código" - No entiendo esta línea. Entiendo: en cada tick se llama al inicio, y si hay llamada de la función iMA(0,0,250,0,1,0,0), sumará y dividirá estas 250 barras cada vez. Y si creamos el indicador correctamente, sólo contará la última barra, y el último parámetro de desplazamiento se leerá del array. ¿Verdad?

2) ¿Dónde podemos obtener una matriz para crear la segunda MA?

1. Todo depende de la aplicación. Existen métodos óptimos de cálculo. iMa() utiliza su propio algoritmo de cálculo. CodeBase los tiene. Así, cuando lo usas, funciona el mecanismo de cálculo que se te oculta. Sólo se obtiene el resultado. Y el cálculo se realizará cada tick.

2. He hecho este indicador especialmente para ayudarte a entender los arrays.

 
Vinin >> :

1. Todo depende de la aplicación. Existen métodos óptimos de cálculo. iMa() utiliza su propio algoritmo de cálculo. CodeBase los tiene. Así, cuando lo usas, funciona el mecanismo de cálculo que se te oculta. Sólo se obtiene el resultado. Y el cálculo se realizará cada tick.

2. He hecho este indicador específicamente para ayudarte a entender los arrays.

Muchas gracias por el indicador, miré la función de inicio, todo se aclaró de inmediato.

Sobre la primera pregunta:

Por ejemplo, en mi Asesor Experto (no MA, sino también una función incorporada):

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
){
//и обе линии ниже 90
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<90&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)<90
){
//и выше 50
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>50&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)>50
)
fl=1;return(fl);//продать
}
}

¿lo va a contar en cada línea?

O uno debería escribir un indicador y tomar valores de sus arrays y compararlos, o algo más. Para que funcione más rápido.

 
mukata писал(а) >>

Muchas gracias por el indicador, miré la función de inicio, todo se aclaró de inmediato.

Sobre la primera pregunta:

En mi EA por ejemplo (no MA, pero también es una función incorporada):

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
)

¿Lo va a contar en cada línea?

O debería escribir un indicador, y tomar valores de sus arrays y compararlos, o algo más. Para que funcione más rápido.

En primer lugar, es mejor calcular los valores del estocástico y de la línea de señal. Y luego compararlas. Simplemente no me gusta este estilo. El resultado es una especie de ceguera. Y es más fácil equivocarse.

If() en la variante de las metacitas hace un cálculo completo de la expresión lógica. Sería deseable que fuera lo más sencillo posible. Es que if() es una de las operaciones más lentas.

También existe la noción de "parloteo" en la barra de cero. Puede haber casos en los que la señal se repita en una barra más de una vez. E incluso puede no bloquearse. Era una señal falsa. Por eso intentamos tomar los valores de las barras formadas. Pero en este caso debemos utilizar los precios de apertura. Pero puede haber otras variantes.