Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1728

 
Snajper007 #:

Este código muestra la señal en la décima vela. Necesito comprobar la señal en cada vela de 1 a N.

Cambiar el orden de la búsqueda.

Se busca desde la profundidad del tiempo hasta la actualidad y, por tanto, se encuentra la "señal más antigua".

A juzgar por iCustom - tienes 4 y así la numeración.

el bucle debe ser de 0 (más bien 1-2) y hasta N

for(int i=0;i<n;i++)

 
Snajper007 #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
 
Que yo recuerde el indicador FL11 está torcido y no se puede utilizar correctamente. Redibujando... El ciclo debe ir de 0 a la izquierda e interrumpir si se encuentra una señal... O bien, restablecer el tiempo de la señal en el cuerpo del ciclo e imprimir el resultado de cada barra. Pero no aprenderás nada con este indicador, consigue uno normal.
 
MakarFX #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
Nada ha cambiado. La señal sigue apareciendo en la décima vela
 
Snajper007 #:
Nada ha cambiado. La señal sigue apareciendo en la décima vela
2021.11.08 18:44:44.620 2021.10.15 17:10:00  BAG GBPUSD,H1: 0/sell: 2021.10.15 17:00:00
2021.11.08 18:44:44.571 2021.10.15 17:07:30  BAG GBPUSD,H1: 0/sell: 2021.10.15 17:00:00
2021.11.08 18:44:44.530 2021.10.15 17:05:00  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.480 2021.10.15 17:02:30  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.432 2021.10.15 17:00:00  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.385 2021.10.15 16:59:59  BAG GBPUSD,H1: 2/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.339 2021.10.15 16:57:30  BAG GBPUSD,H1: 2/sell: 2021.10.15 14:00:00
 
Snajper007 #:
Nada ha cambiado. La señal sigue apareciendo en la décima vela

Aquí está la función para analizar esta señal de este indicador de mi viejo archivo, ajustar para sus propias necesidades...

Devuelve la última señal. 1 - sol superior, 0 - sol inferior. -1 - sin señal/error.

int gsun(ENUM_TIMEFRAMES tf)
{
double up=0.0,dw=0.0;
for(int i=1;i<iBars(Symbol(),tf);i++)
  {
  up=iCustom(Symbol(),tf,"FL11",Period1,Period2,Period3,Deviat1,Deviat2,Deviat3,5,i);
  dw=iCustom(Symbol(),tf,"FL11",Period1,Period2,Period3,Deviat1,Deviat2,Deviat3,4,i);
  if(up!=0.0&&up!=EMPTY_VALUE)return(1);
  if(dw!=0.0&&dw!=EMPTY_VALUE)return(0);
  }
return(-1);
}
//---
 

MakarFX

Gracias. ¡Funciona!

 
Nikolay Ivanov #:
Que yo recuerde el indicador FL11 está torcido y no se puede utilizar correctamente. Redibujando... El ciclo debe ir de 0 a la izquierda e interrumpir si se encuentra una señal... O bien, restablecer el tiempo de la señal en el cuerpo del ciclo e imprimir el resultado de cada barra. Pero no aprenderás nada con este indicador.
¿Qué es un indicador normal?
 
Snajper007 #:


La imagen debe insertarse con el botón Imagen o adjuntarse con el botón Adjuntar archivo

 
Snajper007 #:
¿Cuál es el indicador correcto?

Cualquiera que no sobrepase la lógica, normalmente 0 bar, para los fractales 2.

Estoy juzgando en términos de funcionamiento correcto.

Razón de la queja: