Errores, fallos, preguntas - página 3006

 
Aliaksandr Hryshyn:
Allí el puntero copia
¿Cómo se copian los datos? Bueno, aparte de elemento por elemento...
 
Vasiliy Pushkaryov:
¿Y cómo se pueden copiar los datos? Bueno, ¿aparte de elemento por elemento?

No sé si esto es correcto, pero el constructor adicional solucionó el problema. Puede ser útil para alguien.

#include <Arrays\ArrayObj.mqh>

CArrayObj ArrCur;       // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev;  // массив с объектами, каждый объект содержит структуру с полями ордеров и его id

class CID : public CObject
{
  public:  int id;
           CID() {}
           CID(CID* pt) {this = pt;}
           
};


void OnStart()
{
  // -----------------------------------------------------------------
    CID* pCur = new CID;          // создаем объект для текущих параметров
    pCur.id = 25;                 // вносим текущие данные
    ArrCur.Add(pCur);             // помещаем в массив объектов
    
    CID* pTemp = ArrCur.At(0);    // вытягиваем объект по указателю
    CID* pPrev = new CID(pTemp);  // в дин.объект копируем в конструкторе данные с предыд.указателя
    ArrPrev.Add(pPrev);           // помещаем в массив объектов
    
    ArrCur.Clear();               // чистим текущий массив
  // -----------------------------------------------------------------
  
   // --- для вывода в журнал
  int sizeCur = ArrCur.Total();       // размер = 0
  int sizePrev = ArrPrev.Total();     // размер = 1
  
  ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0));    // POINTER_INVALID
  ENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0));  // POINTER_DINAMYC
  
  Print(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
  Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));

  ArrPrev.Clear();             // чистим массив
}
 
fxsaber:

ChartScreenShot no funciona correctamente en el modo de comprobación visual.

void OnTick()
{
  Print(ChartScreenShot(0, "Test.png", 100, 100)); // true, но файл нулевой длины
  
  ExpertRemove();
}

Hola, queridos desarrolladores. ¿Puedo preguntar cuándo funcionará ChartScreenShot() en el probador?

 

¿Puedes decirme cómo cambiar los parámetros de entrada (F7) o cambiar el valor de la variable global (F3) en este tipo de EA?

input int i = 0;

const bool Init = EventSetTimer(1);

void OnTimer()
{
  Alert("");
}

Incluso sacarlo de la tabla es problemático.

 
Buenas noches, tengo una pregunta... Instalado el gestor de agentes para la venta pero la columna de la nube dice desactivado y todo el día en seis procesadores ni un solo movimiento. En la cuenta aparecen los procesadores. ¿Es esto normal?
 

Anteriormente, la depuración no era totalmente utilizable, pero la ejecución de scripts con F5 es a veces útil (aunque no está claro por qué se ejecuta en un nuevo gráfico y no en el actual).

Y accidentalmente he encontrado tales registros en el registro:

Al mismo tiempo, el propio script se está ejecutando. He intentado insertar la siguiente línea en el código:

{ DebugBreak(); Print( "DebugBreak" ); }

La línea "DebugBreak" se imprime pero no se detiene.

 
A100:

(aunque no está claro por qué se ejecuta en el nuevo gráfico y no en el actual).

En el editor Service->Settings->Debugging/Profiling
puede establecer qué símbolo se utilizará para la depuración, pero seguirá ejecutándose en un gráfico independiente.
Si no se especifica ningún símbolo, se ejecutará en el primer símbolo (superior) de Market Watch.

Tengo puntos de ruptura en general que se activan de vez en cuando. Estoy construyendo 2875
, establezco los puntos, hago clic para iniciar la depuración en datos reales, y pasa sin parar, habiendo terminado la depuración.
Reinicio el terminal con el editor, y entonces empieza a ver puntos de ruptura, hasta que algún otro inicio/parada de depuración, entonces empieza a saltar de nuevo.
Al ejecutar la depuración sobre datos históricos, llama a una ventana de comprobación en absoluto, y se salta los puntos de interrupción justo cuando termina la depuración.
Nunca se ha detenido en un punto de interrupción en los datos históricos, se salta todo el tiempocompletando la depuración.
Pero
por qué el probador se llama sobre datos históricos y los parámetros guardados se toman de él, no sé qué es, está diseñado así o es una torcedura.

 
Roman:

En el editor Service->Settings->Debugging/Profiling
puede establecer qué símbolo se utilizará para la depuración, pero seguirá ejecutándose en un gráfico independiente.
Si el símbolo no se especifica allí, se ejecutará en el primer símbolo (superior) de Market Watch.

En mi opinión, esto es extremadamente inconveniente. El gráfico actual tiene indicadores, objetos gráficos con los que el programa debe interactuar, ajustes, etc. Se inicia un nuevo gráfico "vacío". Además, el programa en el modo normal (no de depuración) se lanza desde el Navegador en la carta actual, no en la nueva - esto es una inconsistencia obvia

 
La visualización también es un poco confusa
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
Error de ejecución (orden de sustitución incorrecto)
#define  MACRO( X )
void OnStart()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
        Print( __COUNTER__ );
}

Resultado: 2

Resultado esperado: 0