[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 461

 
demlin:
Un'altra domanda. Il !OrderSelect(orderIndex, SELECT_BY_POS) - cosa significa? Non riesco a capire il !


Questa è una negazione

Se OrderSelect(orderIndex, SELECT_BY_POS) = true, !OrderSelect(orderIndex, SELECT_BY_POS)=false

 
sergeev:

! - è un'operazione booleana NON

! falso = vero

vero = falso

Allora l'intera espressione: ordine NON selezionato ?
 
Maximov7:

double C1;
// в старте
C1 = Ask;

non è possibile iniziare perché ad ogni nuovo tick viene assegnato un nuovo valore Ask.... che deve essere riservato per ulteriori operazioni


Funzionerebbe?

int start()
{
static double C1=Ask;
 
demlin:
Allora l'intera espressione: ordine NON selezionato ???

Espressione: se un ordine non è selezionato, allora si procede alla prossima iterazione del ciclo... alla ricerca dell'ordine giusto per il suo trawl... ci avviciniamo al trawl solo quando esattamente il "nostro" ordine è selezionato per lo strumento richiesto... :-))) Basta andare a capirlo - non c'è niente di complicato. :-)))
 
Roman.:

Espressione: Se nessun ordine è selezionato, si procede alla prossima iterazione del ciclo... alla ricerca dell'ordine giusto per il suo trawl... ci avviciniamo al trawl solo quando esattamente il "nostro" ordine è selezionato per lo strumento richiesto... :-))) Basta andare a capirlo - non c'è niente di complicato. :-)))
Grazie mille, informazioni estremamente utili
 
demlin:
Grazie mille, informazioni estremamente utili

Datti da fare... :-)))
 

Ho notato che gli ordini aperti o chiusi si incrociano in due modi. Ecco un esempio di quelli chiusi.

Prima:

for(pos = 0; pos < OrdersHistoryTotal(); pos++)
    {  OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY);
        ... работа с ордером ...  }
 

Il secondo:

for(pos = OrdersHistoryTotal()-1; pos >= 0; pos--)
    {  OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY);
        ... работа с ордером ...  }

Fondamentalmente tutto è chiaro (io uso solo la prima opzione), ma ci sono domande.

Perché, nel secondo caso, sottraiamo 1(OrdersHistoryTotal()-1) dal numero totale di ordini?

Ho capito bene che sia la prima che la seconda opzione fanno la stessa cosa, ma differiscono solo nel fatto che la prima inizia la ricerca dal primo all'ultimo, e la seconda inizia dall'ultimo al primo della lista?

 
tol64:

Ho notato che gli ordini aperti o chiusi si incrociano in due modi. Ecco un esempio di quelli chiusi.

Prima:

Il secondo:

È tutto chiaro in linea di principio (io uso solo la prima variante), ma ho alcune domande.

Perché, nel secondo caso, sottraiamo 1(OrdersHistoryTotal()-1) dal numero totale di ordini?

Ho capito bene che la prima e la seconda opzione fanno la stessa cosa, ma differiscono solo nel fatto che la prima inizia la ricerca dal primo all'ultimo, e la seconda inizia dall'ultimo al primo della lista?

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

E nella prima variante, è necessario sottrarre uno, poiché il contatore degli ordini parte da zero, e questo significa che l'ultimo ordine sarà proprio OrdersHistoryTotal()-1.
int OrdersHistoryTotal() - restituisce il numero di posizioni chiuse e ordini cancellati nella storia del conto, nel terminale del cliente.
Diciamo che OrdersHistoryTotal() ha restituito il numero 10 - "posizioni chiuse e ordini cancellati nella storia del conto corrente", e abbiamo il seguente quadro di ordini chiusi e cancellati - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - un totale di 10 ordini nella storia, ma il ciclo non è organizzato prima del numero 10, ma prima del numero 9, partendo da "0", cioè partiamo dalla prima linea del codice.In altre parole, otteniamo il flag SELECT_BY_POS - il parametro index passa il numero di indice della posizione nella lista, ed è a ( OrdersHistoryTotal()-1 ) che passiamo attraverso tutti i 10 ordini nella storia del terminale.

- Ho capito bene che la prima e la seconda variante fanno la stessa cosa, ma differiscono solo nel fatto che la prima inizia la ricerca dal primo all'ultimo, e la seconda inizia dall'ultimo al primo della lista?
- Sì.

P.S. Spero di essermi spiegato bene... :-)))

 
Roman.:


(Grazie. Lo capisco molto chiaramente. Chiunque può capire se lo spieghi così.)))

Un'altra domanda. Ho trovato molte domande simili nella ricerca, ma ho una domanda leggermente diversa).

La mancata corrispondenza dei grafici. Per vedere un risultato "valido" devo costantemente ricalcolare i timeframe. Cioè, se vedo che ci sono errori nel log, vado nell'archivio delle quote e ricalcolo tutti i timeframe. Nel tester, per esempio, eseguo un test sui punti di controllo. Tutto è a posto. Poi io, per esempio, formo delle barre. Tutto è a posto. Ma se eseguiamo di nuovo un test utilizzando i punti di controllo, vedrò di nuovo la discrepanza tra i grafici nel diario. Che cos'è? ))) C'è qualcosa contro questa cattiveria?

 
tol64:


(Grazie. Lo capisco molto chiaramente. Chiunque può capire se lo spieghi così.)))

Un'altra domanda. Ho trovato molte domande simili nella ricerca, ma ho una domanda leggermente diversa).

La mancata corrispondenza dei grafici. Per vedere un risultato "valido" devo costantemente ricalcolare i timeframe. Cioè, se vedo che ci sono errori nel log, vado nell'archivio delle quote e ricalcolo tutti i timeframe. Nel tester, per esempio, eseguo un test sui punti di controllo. Tutto è a posto. Poi io, per esempio, formo delle barre. Tutto è a posto. Ma se eseguiamo di nuovo un test utilizzando i punti di controllo, vedrò di nuovo la discrepanza tra i grafici nel diario. Ma che...? ))) C'è qualcosa contro questa cattiveria?


Certo che lo fa. Per aiutare a risolvere ed eliminare questi errori.:-)))