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

 
pako:

sondear el búfer, por ejemplo, así

No funciona. No importa el número de búfer que se establezca, sólo se escribe el último extremo calculado de todos modos(
 
mavar:

¿Cómo puedo ver el bollinger en el gráfico exactamente en los parámetros que están en el código? ¿Dónde están configurados los parámetros necesarios del indicador.


El bollinger está funcionando, pero lee algunos valores erróneos.

Me refiero a que puedo construir un gráfico empezando por el máximo o el mínimo, a lo largo del exponente, etc. ¿Cómo regularlo en el código y verlo en un gráfico para controlar visualmente el EA?

Cuando ejecuto Metatrader5, los indicadores que se utilizan en el probador de estrategias se dibujan automáticamente.
 
LBatters:
En metatrader5 cuando ejecuto mi EA, en el probador de estrategias, se dibujan los indicadores que utiliza.

¡No los tengo dibujados! ¿Qué estoy haciendo mal?

Aquí está mi código:


//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           Andrey |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Andrey"
#property link      "http://www.mql5.com"
#property version   "1.00"

int BolBandsHandle;                // хэндл индикатора Bolinger Bands
double BBUp[],BBLow[],BBMidle[];   // динамические массивы для хранения численных значений Bollinger Bands
//--- входные параметры
input int bands_period= 20;        // Период Bollinger Bands
input int dema_period= 20;         // Период DEMA
input int bands_shift = 0;         // Смещение относительно графика
input double deviation= 2;         // Стандартное отклонение
int demaHandle;                    // хэндл индикатора DEMA

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   printf("test string");
   
     //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   printf("test string3");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

//Переменная типа MqlTick позволяет за один вызов функции SymbolInfoTick() получить значения time, Ask, Bid, Last и Volume.
      MqlTick last_tick;
      //---
      if(SymbolInfoTick(Symbol(),last_tick))
        {
         Print(last_tick.time,": Bid = ",last_tick.bid,
               " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume, "  LastPrice = ",last_tick.last );
        }
      else Print("SymbolInfoTick() failed, error = ",GetLastError());
      //---
      
        //---Читаем свечку
   MqlRates rates[];
   ArraySetAsSeries(rates,true);
   int copied=CopyRates(Symbol(),0,0,1,rates);
   if(copied>0)
     {
      //Print("Скопировано баров: "+copied);
      string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      int size=fmin(copied,10);
      for(int i=0;i<size;i++)
        {
         //out=i+":"+TimeToString(rates[i].time);
         out=out+" "+StringFormat(format,
                                  rates[i].open,
                                  rates[i].high,
                                  rates[i].low,
                                  rates[i].close,
                                  rates[i].tick_volume);
         Print(out);
         Print(rates[i].open - rates[i].close );
        }
     }
   else Print("Не удалось получить исторические данные по символу ",Symbol());

//---=======-----\_____BOLLINGER____/--------========--//
//--- получить хэндл индикатора Bollinger Bands и DEMA
   BolBandsHandle=iBands(NULL,PERIOD_M30,bands_period,bands_shift,deviation,PRICE_CLOSE);
   demaHandle=iDEMA(NULL,PERIOD_D1,dema_period,0,PRICE_CLOSE);
   
//--- копируем новые значения индикаторов используя хэндлы
   if(CopyBuffer(BolBandsHandle,0,0,3,BBMidle)<0 || CopyBuffer(BolBandsHandle,1,0,3,BBUp)<0
      || CopyBuffer(BolBandsHandle,2,0,3,BBLow)<0)
     {
      Alert("Ошибка копирования буферов индикатора Bollinger Bands - номер ошибки:",GetLastError(),"!!");
      return;
     }
//********** это цикл надо добавить в код советника, выводит значения при наступлении нового бара
   for(int nbar=0; nbar < 1; nbar++)
     Print("nbar=", nbar, "  BBLow[nbar]=", DoubleToString(BBLow[nbar], _Digits), "  BBMidle[nbar]", DoubleToString(BBMidle[nbar], _Digits),
                    "  BBUp[nbar]=", DoubleToString(BBUp[nbar], _Digits));

  }
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   printf("test string 1 ");
 
   
  }
//+------------------------------------------------------------------+


 
C-4:
El último campeonato organizado por MetaQuotes fue en 2012. Ahora no existen esos campeonatos. Pero muchos corredores siguen celebrando sus propios campeonatos. Puedes participar en ellas.
Este es un buen sitio, yo mismo participo en él. En la mayoría de ellos los EAs están prohibidos, pero hay algunos con EAs e incluso gratuitos con premio. http://contestsarena.com/xm/ru#/login/
 
LBatters:
No funciona. No importa el número de búfer que pongas, sigue diciendo que sólo el último extremo calculado(
Eso es lo que dice, el último extremo
 

¿Cómo consigo que el EA dibuje líneas de Bollinger al iniciarse?

Tengo (código anterior) salidas de algunos valores de bollinger, pero necesito observar los parámetros visualmente.

 

¡¡Ayuda!!

He descargado e instalado metatrader 4 build 711

Descargué e instaléuna cuenta demo en InstaForex-Demo.com

No puedo suscribirme a las señales gratuitas ni a través del terminal ni de la página web

He introducido la contraseña y el inicio de sesión en lapestaña "Comunidad" del terminal

muestra el balance

Tengo conexión

en la terminal:

2014.10.15 23:35:16.541 Alojamiento virtual: ha fallado la conexión con el servidor 'www.mql5.com' (www.mql5.com:443 ha fallado)


2014.10.15 23:08:20.101 MQL5.community: autorización fallida

2014.10.15 23:08:01.847 Señal: '61447950': fallo al obtener la lista de señales, error de conexión
2014.10.15 23:03:19.887 MQL5.community: autorización fallida
2014.10.15 23:03:01.696 Señal: '61447950': fallo en la obtención de la lista de señales, error de conexión

Por favor, ayuda a entender...

 
xscanerx:

H 2014.10.15 23:08:20.101 MQL5.community: autorización fallida

Esto indica que la contraseña es incorrecta. Posibles errores: insertas un espacio; te falta el signo "_"; confundes las mayúsculas y minúsculas al introducirlo.
 
¿Me pueden decir cómo hacer que un EA aumente el lote en una posición ya abierta? MQL5. Gracias ya.
 
ArkFatalist:
¿Me pueden decir cómo hacer que un EA aumente el lote en una posición ya abierta? MQL5. Gracias ya.
Abra una posición adicional con un lote igual a la subida y con la misma dirección que la posición ya abierta. MT5 fusionará ambas posiciones en una posición acumulada por sí misma.