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

 

Para Roger.

No voy a vender, no voy a vender estoy bien con el dinero. Quiero compartir ideas y entender la razón de mi estupidez ))

 

Por favor, indique cómo llamar a los indicadores AO y AC personalizados a través de iCustom. Y cómo escribir la siguiente condición a través de iCustom. Gracias de antemano.


if (iAO(NULL,0,i) > iAO(NULL,0,i+1) && iAC(NULL,0,i)> iAC(NULL,0,i+1))
{ }
else
if (iAO(NULL,0,i) < iAO(NULL,0,i+1) && iAC(NULL,0,i) < iAC(NULL,0,i+1))

 
Stepan241 >> :

Amigos, buenas tardes.

Me encontré con un detector de tendencias en uno de los foros. El autor afirmó que muestra la tendencia muy bien y puede ayudarme a crear un sistema de oscilación. Pero lo implementó directamente en su Asesor Experto. Intenté hacer un indicador basado en él. Quiero ver si se calcula correctamente.

Cito al autor:

-----------------------------------------------

No esperaba un resultado tan bueno de este hallazgo mío. Accidentalmente lo cegó - ponlo. ¡Y hasta saltó de la sorpresa!

Este método también se ha discutido ligeramente aquí - aquí https://www.mql5.com/ru/forum/105321/page11



 

Buenas tardes a todos.

¿Podría decirme cómo calcular el número de cruces del precio de un determinado nivel? Quiero que mi orden se abra después de 3 (4,5...), pero no después del primer cruce.

Gracias.

 
Por favor, dígame cómo escribir las siguientes condiciones. Si el precio actual es inferior al precio medio del día, entonces.... y en segundo lugar, si el precio a 14,56 (por ejemplo) del día actual es superior al precio actual, entonces... Sería muy interesante obtener una respuesta. Todavía no puedo resolver el problema por mí mismo. Gracias de antemano.
 
future >> :
Por favor, dígame cómo escribir las siguientes condiciones. Si el precio actual es inferior al precio medio del día, entonces.... y en segundo lugar, si el precio a 14,56 (por ejemplo) del día actual es superior al precio actual, entonces... Sería muy interesante obtener una respuesta. Todavía no puedo resolver el problema por mí mismo. Gracias de antemano.
extern string xxxxxxxxxxxxx="x=0 сегодня х=1 вчера итд";
extern int х=0;
int середина=(iHigh(0,PERIOD_D1, х)-iLow(0,PERIOD_D1, х))/2;
if(Bid> середина)...;
if(Ask< середина)...;


extern datetime some_time=D'14:56';
int середина_some_time=(iHigh(0,0,iBarShift(0,0, some_time))-iLow(0,0,iBarShift(0,0, some_time)))/2;
if(Bid> середина_some_time)...;
if(Ask< середина_some_time)...;
 
skifodessa >> :

Buenas tardes a todos.

¿Podría decirme cómo calcular cuántas veces ha cruzado el precio un determinado nivel? Quiero abrir la orden después de 3 (4,5...), pero no después del primer paso de nivel.

Gracias.

¡He entendido que las condiciones serán limitadas en el tiempo! (la tercera travesía llegará mañana ))))

Aconsejo añadir a las condiciones los datos de la fama senior. (si M5..M30 entonces H1..H4)

Por ejemplo

if(ССI(M5)>0 && CCI(H1)>0 ) OpenB();
 
Stepan241 писал(а) >>

Amigos, buenas tardes.

En uno de los foros, me encontré con un INDICADOR DE TENDENCIAS...

https://www.mql5.com/ru/forum/105321/page11#53278

 
Necron >> :

Por favor, indique cómo llamar a los indicadores personalizados AO y AC a través de iCustom. Y cómo especificar la siguiente condición a través de iCustom. Gracias de antemano.


if (iAO(NULL,0,i) > iAO(NULL,0,i+1) && iAC(NULL,0,i)> iAC(NULL,0,i+1))
{ }
else
if (iAO(NULL,0,i) < iAO(NULL,0,i+1) && iAC(NULL,0,i) < iAC(NULL,0,i+1))

¿Por qué tienes que llamarlos a través de iCast? ¿Es por la unificación? Bueno, escribe un indicador-wrapper separado para cada uno de ellos y utiliza iCustom para llamarlos...

 
skifodessa >> :

Buenas tardes a todos.

¿Podría decirme cómo calcular cuántas veces ha cruzado el precio un determinado nivel? Quiero que mi orden se abra después de 3 (4,5...), pero no después del primer paso de nivel.

Gracias.

Por ejemplo, esta es una variante universal. Por cierto, sería útil tener una función para detectar cruces:

int Cross(double a[], double level, int pos)
{
   if( a[ pos]< level&& a[ pos+1]> level) return(-1);
   if( a[ pos]> level&& a[ pos+1]< level) return(1);
   return(0);
}

es decir, si el cruce es hacia arriba, es 1, si es hacia abajo -1, de lo contrario es 0

Ahora cuenta (bar_limit - max time spread)

int count=0;
for ( i=0; i< bars_limit; i++)
{
   if( Cross( a, level, i)==1) count++;// ну или -1 если пересечения вниз считаем
}

if( count>=3) //4,5,...
{
...
}
Razón de la queja: