Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 470

 
Artyom Trishkin:

¿Por qué se te encrespa el pelo? ¿Tal vez sea el champú equivocado? ;)

¿Qué pasa? Tres topes, cada uno de ellos responsable de un periodo de cálculo diferente.

¿Qué tiene de malo?

https://www.mql5.com/ru/forum/1111/page1442#comment_2012053 - descrito en detalle allí. :)
En cuanto al pelo, ya casi ha desaparecido. :)))
 
Mike:
https://www.mql5.com/ru/forum/1111/page1442#comment_2012053 - describió todo allí en detalle. :)
En cuanto al pelo, ya casi ha desaparecido. :)))

En primer lugar: ¿coinciden todos los parámetros de los IMA separados en una ventana con los parámetros de los IMA creados por un indicador con tres topes?

Segundo: cuando has superpuesto MAIs en una ventana sobre otra, en el parámetro "Aplicar a" (o algo así - no recuerdo exactamente) ¿qué has seleccionado?

El gato dice que puede compartir su pelo - no le importa ;)

 

La documentación de la Guía de Referencia MQL5Fundamentos del lenguajeVariablesVariables de entrada

se da como ejemplo:


#property script_show_inputs 

//--- input parameters
input dayOfWeek swapday=W;

//--- day of week
enum dayOfWeek 
  {
   S=0,     // Sunday
   M=1,     // Monday
   T=2,     // Tuesday
   W=3,     // Wednesday
   Th=4,    // Thursday
   Fr=5,    // Friday,
   St=6,    // Saturday
  };

//Вставляю в советник, только без #property script_show_inputs
//Компилятор ругается:
//'dayOfWeek' - declaration without type   54   7

//Испавляю на:
input int dayOfWeek swapday=W;
//Компилятор пишет шибку:
//'swapday' - semicolon expected                   54   21

¿Puede decirme cuál es el problema?


 
Leo59:

La documentación de la Guía de Referencia MQL5Fundamentos del lenguajeVariablesVariables de entrada

se da como ejemplo:

¿Puede decirme cuál es el problema?

enum dayOfWeek debería estar por encima de input dayOfWeek. La segunda ortografía no es correcta en absoluto. Además, un consejo: no escribas esa enumeración, el modificador W será muy difícil de encontrar después.
 
Vasiliy Sokolov:
enum dayOfWeek debe ser mayor que el dayOfWeek de entrada. La segunda variante de escritura no es en absoluto correcta. Más un consejo - no escriba tal enumeración, el modificador W será extremadamente difícil de encontrar después.
¡¡¡¡MUCHAS GRACIAS!!!!
Y yo ....., por mi sencillez, planteé esta línea arriba.
Gracias.
 

Camaradas, ayuden con la alerta por favor.

Quería hacer que si la barra anterior es de más de 250 pips, entonces salga una notificación y aparezca un pitido, el problema es que suena cada 2-3 segundos... Cómo podemos hacer que el indicador espere 10 minutos, o una alerta hasta la siguiente señal

input int Bar     = 1;
input int pips    = 250;
input bool alert  = true;
input bool sound  = true;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+


int start()
  {
  //alert criteria
int buy_o, sell_o, buy_go=0, sell_go=0;

int dig;
if (Digits==3)(dig=100);
if (Digits==5)(dig=10000);

double buy_bar=(High[Bar]-Low[Bar]);if(buy_bar>0 && Open[Bar]>Close[Bar]){buy_o=buy_bar*dig;}
if(buy_o>pips){buy_go=1;}

double sell_bar=(High[Bar]-Low[Bar]);if(sell_bar>0 && Open[Bar]<Close[Bar]){sell_o=sell_bar*dig;}
if(sell_o>pips){sell_go=1;}
Comment (buy_o,"_",sell_o);   
 if (buy_go==1) //Signal Buy
 {

if(alert==TRUE){Alert("Покупка: ",Symbol(),", Пунктов:" ,buy_o);}
if(sound==TRUE){PlaySound("alert.wav");} Comment("buy");
 }
 if (sell_go==1) //Signal Sell
 {
if(alert==TRUE){Alert("Продажа: ",Symbol(),", Пунктов:" ,sell_o);}
if(sound==TRUE){PlaySound("alert.wav");} Comment ("sell");
 }




//----------
return(0);
  }
 

¿Puedes decirme cómo pasar correctamente arrays por referencia a una función?

#define   SIZE     50 
double   MACD[SIZE];         // Статический массив

int start()
   {
    Fun(     );
   }

int Fun(const double &MACD[    ])
   {
    for(int i=1; i<SIZE; i++)
        {
         if(MACD[i]>MACD[i-1] && MACD[i]>MACD[i+1])
              return(1);
        }
   }
 
Leo59:

¿Puedes decirme cómo pasar correctamente arrays por referencia a una función?

#define   SIZE     50 
double   MACD[SIZE];         // Статический массив

int start()
   {
    // Необходимо перед вызовом функции заполнить массив данными
    Fun(MACD);
   }

int Fun(const double & _array[])
   {
    for(int i=1; i<ArraySize(_array)-1; i++)
        {
         if(_array[i]>_array[i-1] && _array[i]>_array[i+1])
              return(1);
        }
   return(0);
   }
Puedes hacerlo así
 
Victor Nikolaev:
Puedes ir así.
¡¡¡¡Gracias!!!!
 
Artyom Trishkin:

En primer lugar: ¿coinciden todos los parámetros de los IMA separados en una ventana con los parámetros de los IMA creados por un indicador con tres topes?

En segundo lugar: cuando superpusiste los MAH en una ventana, ¿qué elegiste en el parámetro "Aplicar a" (o algo así, no lo recuerdo exactamente)?

El gato dice que puede compartir su pelo - no le importa ;)

1. Todos los partidos.
2. No existe tal parámetro.
Me han dicho en otro hilo que este problema no tiene solución en MT4. :(
Razón de la queja: