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

 
Artyom Trishkin:

Pruébalo.

Probando. La primera impresión es que se cargan 3 o 4 herramientas, mientras que se necesitan 10
Las historias se suben para todos ellos.
 
Valeriy Yastremskiy:
Probando. La primera impresión es que se cargan 3 o 4 herramientas, pero necesito 10
Las historias están cargadas en todos ellos.

No sé entonces - hace mucho tiempo que no abrí un quad

 

He abierto mt4 para comprobar el algoritmo rápidamente.

Es muy extraño que funcione correctamente en el probador, pero después de instalarlo en una cuenta real invierte las operaciones. El código es sencillo, sólo 2 buffers de indicadores


 
MakarFX:
Muchas gracias por su ayuda. He rediseñado esta parte del código y con el filtro de precios activado, las órdenes pendientes se fijan ahora sin errores. Sólo se saltan esas señales cuando la orden pendiente sigue colgada. Como se pretende. Muchas gracias una vez más))) Sólo tengo una pregunta: hay algunos lugares en los que había una señal pero la pendiente no estaba puesta y no había errores. Así que no había condiciones adecuadas en este lugar y no pasa nada, puedes vivir con confianza...)) Y tampoco había pedidos pendientes en este lugar...
 
DanilaMactep:
Muchas gracias por su ayuda. He rediseñado esta parte del código y con el filtro de precios activado, las órdenes pendientes se fijan ahora sin errores. Sólo se saltan esas señales cuando la orden pendiente sigue colgada. Como se pretende. Muchas gracias una vez más))) Sólo tengo una pregunta: hay algunos lugares en los que había una señal pero la pendiente no estaba puesta y no había errores. ¿Así que no había condiciones adecuadas en este lugar y está bien, puedes vivir sin preocupaciones? )))) Y tampoco había órdenes pendientes en este lugar...
Si no había condiciones adecuadas y es normal, puedes vivir con ello.
 
Artyom Trishkin:

Entonces no sé - hace mucho tiempo que no abrí un quad

Error, los datos de los otros instrumentos que toma el probador son actuales. Sólo desde aquí (desde otros instrumentos) se puede calcular la diferencia con la hora actual. Si está cerca de la hora actual, y el historial está cargado, puede hacer un cambio a la hora del probador. Es una muleta).

 

Pregunta: se crea un panel con un tamaño de 370, ¿cómo puedo cambiar el tamaño a 200 al comprimir el gráfico?

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,370))
     return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
     return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Pregunta: se crea un panel con un tamaño de 370, ¿cómo puedo cambiar el tamaño a 200 al comprimir el gráfico?

¿Y cómo se define la compresión de gráficos?
 
MakarFX:
¿Y cómo se define la compresión de gráficos?
   if(id==CHARTEVENT_CHART_CHANGE) {
      // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko:

Si la compresión en altura

   int ChartHigh=(ChartGetDouble(0,CHART_PRICE_MAX,0)-ChartGetDouble(0,CHART_PRICE_MIN,0))/Point; //высота графика в пунктах
   if(ChartHigh>500)  
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)

si la compresión a lo ancho

   if(ChartGetInteger(0,CHART_SCALE,0)>2) 
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)
en anchura también puede CHART_VISIBLE_BARS