Características da linguagem mql4, sutilezas e técnicas - página 3

 

Ao lançar um script, um indicador, um Expert Advisor, os nomes das variáveis são exibidos na guia Input Parameters (Parâmetros de entrada)

extern int Период=10;


Se a diretiva #propriedade estrita estiver presente, o comentário é exibido ao invés do nome da variável

#property strict
extern int Период=10;  // Период отображения информации

Isto é mais informativo, IMHO

 
LRA:

Ao lançar um script, um indicador, um Expert Advisor, os nomes das variáveis são exibidos na guia Input Parameters (Parâmetros de entrada)


Se a diretiva #propriedade estrita estiver presente, o comentário é exibido ao invés do nome da variável

IMHO, é mais informativo.

Bem, então especialmente para aqueles que não sabiam disso. Veja a captura de tela, tudo está claro ali.


 

Há uma falha no MT4: quando o depoimento é maior que 999999, falta um dígito no gráfico do relatório detalhado.

Se for superior a 999999, faltam dois dígitos. Apenas os 5 dígitos superiores são sempre exibidos.


 
LRA:

Há uma falha no MT4: quando o depoimento é maior que 999999, falta um dígito no gráfico do relatório detalhado.

Se for superior a 999999, faltam dois dígitos. Apenas os 5 dígitos superiores são sempre exibidos.


Não se esqueça de dizer que você tem a escala de fontes definida para 125% nas configurações do sistema
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

Você sabia que você pode definir a duração da história? E isso afeta o tempo de busca!

Se você definir hoje - haverá menos de tudo! À meia-noite, a história estará vazia? Otimamente - os últimos 3 dias.

Para os desenvolvedores: como você pode definir programticamente a profundidade da história?

 
Ao contrário da MQL5, nas matrizes estáticas MQL4 as matrizes podem mudar de tamanho.
 
fxsaber:
Ao contrário da MQL5, nas matrizes estáticas MQL4 as matrizes podem mudar de tamanho.

Há algum erro na ajuda?

//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq4 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL4: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
} 


//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq5 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL5: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
}
 
LRA:

Há algum erro no certificado?

Não há erro se você considerar que não há matrizes estáticas na MQL4.
 
Em relação à estática, há um ponto sutil em ambos os idiomas

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

mt4 build 1066

James Cater, 2017.04.28 16:53

Encontrei um erro de regressão com a ordem de inicialização das variáveis estáticas dentro das funções

Isto estava funcionando na construção 1065. Informei isso ao balcão de serviço

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = TestBrokenStatic();
   
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

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[])
{
   return rates_total;
}


2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Resultado esperado 103 - Resultado real=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Resultado esperado 102 - Resultado real=1


 
fxsaber:
Há um momento sutil em ambos os idiomas

Que ponto sutil... Você o escreveu em SD?
Razão: