Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 660

 
Igor Makanu:

este código funciona, faça-o por analogia:

Fez alterações mínimas - removeu a análise OrderMagicNumber() e adicionou três logs.
O resultado, infelizmente, é o mesmo - ver pr. - Na primeira captura de tela começa (não sei por que não começa com 0), e na segunda começa com 124 a 99.

int NumberOfOrders()
{
int i,res=0,k=OrdersTotal(); string sy=Symbol();

for(i=0; i<k; i+++)
{
log("k = " + k +"; ");
log("i = " + i +"; ");
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if((OrderSymbol()==sy)) res++; //if((OrderMagicNumber()==magic_) && (OrderSymbol()==sy)) res++;
log("res = " + res +"; ");

}
}
return(res);
}

Arquivos anexados:
test_1.png  6 kb
test_2.png  6 kb
 
Alexey Viktorov:
Este código é realmente compilado sem erros???? Eu não acredito...
O que o faz duvidar disso? Em qualquer caso, a MQL4 não produz nenhum erro.
 
Algotrader18:

(não está claro porque não começa com 0), e no segundo lugar, onde vem de 124 a 99.

porque o terminal "comeu" uma parte de Print(), a saída em MQL tem a prioridade mais baixa, acrescente Slepp(123) antes de Print() e não haverá saltos

embora, de acordo com o registro, você esteja apenas imprimindo o contador de laço

 
Igor Makanu:

porque o terminal "comeu" parte da Print(), na saída MQL tem a prioridade mais baixa, adicione Slepp(123) antes da Print() e não haverá saltos

embora, de acordo com o registro, você esteja apenas imprimindo o contador de laço

Isto é muito interessante - você pode ser um pouco mais específico? Como funciona este processo de "comer"?

Sua resposta me dá a impressão de que eu "comi" - simplesmente não a coloquei no registro porque havia coisas mais importantes, mas minha verdadeira tarefa era passar por todos os pedidos e apagar alguns deles e notei que a EA estava pulando alguns deles (não estava produzindo informações com a menor prioridade). Simplifiquei a tarefa para entender a razão e como resultado, temos apenas a saída no registro, mas ainda vejo ordens omitidas, ou seja, o Expert Advisor salta sobre várias ordens. A menor prioridade de ordem explica bem a saída inicial não de 0, mas como ela pode explicar a saída inconsistente quando salta, por exemplo, de 124 para 99.

Se por "comido" queremos dizer algo mais, eu gostaria de entender o quê?
Arquivos anexados:
test_2.png  6 kb
 
neverness:

Isso é fantástico!

Romano!

Eu, por exemplo, sou um comerciante de sucesso com 20 anos de experiência.

Não entendo porque você precisa "da diferença entre os fechamentos dos pares que você entrou, euma média móvel deles ".

Além disso, você sabe como construir uma média móvel dessas diferenças? - Fantástico!

Você pode simplesmente tirar a média móvel das citações? - Também não?

Então, qual é o problema?

a diferença em médias fechadas não é igual à diferença em médias fechadas, lamentavelmente e ah

 
Algotrader18:
Quais são as dúvidas? De qualquer forma, sem erros na MQL4.

1. Aprenda a inserir código.

Algotrader18:

Fiz alterações mínimas - removi a análise OrderMagicNumber() e adicionei três logs.
O resultado, infelizmente, é o mesmo - veja acima. - Na primeira captura de tela o início (não sei por que não começa com 0), e na segunda - o local onde começa com 124 a 99.

int NumberOfOrders()
  {
   int i,res=0,k=OrdersTotal(); string sy=Symbol();
  
   for(i=0; i<k; i++)
     {
      log("k = " + k +"; ");
      log("i = " + i +"; ");
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if((OrderSymbol()==sy)) res++;  //if((OrderMagicNumber()==magic_) && (OrderSymbol()==sy)) res++;
         log("res = " + res +"; ");
        
        }
     }
   return(res);
  }

2. log é um logaritmo????

Nota

Você pode usar log()em vez de MathLog().

MathLog - Математические функции - Справочник MQL4
MathLog - Математические функции - Справочник MQL4
  • docs.mql4.com
MathLog - Математические функции - Справочник MQL4
 
Roman Sharanov:

Eu também encontrei um sério inconveniente, muitas chamadas para CopyClose()

Você pode me dizer como copiar citações de uma série de pares de moedas em um loop?

Isso parece ser uma matriz dupla, mas a MQL não a suporta, como %.

O que você quer dizer com "dupla matriz"?

 
Alexey Viktorov:

O que você quer dizer com "dupla matriz"?

Bem, bidimensional.

 
Roman Sharanov:

Bem bidimensional.

Onde está escrito que CopyClose copia os dados em uma matriz 2D? Por que a matriz 2D foi mencionada em primeiro lugar?

 
Alexey Viktorov:

Onde está escrito que o CopyClose copia dados para uma matriz 2D? Por que a matriz bidimensional foi mencionada?

Porque eu preciso armazenar conjuntos de citações em uma matriz.

A fim de copiá-lo uma vez em loop e depois realizar cálculos usando o ArrayCopy, mas não o CloseCopy