Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 439

 
Leanid Aladzyeu:
...
Como posso obter os valores das arrays sem chamar a função? Ou como fazer com que a matriz se lembre dos últimos valores que foram escritos?
...


A fim de recuperar algo de uma matriz, deve primeiro escrever este "algo" na matriz.

Leanid Aladzyeu:
...
Ou como fazer um array recordar os últimos valores que foram escritos?
...
Em que condições: Deve a matriz ser guardada quando o prazo é trocado ou após a recarga do terminal?
 
Karputov Vladimir:


Se eu quiser tirar algo de uma matriz, primeiro tenho de o escrever na matriz.

Para que condições: o conjunto deve ser guardado ao mudar o período de tempo da carta ou após recarregar o terminal?

não durante o trabalho da EA

Se eu colocar o retornado na função, quando há uma ordem no mercado, isso dá-me arrays nulos (eu coloco o retornado antes dos arrays nulos),

 
Leanid Aladzyeu:

Se uma ordem está no mercado, dá-me zero matrizes (eu ponho o retornado antes das matrizes serem zeradas),

Quais são as matrizes que a ordem "dá"? Onde são declarados e onde são preenchidos? Além disso, por favor, insira o código correctamente.
 
Karputov Vladimir:

Os parâmetros da função devem ser revertidos para a versão original, caso contrário, simplesmente não serão chamados:

Aqui está o código do ficheiro padrão do SignalAC

//+------------------------------------------------------------------+

//| "Votar" esse preço vai crescer. |

//+------------------------------------------------------------------+

int CSignalAC::LongCondition(void)

Compreendo desta forma: o código envia um sinal e os parâmetrosduplicam& preço,duplicam& sl,duplicam& tp,datam& prazo de validade são necessários para colocar uma encomenda,

isto é tratado por outro bloco da EA?

 

corrigiu o código para uma variante:

int CSampleSignal::ShortCondition(void)

O perito começou a fazer alguma coisa, obrigado pela dica!

 
pr0gre5:

corrigiu o código para uma variante:

int CSampleSignal::ShortCondition(void)

O perito começou a fazer alguma coisa, obrigado pela dica!

Seja bem-vindo. Pergunte, pergunte quando e onde precisa :)
 

Tal pergunta serve este código para limitar o cálculo - contando apenas uma vez com uma nova barra?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

 
-Aleks-:

Tal pergunta serve para limitar o cálculo - contar apenas uma vez com uma nova barra?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

Se o novo bar estiver num período de tempo M1, então imprimimos uma mensagem:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static datetime TimeN;
   datetime TimeC=iTime(NULL,PERIOD_M1,0);
   if(TimeN==TimeC)
      return;
   TimeN=TimeC;
// новый бар, выполняем код
   Print("New bar");
   return;
  }
 
Karputov Vladimir:

Se o novo bar estiver no prazo M1, imprima uma mensagem:

Então estou certo, isto é um cheque para um novo bar?
 
-Aleks-:
Então estou certo, é um novo cheque de bar?
Se se refere ao meu código - então sim, o meu código é uma nova verificação de barras.
Razão: