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

 

Hola, tengo una pregunta. ¿Qué valor devuelve iCustom() de un indicador?

es decir, tengo un indicador que tiene un cálculo que debe dar como resultado 1 o 0 o -1

y un Asesor Experto en el que se llama a iCustom().

No sé dónde poner el valor calculado en el indicador para obtenerlo en el Asesor Experto al llamarlo.

 
naked:

Hola, tengo una pregunta. ¿Qué valor devuelve iCustom() de un indicador?

es decir, tengo un indicador que tiene un cálculo que debe dar como resultado 1 o 0 o -1

y un Asesor Experto en el que se llama a iCustom().

No sé dónde poner el valor calculado en el indicador para obtenerlo en el Asesor Experto al llamarlo.

Si iCustom() es -1 en el indicador, iCustom() también dará -1 en el Asesor Experto. no es necesario cambiar nada en el indicador.
 
Entonces no entiendo, ¿debe ser iCustom() una variable definida o debo ponerla en return(????), porque dondequiera que ponga este valor iCustom() devuelve 0.
 
s500:

¡Hola!

Pregunta sobre el probador de la estrategia: Al probar en el probador de la revista no hay resultados con los registros, en los registros de error terminal también no ..... al final de la barra de carga, en el probador, hay un chirrido desagradable. asesor se encuentra en la carpeta de expertos todas las casillas de verificación se establecen cien ayuda plz?

Es posible que no haya descargado el historial de cotizaciones o que no haya configurado los ajustes para que el asesor no realice operaciones
 
naked:
no entiendo, hay que poner una determinada variable en el indicador o debo escribir return(????), porque iCustom() devuelve 0 independientemente de donde ponga este valor.
depende del tipo de indicador. si los valores 1 0 o -1 son almacenados por el array del indicador, no necesitas cambiar nada en el EA. pero si el indicador no usa un buffer, iCustom() no ayudará.
 
forex-k lo tiene. no hay array. tampoco hay variables globales. lo arreglaré. Gracias.
 

¿Es cierto que el EA puede ser probado pero no funcionará en una cuenta demo o real?

Si es así, ¿debo recodificar todo el EA para que funcione en la cuenta real?

¿por qué debería volver a codificar para una versión de prueba?

pero si es verdad, es totalmente ...... no sé cómo escribir!!!!!!! debo haber releído

el tutorial 10 veces y en la documentación no discuto todo es inteligente y hermoso, pero todavía no entiendo

¡¡¡¡lo que dice allí.!!!!

 
artmedia70:

En el EA, comprueba si la orden está cerrada en un stop. Y si es así, cambia el valor de tu bandera.

Puede utilizar la función preparada de Igor Kim para determinar si la última posición cerrada fue cerrada por un tope.

O puedes hacerlo tú mismo. En cualquier caso, sería un buen ejemplo para empezar:


No he intentado utilizar tu función, pero he intentado cambiar la bandera de otra manera más sencilla.

En el bucle, que es muy superior a la función de apertura de órdenes (comprueba más adelante en el código si necesita cerrar sus órdenes). Aquí, OP es una marca de una orden que debe ser colocada (mi bandera):

for(i=0; i<TotalPedidos(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
{OP=0;
break;// si el número de pedido i no existe, detener la búsqueda
}

....


En teoría, si el motivo era el valor de la bandera, el asunto debería haberse cerrado. Pero el probador sigue sin abrir más órdenes después de la ruptura del stop((

Una cosa más: al hacer la prueba, el probador genera el error 1. ¿Merece la pena prestarle especial atención?

 
¿Cómo puedo crear una función y llamarla?
 
ViktorF:


No he probado la función que has dado, pero he intentado cambiar la bandera de otra forma más sencilla.

En el bucle, que es muy superior a la función de apertura de órdenes (comprueba además por código la necesidad de cerrar sus órdenes). Aquí, OP es una etiqueta de una orden que debe ser colocada (mi bandera):

for(i=0; i<TotalPedidos(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
{OP=0;
break;// si el número de pedido i no existe, detener la búsqueda
}

....


En teoría, si el motivo era el valor de la bandera, el asunto debería haberse cerrado. Pero el probador sigue sin abrir más órdenes después de la ruptura del stop((

Una cosa más: al hacer la prueba, el probador genera el error 1. ¿Merece la pena prestarle especial atención?

Tienes un diseño extraño aquí. Está haciendo un bucle estándar de órdenes del terminal. Desde cero hasta OrdersTotal() -1. Y luego se comprueba la ausencia total de órdenes en el terminal en el bucle. ¿Por qué no compruebas el billete de los pedidos? ¿O un magik? Y su bandera =0 por alguna razón. ¿Y por qué no es falso? Sin embargo, tú eres el jefe. Es tu lógica, tienes que lidiar con ella. :)