[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 227

 
oyshen >> :

Come posso selezionare gli ultimi 2 trade già chiusi (dalla lista della storia del conto)?

Dovrebbe essere qualcosa del genere

come scrivere il parametro corretto da selezionare?

Gli ultimi due ordini avranno i numeri OrdersHistoryTotal()-1 e OrdersHistoryTotal()-2.


Ecco uno script da testare

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()));  
   }
}

>> Buona fortuna!

 
alsu >> :

il codice è abbastanza rozzo.

Vedi: i=Bars-Period1+1 alla prima iterazione del ciclo, otteniamo k=i+Period1-1=Bars-Period1+1+Period1-1=Bars e poi Close[k], che significa che siamo già fuori dall'array.

Corretto: i=Bars-Period1-1

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

C'è un modo per trovare il massimo(min) del rapporto close[i]/close[i+1], ma senza usare gli array?? Grazie!

 
Mr-Franklyn >> :

C'è un modo per trovare il massimo (minimo) della relazione close[i]/close[i+1], ma senza usare gli array?? Grazie!

la questione è dove scrivere ciò che il massimo sarà cercato. questo è di solito chiamato un array:) ArrayMax(in)imum è ottimale

 
alsu >> :

la questione è dove scrivere ciò che il massimo sarà cercato. questo è di solito chiamato un array:) ArrayMax(in)imum -ottimale

E se lo scrivi in un buffer?

 
Mr-Franklyn >> :

C'è un modo per trovare il massimo (minimo) del rapporto close[i]/close[i+1], ma senza usare gli array? Grazie!

Se ho capito bene la domanda. Potete sperimentare non con close[i], ma così:

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

dove Cbar, -numero di ultime battute, tra le quali si cerca un estremo

 
rid >> :

Se ho capito bene la domanda. È possibile sperimentare non con la chiusura, ma così:


dove Cbar è il numero di ultime battute tra le quali si cerca l'estremo

È il valore assoluto del rapporto Prace[i]/Price[i+1] che mi interessa.

 
Mr-Franklyn >> :

E se lo mettessi in un buffer?

Un buffer non è un array?

 
alsu >> :

Un buffer non è un array?

Sì, ma se scrivo Buffer[i]=chiudi[i]/chiudi[i+1] e poi uso la funzione iHighest, non funziona niente!!!!

 
Mr-Franklyn >> :

Sì, ma se scrivo Buffer[i]=chiudi[i]/chiudi[i+1] e poi uso la funzione iHighest, allora non succede niente!!!!

perché iHighest funziona solo con le serie temporali. Per altri array analoghi a 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
}
Motivazione: