Errores, fallos, preguntas - página 1009

 
TheXpert:

¿Existe un análogo de software de la llamada de botón?

ChartRedraw no funciona.

No con MQL5, y no conozco otra forma. Ya hay una solicitud en Service Desk, pero aún no hay nada.
 

OK, voy a hacer la pregunta de otra manera, tal vez hay una respuesta normal.

Hay un indicador que se calcula sobre la llegada de un evento del temporizador.

Si no hay ticks, incluso después de que los datos del indicador se actualicen, no se muestran en el gráfico hasta que éste se actualice forzosamente.

¿Existe una forma normal de hacer una visualización automática de los nuevos datos sin ticks?

 
TheXpert:

OK, voy a hacer la pregunta de otra manera, tal vez hay una respuesta normal.

Hay un indicador que se calcula sobre la llegada de un evento del temporizador.

Si no hay ticks, incluso después de que los datos del indicador se actualicen, no se muestran en el gráfico hasta que éste se actualice forzosamente.

¿Existe una forma normal de mostrar los nuevos datos automáticamente sin ticks?

Hay un problema cuando el conjunto de datos no se muestra hasta que llega un nuevo tick. Y puedes pulsar el botón de Actualizar o cambiar el marco temporal. Hice llamar a OnCalculate() en el temporizador para estos casos, pero no ayuda. Los datos de las memorias intermedias de los indicadores pueden obtenerse, pero no se muestran hasta que se produce un nuevo tick o una actualización forzada o un cambio de marco temporal.

Lo considero un error.

¿Te ocurre lo mismo o sólo no aparecen los últimos datos nuevos?

 
tol64:

¿Te ocurre lo mismo o sólo son los últimos datos nuevos los que no aparecen?

Probablemente sea lo mismo. Actualmente estoy escribiendo la lógica para el trabajo fuera de línea y de fin de semana.

Al parecer, es muy costoso en términos de recursos dar acceso a esta función al software. Pero valdría la pena hacer una actualización si el indicador ha cambiado más de (x) valores.

 
¿No ayuda ChartRedraw?
 
Renat:
¿No ayuda ChartRedraw?
Lo he comprobado a primera hora... por desgracia.
 
TheXpert:

OK, voy a hacer la pregunta de otra manera, tal vez hay una respuesta normal.

Hay un indicador que se calcula sobre la llegada de un evento del temporizador.

Si no hay ticks, incluso después de que los datos del indicador se actualicen, no se muestran en el gráfico hasta que éste se actualice forzosamente.

¿Existe una forma normal de hacer una visualización automática de los nuevos datos sin ticks?

La forma antigua y probada es cambiar el marco temporal, a falta de otro mejor.

Haciendo clic en el botón se hace aquí: https://www.mql5.com/ru/code/224

ChartReinit
ChartReinit
  • votos: 7
  • 2010.11.29
  • Vladimir Gomonov
  • www.mql5.com
Кнопочная переинициализация чарта с перерасчетом всех индикаторов, а также простенький и прозрачный объектно-ориентированный пример обработки всех чартов из одного эксперта.
 

construir 821

cuando se utiliza la biblioteca estándar(clase CTrade) al abrir una posición de mercado de compra, se puede seleccionar cambiar el stop o el beneficio después de 2,5 segundos (no menos)

PositionSelect(_Symbol)

devuelve falso

no existe tal situación con una posición de venta


//+------------------------------------------------------------------+
//|                                                test_open_buy.mq5 |
//|                                                         olyakish |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "olyakish"
#property link      "http://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh> 
CTrade trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупку

   bool res=trade.PositionOpen(_Symbol,// инструмент
                               ORDER_TYPE_BUY,// 
                               0.1,// количество лотов для торговли
                               Ask,// последняя цена bid
                               0.0,// Stop Loss
                               0.0,// Take Profit 
                               " ");
// без комментариев  
   Print("res=",res);
   Print(PositionSelect(_Symbol));
   Sleep(2500);
   Print(PositionSelect(_Symbol));

  }
//+------------------------------------------------------------------+
2013.07.01 14:49:57     test_open_buy (EURUSD,M1)       res=true
2013.07.01 14:49:57     test_open_buy (EURUSD,M1)       false
2013.07.01 14:49:59     test_open_buy (EURUSD,M1)       true
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade - Документация по MQL5
 
void GetHistoryProperties()
  {
// Узнаем, есть ли позиция
 
   HistorySelect(t1,t0);
   ulong    ticket=0;
   uint     total=HistoryDealsTotal();
   
   for(uint i=0;i<total;i++){
  if((ticket=HistoryDealGetTicket(i))>0){
  bool ss=HistoryOrderGetString(ticket,ORDER_SYMBOL,symbol1);//не работает
  Print(symbol1," ---",Symbol()," ",ss," ",ticket);
    //пустое значение symbol1
  //или так
  symbol1=myhistory.Symbol();
  Print(symbol1," ---",Symbol()," ", ticket);
  //пустое значение symbol1
 if (Symbol()==symbol1)   {  //Без этого условия всё работает




     }}}

//---
   SetInfoPanel(); // Установим/обновим информационную панель
  }  
¿No se puede obtener el símbolo del pedido en el historial?
 
zfs:
No se puede obtener el símbolo de la orden en el historial de pedidos ¿es un error o un fallo?

Creía que la respuesta a esta pregunta era afirmativa. Se selecciona el billete en el historial de operaciones y se intenta obtener la propiedad en el historial de pedidos. Son listas diferentes.

P.D. También hay un artículo con ejemplos: MQL5 Recipes - Trade History and Library of Functions for Getting Position Properties

Razón de la queja: