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

 
Fast235:

eso es para mí,

habrá un retraso adicional hasta que todos los puntos sean fijados por el gráfico durante la compilación

Si es necesario (por ejemplo, recompilar), crear una variable terminal expetname.deinitreason.ChartId() en OnDeinit y darle una bandera temporal, poner el código de la razón allí. Lo mismo con los datos relacionados (puede necesitarlos).

en OnInit - ver si la variable existe, actuar sobre su valor.

y eliminar dicha variable en cualquier caso...

---

pista - las terminaciones anormales se captan de la misma manera pero a la inversa :-) En OnInit se comprueba y crea una variable, y en OnDeinit se elimina. Si se ha producido un error crítico y el EA/terminal acaba de bloquearse, la variable permanecerá.

 
Maxim Kuznetsov:

Si es necesario (por ejemplo, recompilar), crear una variable terminal expetname.deinitreason.ChartId() en OnDeinit y darle la bandera temporal, colocar el código de la razón allí. Lo mismo con los datos relacionados (puede necesitarlos).

en OnInit - ver si la variable existe, actuar sobre su valor.

y eliminar dicha variable en cualquier caso...

---

pista - las terminaciones anormales se captan de la misma manera pero a la inversa :-) En OnInit se comprueba y crea una variable, y en OnDeinit se elimina. Si se ha producido un error crítico y el EA/terminal acaba de bloquearse, la variable permanecerá.

Estoy familiarizado con los archivos y las variables globales, no vale la pena crear esto, tal vez los desarrolladores de eliminar de la compilación - 0, o incluso añadir un estado que el terminal se inició, por ejemplo, puedo añadir un cargador de historia para multisymbol en lugar de entrada

 

Hola a todos! La idea era hacer las velas, el volumen, en diferentes colores dependiendo de la dirección de las velas (arriba o abajo). Sin embargo, la última vela obtiene diferentes colores debido a los cambios en la dirección de la vela a lo largo del tiempo. Y con el tiempo, todas las velas adquieren diferentes colores. La pregunta es cómo cambiar el color de la última vela y no cambiar las demás. O quizás otra idea.



//+------------------------------------------------------------------+
//|                                      VSA_Volume_Color            |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 3

//////////////
datetime PrevTime = 0;
double iVolume_UP[];
double iVolume_DWN[];
double iVolume_NULL[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorDigits(5);
//--- indicator buffers mapping
   SetIndexBuffer(0, iVolume_UP);
   SetIndexBuffer(1, iVolume_DWN);
   SetIndexBuffer(2, iVolume_NULL);
//---
   SetIndexStyle(0, DRAW_HISTOGRAM,EMPTY,2,clrGreen);
   SetIndexStyle(1, DRAW_HISTOGRAM,EMPTY,2,clrWhite);
   SetIndexStyle(2, DRAW_HISTOGRAM,EMPTY,2,clrRed);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int i = 0, counted_bars = IndicatorCounted();
   i = Bars - counted_bars - 1;
   if(counted_bars < 0)
      return(-1);
//---
   if(counted_bars > 0)
      counted_bars--;
//--- return value of prev_calculated for next call
///////////
   while(i >= 0)
     {
      if(Close[i] > Open[i])
         iVolume_UP[i] =  iVolume(NULL, 0, i) * 1.0;
      if(Close[i] < Open[i])
         iVolume_DWN[i] =  iVolume(NULL, 0, i) * 1.0;
      if(Close[i] == Open[i])
         iVolume_NULL[i] =  iVolume(NULL, 0, i) * 1.0;
      i--;
     }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   return(rates_total);
  }
//+------------------------------------------------------------------+
Gracias.
 

Restablecer los búferes innecesarios

iVolume_UP[i]=EMPTY_VALUE;
 

enlace a un tema aparte -SERIES_LASTBAR_DATE

la impresora mostró que la señal perdida porque - la señal vino del indicador a través del evento personalizado, comprobó una nueva barra usando SERIES_LASTBAR_DATE y

en la impresión los datos de la barra anterior, no los nuevos..., unas 50 operaciones en total de 7 caracteres, resbalones tales, ¿qué se puede mirar, alguna idea? ping 150.

Procesador Ryzen 3700x 16 hilos

----

si utilizo un esquema multisímbolo similar, lo he probado en 2 o 3 terminales en tiempo real, en M1 por ejemplo, espero desde un par de horas hasta medio día para un salto como este, con 40-50 operaciones al día

La carga del procesador un poco de robot, casi se duerme.

В моих ТС пропуск сигнала
В моих ТС пропуск сигнала
  • 2021.03.16
  • www.mql5.com
Не люблю создавать новые темы, Небольшие исходные данные: Советник работает в OnChatEvent, 7 символов, циклов нет, прямая передача номера за минусо...
 

una operación a 30-50, vale, puede cerrar tanto en negro como en

Tengo un sistema para calcular los beneficios totales, que es bastante complicado, y debería implicar este comercio ahora, no en la próxima señal

puedes profundizar durante 5 años.

si el modelo de eventos está torcido, por favor, hágaselo saber a los desarrolladores para que lo descarten, a juzgar por los posts iniciales en spy, donde se probaron diferentes variantes, también hubo dispersión y omisiones?
 
Aleksei Stepanenko:

Restablecer los búferes innecesarios

Genial. Todo funciona ). Gracias.
 
Chicos, por favor, aconsejadme, estoy confundido con la indexación en los buffers de los indicadores de mql5.
Si se aplica la funciónArraySetAsSeries(Buffer, true)
, ¿sólo se despliega la indexación? ¿O también se amplían los valores del buffer?
 
Roman:
Chicos, por favor, aconsejadme, estoy confundido con la indexación en los buffers de los indicadores de mql5.
Si se aplica la funciónArraySetAsSeries(Buffer, true)
, ¿sólo se expande la indexación? ¿O también se amplían los valores del buffer?
Cuando es verdadero, la barra cero del buffer del indicador es la más a la derecha del gráfico. Si es falso, es la barra más a la izquierda.
Nada más.
 
Artyom Trishkin:
Cuando es verdadero, la barra cero del búfer del indicador está más a la derecha en el gráfico. En falso es más a la izquierda.
Eso es todo.

Gracias.
Artem, por favor, dime una cosa más.
La función

ChartSetInteger(ChartID(), CHART_SHOW, false)
Oculta la ventana principal del gráfico y las subventanas del indicador instalado.
¿Cómo puedo ocultar sólo la ventana principal del gráfico? Al mismo tiempo, la subventana del indicador debe permanecer visible.
Razón de la queja: