Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 877

 
evillive:
Correcto, cuando se utilizan las Bandas de Bollinger, no es necesario llamar a iCustom, se llama a iBands, para cada línea del indicador - por separado. La forma alternativa sin llamar al indicador ("sin usar búferes, matrices y bucles") es implementar en el Asesor Experto el algoritmo del cálculo del indicador y leer el valor correcto cuando sea necesario (puede leer sólo el valor correcto, por ejemplo, sólo la línea inferior). Pero no es posible prescindir completamente de los bucles y las matrices.

DE ACUERDO. Entonces, ¿cómo escribir esto correctamente?

MB_2=iBands(NULL,0,10,0,2.0,PRICE_CLOSE,2);
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]);

¿Cómo se extraen los valores de ExtUpperBuffer[0] y ExtUpperBuffer[1], y los inferiores respectivamente?

 
rapid_minus:

BIEN. Entonces, ¿cómo escribir esto correctamente?

MB_2=iBands(NULL,0,10,0,2.0,PRICE_CLOSE,2);
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]);

¿Cómo se extraen los valores de ExtUpperBuffer[0] y ExtUpperBuffer[1], pozo y fondo respectivamente?

También en este caso la llamada al indicador está escrita de forma incorrecta.

Ya lo escribí correctamente aquí. No tienes que inventarte nada, todo está en la referencia.

Una vez más:

High_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,2); //это и есть ExtUpperBuffer[2]
High_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,1); //ExtUpperBuffer[1]
High_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0); //ExtUpperBuffer[0]
Low_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,2); //ну и нижние соответственно, ExtLowerBuffer[2]
Low_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,1); //ExtLowerBuffer[1]
Low_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); //ExtLowerBuffer[0]
 
evillive:

También en este caso, la llamada del indicador está escrita de forma incorrecta.

Ya he escrito aquí la forma correcta. No tienes que inventarte nada, todo está en el manual.

Una vez más:

Bueno, lo conseguí la tercera vez. Eso parece.

Así que el error en MB_2 es que no hay una designación de línea llamable, ¿verdad? Pero aún no he encontrado cómo llamar a la línea media de Bollinger. ¿O sólo como media móvil? MODE_SMA ?

 
rapid_minus:

Bueno, lo conseguí a la tercera vez. Parece que sí.

Así que el error en MV_2 es que no hay una designación de línea invocable, ¿verdad? Pero aún no he encontrado cómo llamar a la línea media de Bollinger. ¿O sólo como media móvil? MODE_SMA ?

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - a barra cero (último dígito entre paréntesis - desplazamiento a la barra deseada).

No hay que apresurarse, lee la ayuda con atención.

 
evillive:

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - a barra cero (último dígito entre paréntesis - desplazamiento a la barra requerida).

No hay que apresurarse, lee la ayuda con atención.

Gracias.

Sólo que cómo encontrarla en la ayuda cuando no se sabe cómo formular la pregunta, ¡esa es la cuestión!

Gracias de nuevo. Voy a investigar un poco más.

 
rapid_minus:

Gracias.

Sólo que cómo encontrarla en la ayuda cuando no se sabe cómo formular la pregunta, ¡esa es la cuestión!

Gracias de nuevo. Me voy a investigar un poco más.

Aprender a hacer las preguntas correctas es la mitad de la respuesta, de alguna manera ;)
 
mario065:
Aquí hay un ejemplo en el que mostré cómo medir una barra después de cruzar 2 muves.

probé su código

¿La pregunta es el número de barra?

He explicado su valor dibuja diferentes números incluyendo el cero en la mano de la hora

Intenté pasarlo por un probador, y lo mismo.

Si el valor de uno es el mismo que el del otro, intentará sacar números como necesito

gracias

 
sannin:

probé su código

¿La pregunta es el número de barra?

He explicado su valor dibuja diferentes números incluyendo el cero en la mano de la hora

Intenté pasarlo por un probador, y lo mismo.

Si el valor de uno es el mismo que el del otro, intentará sacar números como necesito

Gracias

Sólo trato de dar un ejemplo.

Veo que lo has hecho).

Aquí está el código:

//+------------------------------------------------------------------+
//|                                                    count bar.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

extern int limit = 300;
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    static datetime time,timeup,timedn;
    double spread=MarketInfo(Symbol(),MODE_SPREAD);
    double maslow1,mafast1,maslow2,mafast2;
    int    shift,shift1,shift2,f,j;
    
    for(shift=limit;shift>0;shift--){
        shift1=shift+1;shift2=shift+2;
        maslow1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift1);
        mafast1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift1);
        maslow2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift2);
        mafast2 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift2);
 
     if(mafast2<maslow2 && mafast1>maslow1){
        timeup=Time[shift1];
       } 
     if(mafast2>maslow2 && mafast1<maslow1){
        timedn=Time[shift1];
       } 
     
     if(timeup > timedn){
        time = timeup;
       } else {
        time = timedn;
       }
     }
 
      int b1=iBarShift(Symbol(), 0, time);      
      int b2=iBarShift(Symbol(), 0, TimeCurrent());
//Преброяване на баровете-от нулевия до началната дата
    for(j=b2;j<=b1;j++){
        f=b1-b2;
       }
      
   Comment("\n Време на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS)," Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\n Текущ спред: ",DoubleToStr(spread/10,1),
           "\n=====================",
           "\n Начална дата:           ",TimeToStr(time,TIME_DATE|TIME_SECONDS), 
           "\n Брой барове:            ",f,
           "\n=====================" 
             ); 
   return(0);
  }
//+------------------------------------------------------------------+

 
mario065:

Lo escribí como un ejemplo.

Veo que lo has conseguido :)

Aquí está el código:

Muchas gracias.

Lo compartiré cuando sea rico.

 
sannin:

Muchas gracias.

Lo compartiré cuando sea rico.

El café es suficiente cuando te haces rico ;)
Razón de la queja: