[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 159

 
anton777:
Eu o escrevi um pouco errado, eu o consertei.

Isso é um roteiro ou algo assim?
 
bikrus13:

isto é um roteiro ou o quê?
Este é um código do meu EA, que aumenta os pedidos à medida que são colocados.
 
anton777:
Este é um código da minha EA que aumenta os pedidos à medida que eles são colocados.

Envie-me a própria EA na minha caixa de correio se você puder. Eu darei uma olhada.
 
bikrus13:

Envie a EA você mesmo se puder. Vou dar uma olhada.


Você tem um conselheiro em uma pausa.

 

Você pode me dizer por que o iBarShift no indicador continua retornando 0?

Tudo começou quando o indicador parou de desenhar periodicamente. Decidiu descobrir a razão pela qual isto acontece e se deparou que o iBarShift sempre retorna 0.

Um pedaço de código:

   int shift = getShift(PERIOD_D1, 1); 
   datetime dt = iTime( Symbol(), PERIOD_D1, shift); //----- время всегда возвращает правильно
   int a = iBarShift( Symbol(), PERIOD_H1, dt, false); //----- а тут всегда 0

//--------
int getShift(int timeframe, int shift)
{
  return(iBarShift(NULL, timeframe, Time[shift]));
} 
 
alsu:
Acho que sim, verifique...
Acabei de ver sua sugestão, mas por esta altura já pensei nisso eu mesmo )))) Obrigado
 
olá. você sabe se existe uma função embutida que permite determinar o número da vela à qual o tempo pertence?
 
nadya:
Olá. Você sabe se existe uma função integrada que lhe permite determinar o número do candelabro a partir do momento?

int iBarShift( símbolo de corda, período int, data/hora, bool exato=falso)
Procura de barra por tempo. A função retorna o offset da barra à qual pertence o tempo especificado. Se não houver barra para o tempo especificado (uma "lacuna" no histórico), a função, dependendo do parâmetro exato, retorna -1 ou o deslocamento da barra mais próxima.
 
Vinin:

int iBarShift( símbolo de corda, período int, data/hora, bool exato=falso)
Procura de barra por tempo. A função retorna o offset da barra à qual pertence o tempo especificado. Se não houver barra para o tempo especificado (uma "lacuna" no histórico), a função, dependendo do parâmetro exato, retorna -1 ou o deslocamento da barra mais próxima.
Muito obrigado, eu me lembro que estava lá em algum lugar e é um problema encontrá-lo!
 

Aqui está o código para o roteiro:

int start()
{
   int n=0, m=7, t=2, k;
   string s;
   for(n=0;k<10000;t++)
   {k=t*4/2;
   Print("k=", k);}

   return(0);
}

Ao executar o script, uma mensagem é exibida no Log de especialista:

2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=10000
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9998
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9996
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9994
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9992
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9990
......................................................
......................................................
......................................................
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9576
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9574
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9572

Ou seja, o valor de k começa em 9572, e deve ser o primeiro valor t*4/2 = 2*4/2 = 4. Qual é o problema?