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

 
psyman:

Para el siguiente código, una historia en imágenes:


Desconectada la red, añadiendo un indicador

Paso al siguiente gráfico


y2 cambió de valor, vuelvo


y2 ha devuelto su valor, pero el marcador cuenta con el valor "desaparecido". Hago girar la rueda del ratón.

El marcador vuelve a estar en su sitio.

Al cambiar al gráfico adyacente, todas las ventanas inactivas no se expanden a pantalla completa. Es decir, son más pequeños que en el estado activo. Por lo tanto, los objetos obtienen coordenadas más pequeñas a partir de la esquina superior izquierda del gráfico. Entonces, cuando se activa la ventana, hay que esperar a que se actualice el gráfico o refrescarlo forzosamente. Esto se hace desplazando la rueda de desplazamiento.

 
psyman:

Para el siguiente código, una historia en imágenes:


Desconectada la red, añadiendo un indicador

Paso al siguiente gráfico


y2 cambió de valor, vuelvo


y2 ha devuelto su valor, pero el marcador cuenta con el valor "desaparecido". Hago girar la rueda del ratón.

El marcador vuelve a estar en su sitio.

puedes descartarChartTimePriceToXY
e
imprimir texto plano(OBJ_TEXT) + 1-3 barras en el futuro, siempre estará donde lo necesites)

 
Taras Slobodyanik:

puedes descartarChartTimePriceToXY
e
imprimir texto plano(OBJ_TEXT) + 1-3 barras en el futuro, siempre estará donde quieras)

Sólo si se desactiva el desplazamiento de la barra hacia la derecha, el texto quedará fuera de la ventana.

La idea es correcta, pero aparentemente la experiencia es muy escasa.

 
Alexey Viktorov:

Sólo si se desactiva el desplazamiento de la barra hacia la derecha, el texto quedará fuera de la ventana.

Es una buena idea, pero es probable que tengas muy poca experiencia.

Bueno, si quieres que el marcador esté al derecho, puedes tomar la barra más a la derecha del gráfico y dibujar sobre ella.

 

Buenas tardes.
¿Podríais aconsejar cómo crear variables de tipo global en EA, que estos datos no se borren al llamar a nuevas funciones?

Llamar a los datos variables a través de :

bool  GlobalVariableGet( string  "name", double "var"  ); // К примеру

Donde entonces se puede insertar "var" en las operaciones.

Y se crean con la función :

datetime  GlobalVariableSet( 
   string  name,      // имя 
   double  value      // устанавлимое значение 
   );

Estoy tratando de entender todo. No hay ejemplos y no estoy muy seguro de cómo funcionarán los datos si uno esdatetime y el otro esbool? ¿No hay errores?

 
psyman:

Para el siguiente código, una historia en imágenes:

Desconectada la red, añadiendo un indicador

Paso al siguiente gráfico

y2 cambió de valor, vuelvo

y2 ha devuelto su valor, pero el marcador cuenta con el valor "desaparecido". Hago girar la rueda del ratón.

El marcador vuelve a estar en su sitio.

//+------------------------------------------------------------------+
//|                                              !_clr_indicator.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0

string objname="Bid";
input color Bid_color = clrCrimson;

//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason) 
   { 
   ObjectDelete(0,objname);
   } 
//+------------------------------------------------------------------+
//| 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[])
{
   SetTXT();
   return(rates_total);
}

//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) 
{ 
   if(id==CHARTEVENT_CHART_CHANGE) 
      SetTXT();
}

//+------------------------------------------------------------------+
void SetTXT() 
{
int      first_bar=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
int      width_bar=(int)ChartGetInteger(0,CHART_WIDTH_IN_BARS,0);
double   label_price=iClose(_Symbol,_Period,0);
datetime label_time=0;

   if(width_bar>first_bar)
      label_time=iTime(_Symbol,_Period,1)+(width_bar-first_bar)*PeriodSeconds();
   else
      label_time=iTime(_Symbol,_Period,first_bar-width_bar+1);

   if(ObjectFind(0,objname)<0)
      {
      ObjectCreate(0, objname, OBJ_TEXT,0,0,0);
      ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 12);
      ObjectSetInteger(0, objname, OBJPROP_COLOR, Bid_color);
      ObjectSetString(0, objname, OBJPROP_FONT, "Verdana");
      ObjectSetInteger(0,objname,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
      ObjectSetInteger(0,objname,OBJPROP_BACK,false);
      ObjectSetInteger(0,objname,OBJPROP_SELECTABLE,false);
      }
   
   ObjectSetString(0,objname,OBJPROP_TEXT,DoubleToString(label_price, _Digits-1)); 
   ObjectMove(0,objname,0,label_time,label_price);
   
   ChartRedraw();
}
 
Taras Slobodyanik:


Muchas gracias, mañana pensaré en la forma de sustituir iTime e iClose, ya que estoy sentado en XP.

 
¡Buenos días a todos!
Pregunta para los programadores .
Por favor, aconséjeme.
Algunos brokers no me permiten abrir una orden con un precio de take profit y un precio de stop loss.

Sólo una función OrderSend().

Por el contrario, OrderSend() abrirá una orden, pero el precio de stop y de beneficio estarán ausentes en esta orden.

Esta orden debe ser modificada en líneas posteriores de código utilizando OrderModify() y añadiendo stop y profit a la orden.


Así que la pregunta es, ¿quién y cómo maneja o asegura un caso en función de la compra o venta
cuando, por ejemplo, OrderSend() funcionaba pero OrderModify() no funcionaba por alguna razón y el
¿hay una orden abierta sin stop ni beneficio?

¿Cómo me aseguraría contra un suceso de este tipo y/o cómo lo gestionaría?
Por favor, avisa.
Si no sabes cómo usar Astrakhan, por favor no uses el código de Astrakhan.

tiempo, pero no puedo encontrar ninguna información al respecto.

Creo que la función Breakeven tiene un cierto seguro, pero sólo si el precio ha entrado en rojo.

¿Si el precio se volvió a la pérdida, pero no hay stop loss?

Le agradezco mucho su respuesta.
 

Hola a todos.

¿Me pueden decir por qué no puedo entrar en sus propiedades cuando el EA está funcionando? Antes sí, pero ahora no puedo abrir las propiedades. Una vez reiniciado el terminal ayudó, pero el problema volvió a aparecer al cabo de un minuto. El Asesor Experto es fresco, el terminal también está trabajando recientemente. ¿Cuál es el problema con las propiedades de EA?

Gracias.

 
demonRDV:

Hola a todos.

¿Me pueden decir por qué no puedo entrar en sus propiedades cuando el EA está funcionando? Antes sí, pero ahora no puedo abrir las propiedades. Reiniciar el terminal ayudó una vez, pero el problema volvió a aparecer al cabo de un minuto. El Asesor Experto es fresco, el terminal también está trabajando recientemente. ¿Cuál es el problema con las propiedades de EA?

Gracias.

Pulse la tecla de acceso directo F7 :-)

no siempre es posible hacer clic en el icono del EA: el icono puede estar cubierto por otros objetos, el EA puede sobrecargar la cola de mensajes y otras 100500 razones

Razón de la queja: