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

 

Pregunta de la Administración.

Por favor, ayúdenme a descargar la versión demo de Osiris.

Cuando intento descargarlo, no se descarga.

Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
  • www.mql5.com
Советник Звездочет 1.0 универсал. НЕ мартинит НЕ усредняется И не торгует сетками ордеров. Терминал МТ4. Это вы можете сами проваерить при
 
Oleg Kolesov #:
La cuestión principal sigue sin resolverse. Cómo colorear el tampón con dos colores. >= Azul a <= Rojo.

No puedo entender sus términos y condiciones.

Ejemplo. Frontera = 5

Valor == 8, color azul.

Valor == 1, color - rojo.

Valor == 5, color - ¿qué?

 
Oleg Kolesov #:
Voy a tomar un descanso. Gracias.

modificó ligeramente su indicador (tiene un Asesor Experto para el probador)

Captura de pantalla 2021-10-12 071433

Archivos adjuntos:
V2.mq5  9 kb
 
SanAlex ¿cómo lo calificas?
 
Oleg Kolesov #:
SanAlex ¿cómo lo calificas?

ordinario como cualquier otra cosa - un experto, con todos los adornos, ganará dinero.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

EUR\USD-H2 Su indicador en las 2 horas se encuentra en la dirección hacia abajo - en el momento neutral a la espera de cambiar hacia arriba o continuar moviéndose hacia abajo.

EURUSDH2it

 
¿Por qué no se puede registrar el comando de impresión?
 
Evgeny Dyuka #:
¿Por qué no se puede registrar el comando de impresión?

La protección contra ... Se ha evitado que el usuario haga lo que no debe. Haz clic con el botón derecho del ratón en el terminal, en la pestaña "Expertos" y ejecuta el comando "Ver".

 

¡Hola Señores y Señoras!

No te lances con los pulgares hacia arriba por mi pregunta. Entiendo que es ingenuo, pero todos somos "Dios, qué ingenuos fuimos" (romance).

Escribí un Asesor Experto utilizando el algoritmo original. Las pruebas demuestran que es más eficaz en el modo scalper. No voy a contar los resultados porque todos conocemos a los inventores de Perpetuum Mobile y Grails. No es ni lo uno ni lo otro y tiene una seria desventaja - depende de los valores de los spreads y las comisiones y del stop loss como todas las estrategias scalper. Sólo tengo un ajuste - SL y tiene 6-10 pps en 5 señales. Me podéis iluminar como tratar el tema o con que broker puedo jugar estos juegos.

 
Hola.
Hay un indicador. Suma las órdenes limitadas en la copa y lo muestra en forma de gráfico.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2

#property indicator_label1 "Delta buy"
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 clrWhite
#property indicator_width1 3

#property indicator_label2 "Delta sell"
#property indicator_type2 DRAW_HISTOGRAM
#property indicator_color2 clrBlue
#property indicator_width1 3

int iStart;
double iDelta1[];
double iDelta2[];

void OnDeinit(const int reason)
{
  string symbol = Symbol();

  MarketBookRelease(symbol);
}

void OnInit()
{
  string symbol = Symbol();

  SetIndexBuffer(0, iDelta1, INDICATOR_DATA);
  ArraySetAsSeries(iDelta1, true);
  
  SetIndexBuffer(1, iDelta2, INDICATOR_DATA);
  ArraySetAsSeries(iDelta2, true);

  IndicatorSetString(INDICATOR_SHORTNAME, "OrderBook");
  IndicatorSetInteger(INDICATOR_DIGITS, Digits());

  MarketBookAdd(symbol);
}

int OnCalculate(
  const int bars,
  const int counted,
  const datetime& time[],
  const double& open[],
  const double& high[],
  const double& low[],
  const double& close[],
  const long& ticks[],
  const long& volume[],
  const int& spread[]
)
{
  if (iStart == 0)
  {
    iStart = 1;
    ZeroMemory(iDelta1);
    ZeroMemory(iDelta2);
  }
  else if (bars != counted)
  {
    iDelta1[0] = iDelta1[1];
    iDelta2[0] = iDelta2[1];
  }

  string symbol = Symbol();

  double ask = SymbolInfoDouble(symbol, SYMBOL_ASK);
  double bid = SymbolInfoDouble(symbol, SYMBOL_BID);

  MqlBookInfo levels[];

  bool book = MarketBookGet(symbol, levels);

  int indexBuy = 1;
  int indexSell = 1;
  long volumeBuy = 0;
  long volumeSell = 0;


  if (book)
  {
    int size = ArraySize(levels);

    for (int k = 0; k < size; k++)
    {
      if (levels[k].price >= ask) 
      {
        volumeSell += indexSell * levels[k].volume;
        indexSell++;
         
      }
    }

    for (int k = size - 1; k >= 0; k--)
    {
      if (levels[k].price <= bid) 
      {
        volumeBuy += indexBuy * levels[k].volume;
        indexBuy++;
     
      }
    }
  }

 iDelta1[0] = (double) ( - volumeSell);
 iDelta2[0] = (double) (volumeBuy); 
  return bars;
}
Y con cada nuevo cambio en la pila, sobrescribe la cantidad pasada. ¿Cómo hago para que acumule la suma? Es decir, no sobrescribiría los datos de la barra actual, sino que los añadiría? Intenté implementarlo usando el bucle "while" y añadir datos mientras la barra actual no se ha movido, pero algo salió mal. Por favor, no se sienta mal por una pregunta tan trivial.
 

FileOpen devuelve el error 5001(No se pueden abrir más de 64 archivos simultáneamente).
Parece que se cierra correctamente cada vez a través de FileClose(file_handle).

¿Dónde y cómo se acumula el recuento de archivos abiertos y cómo se puede restablecer?

Razón de la queja: