[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 305

 
artmedia70:

1. Se houver uma posição de tomada de decisão fechada, ...

1.1 Se seu tipo for OP_BUY, ...

1.1.2 Se houver uma posição aberta OP_SELL, ....

1.1.3 Se o tempo atual da barra menos o tempo da posição de venda aberta for maior ou igual ao número de barras por um atraso, ...

1.1.4 Fechar uma posição de Venda

1.2 Se seu tipo for OP_SELL, ...

1.2.2 Se houver uma posição aberta OP_BUY, ...

1.2.3 Se o tempo atual da barra menos o tempo de abertura da posição Comprar for maior ou igual ao número de barras por um atraso, ...

1.2.4. fechamos a posição Comprar

Obrigado pelo algoritmo, é muito mais complicado do que eu esperava(

Você poderia esboçar o código em geral, porque levei tanto tempo para escrever o anterior, mas não consegui encontrar EAs.... similares

Não consigo encontrar EAs semelhantes, mas ficaria muito grato!

 
Antes de tentar ir ao limite, é melhor tentar avaliar se você precisa da solução.
E há muitas funções similares aqui - Funções úteis da KimIV. Há também um pronto para a sua tarefa.
 

Olá.

Por favor, ajude-me a encontrar um erro. O código conta a soma dos valores de RangeX0_D1

O resultado é apenas o último (sexto) membro da seqüência.

Agradecemos antecipadamente.

  int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  = (iHigh(NULL,1440,k)-iLow(NULL,1440,k))/Point;
    if (RangeX0_D1>0)
    RangeX0_D1++;
   }
 
int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  += (iHigh(NULL,1440,k)-iLow(NULL,1440,k))/Point;
   }
 
FAQ:
Obrigado por sua ajuda, precisão e rapidez :)
 
nemo811:
Obrigado por sua ajuda, precisão e rapidez :)


Para acelerar os cálculos, é melhor fazer as coisas um pouco diferente

int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  += (iHigh(NULL,1440,k)-iLow(NULL,1440,k));
   }
   RangeX0_D1 /= Point;

A divisão leva um longo tempo. É melhor fazer isso uma vez.

 
Boa tarde, você poderia me dizer porque as citações de 10 de junho a 22 de setembro deste ano não podem ser carregadas? Fiz dois ou três uploads de histórico e todos têm a mesma lacuna nos dados.
 
Boa tarde, alguns conselhos: O loop busca valores que satisfaçam certas condições. Os valores encontrados são escritos em um array. Não se sabe antecipadamente quantos valores serão encontrados. Portanto, o tamanho do conjunto a ser declarado é desconhecido. Do ponto de vista de tempo e recursos, prefiro não fazer duas séries (para que eu pudesse contar o número de valores encontrados na primeira série, declarar a série e escrever os dados na segunda série). Existe alguma maneira de obter o resultado necessário em uma única corrida?
 
Elenn:
Boa tarde, alguns conselhos: O loop busca valores que satisfaçam certas condições. Os valores encontrados são escritos em um array. Não se sabe antecipadamente quantos valores serão encontrados. Portanto, o tamanho do conjunto a ser declarado é desconhecido. Do ponto de vista de tempo e recursos, prefiro não fazer duas séries (para que eu pudesse contar o número de valores encontrados na primeira série, declarar a série e escrever os dados na segunda série). Existe alguma maneira de obter o resultado necessário em uma única corrida?

Uma matriz de comprimento "infinito" pode ser declarada no indicador. Declare-o e, em seguida, no laço, escreva imediatamente os valores encontrados na matriz. A única questão é como transferir a seleção necessária para o Expert Advisor/Script? Existem algumas ferramentas, mas é preciso avaliar a complexidade. Talvez fosse realmente mais fácil fazer 2 corridas - na primeira, contamos o número de valores filtrados, depois mudamos a dimensão da matriz, e na segunda, inserimos os valores na matriz?
 
Elenn:
Boa tarde, alguns conselhos: O loop busca valores que satisfaçam certas condições. Os valores encontrados são escritos em um array. Não se sabe antecipadamente quantos valores serão encontrados. Portanto, o tamanho do conjunto a ser declarado é desconhecido. Do ponto de vista de tempo e recursos, prefiro não fazer duas séries (para que eu pudesse contar o número de valores encontrados na primeira série, declarar a série e escrever os dados na segunda série). Existe alguma maneira de obter o resultado necessário em uma única corrida?

Declarar o conjunto maior do que o tamanho máximo exigido.
Razão: