Erros, bugs, perguntas - página 3006

 
Aliaksandr Hryshyn:
Aí estão as cópias do ponteiro
Como se copiam os dados? Bem, para além de elemento por elemento?
 
Vasiliy Pushkaryov:
E como se pode copiar os dados? Bem, para além de elemento por elemento?

Não sei se isto é correcto, mas o construtor adicional resolveu o problema. Pode ser útil a alguém.

#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 não funciona correctamente em modo de teste visual.

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

Olá, caros programadores. Posso perguntar quando é que o ChartScreenShot() irá funcionar no testador?

 

Pode dizer-me como alterar os parâmetros de entrada (F7) ou alterar o valor da variável global (F3) neste tipo de EA?

input int i = 0;

const bool Init = EventSetTimer(1);

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

Mesmo tirá-lo da tabela é problemático.

 
Boa noite, tenho uma pergunta a fazer? Gerente de agente instalado para venda mas a coluna de nuvem diz incapacitado e durante todo o dia em seis processadores sem um único movimento. Os processadores estão a aparecer na conta. Isto é normal?
 

Anteriormente, Debug não era totalmente utilizável, mas correr scripts com F5 é por vezes útil (embora não seja claro porque é que corre num novo gráfico e não no actual).

E acidentalmente encontrei tais registos no diário de bordo:

Ao mesmo tempo, o próprio guião está a correr. Tentei inserir a seguinte linha no código:

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

A linha "DebugBreak" é impressa mas não é interrompida.

 
A100:

(embora não seja claro por que razão funciona no novo gráfico e não no actual).

No editor Service->Settings->Debugging/Profiling
pode definir qual o símbolo que será utilizado para a depuração, mas ainda assim será executado num gráfico separado.
Se nenhum símbolo for aí especificado, será executado no primeiro símbolo (topo) do Market Watch.

Tenho pontos de ruptura em geral que são accionados de vez em quando. Eu estabeleço os pontos em build 2875
, clico para começar a depuração em dados reais, e ele passa sem parar, tendo terminado a depuração.
Reinicio o terminal com o editor, e depois ele começa a ver pontos de interrupção, até que algum outro início/parada de depuração, depois começa a saltar novamente.
Executando a depuração de dados históricos, chama uma janela de teste, e salta pontos de ruptura tal como termina a depuração.
Nunca parou num ponto de ruptura de dados históricos, salta o tempo todo acompletar a depuração.
Mas
porque é que o testador é chamado sobre dados históricos e os parâmetros guardados são retirados, não sei o que é, se foi concebido dessa forma ou se é uma tortuosidade.

 
Roman:

No editor Service->Settings->Debugging/Profiling
pode definir o símbolo que será utilizado para a depuração, mas ainda assim será executado num gráfico separado.
Se o símbolo não for aí especificado, funcionará no primeiro símbolo (topo) do Market Watch.

Na minha opinião, isto é extremamente inconveniente. O gráfico actual tem indicadores, objectos gráficos com os quais o programa deve interagir, configurações, etc. Um novo gráfico "vazio" é iniciado. Além disso, o programa no modo normal (não depuração) é lançado a partir do Navigator na carta actual, não na nova - esta é uma inconsistência óbvia

 
A visualização é também um pouco confusa
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
Erro de execução (ordem de substituição incorrecta)
#define  MACRO( X )
void OnStart()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
        Print( __COUNTER__ );
}

Resultado: 2

Resultado esperado: 0