[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 227

 
oyshen >> :

Como posso selecionar as 2 últimas negociações já fechadas (da lista do histórico da conta)?

Deveria ser algo como isto

como escrever o parâmetro correto para selecionar?

As duas últimas ordens terão os números OrdersHistoryTotal()-1 e OrdersHistoryTotal()-2.


Aqui está um roteiro para testar

int start()
{
   int i, accTotal=OrdersHistoryTotal();
   for( i=0; i< accTotal; i++)
   {
     if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)==false)
       {
        Alert("Ошибка при доступе к исторической базе (",GetLastError(),")");
        break;
       }
     Alert( i,":",TimeToStr(OrderCloseTime()));  
   }
}

>> Boa sorte!

 
alsu >> :

o código é bastante grosseiro.

Veja: i=Bars-Period1+1 na primeira iteração do loop, obtemos k=i+Period1-1=Bars-Period1+1+Period1-1=Bars e depois Close[k], o que significa que já estamos fora do array.

Correção: i=Bars-Period1-1

..................

Existe alguma maneira de encontrar o máximo (min) da relação close[i]/close[i+1], mas sem usar arrays??? Obrigado!

 
Mr-Franklyn >> :

Existe alguma maneira de encontrar o máximo(min.) da relação estreita[i]/fechada[i+1], mas sem o uso de arrays? Obrigado!

a questão é onde escrever o máximo que será procurado. isto é normalmente chamado de array:) ArrayMax(in)imum é ótimo

 
alsu >> :

a questão é onde escrever o máximo que será procurado. isto é normalmente chamado de array:) ArrayMax(in)imum -optimal

E se você o escrever em um buffer?

 
Mr-Franklyn >> :

Existe alguma maneira de encontrar o máximo(min.) da relação close[i]/close[i+1], mas sem usar arrays?? Obrigado!

Se eu entendi a pergunta corretamente. Você pode experimentar não de perto[i], mas assim:

макс= iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH, Cbar,0));
мин= iLow (NULL,0,iLowest (NULL,0,MODE_LOW, Cbar,0));  

onde Cbar, - número das últimas barras, entre as quais um extremo é procurado

 
rid >> :

Se eu entendi a pergunta corretamente. É possível experimentar não de perto, mas desta forma:


onde Cbar é o número de últimas barras entre as quais o extremo é procurado

É o valor absoluto da razão Prace[i]/Preço[i+1] que me interessa.

 
Mr-Franklyn >> :

E se você o colocar em um buffer?

Um amortecedor não é um conjunto?

 
alsu >> :

Um amortecedor não é um conjunto?

Sim, mas se eu escrever Buffer[i]=close[i]/close[i+1] e depois usar a função iHighest, nada funciona!!!!

 
Mr-Franklyn >> :

Sim, mas se eu escrever Buffer[i]=close[i]/close[i+1] e depois usar a função iHighest, então nada acontece!!!!

porque iHighest só trabalha com timeseries. Para outras matrizes analógicas do ArrayMaximum

 
double Buffer[];

int init()
{
   SetIndexBuffer(0, Buffer);
}

int start()
{
for( i= start; i>=0; i--)
{
   Buffer[ i]=Close[ i]/Close[ i+1];
   double max= Buffer[ArrayMaximum( Buffer, period, i)];
   double min= Buffer[ArrayMinimum( Buffer, period, i)];
   double stddev=iStdDevOnArray( Buffer, period,8,0,MODE_EMA, i);
//TODO
}
///TODO
}