Chiusura delle posizioni. Segnale indicatore acceso. - pagina 4

 
Grazie. Farò un tentativo...
 
granit77:
Se si deve credere a komposter e Vinin, allora invece:
for (int v=0; v<OrdersTotal(); v++)

scrivere:
for (int v=OrdersTotal()-1; v>0; v--)

Per me funziona.
Errore ;) Questo chiuderà tutti gli ordini tranne il primo.
Questa è la variante corretta:
for ( int z = OrdersTotal() - 1; z >= 0; z -- )
{
 
}
 

Vado a dare un'occhiata.

granit77 e Vinin! Funziona per voi e chiude tutte le posizioni aperte? Ho questo pezzo per qualche motivo.

то вместо:
for (int v=0; v<OrdersTotal(); v++) 
 
написать:
for (int v=OrdersTotal()-1; v>0; v--)
Ha iniziato a chiudere l'ultima posizione aperta invece della prima posizione aperta. Ma tutti gli altri continuano a muoversi...
 
komposter:
granit77:
Se komposter e Vinin sono da credere, invece:
for (int v=0; v<OrdersTotal(); v++)

scrivere:
for (int v=OrdersTotal()-1; v>0; v--)

Per me funziona.
Errore ;) Questo chiuderà tutti gli ordini tranne il primo.
Questa è la variante corretta:
for ( int z = OrdersTotal() - 1; z >= 0; z -- )
{
 
}


Grazie! Ora proverò la tua raccomandazione!
 

Il risultato è sempre lo stesso! Con l'ultima opzione viene chiusa solo l'ultima posizione aperta!

Cerchiamo di capirlo!

int z = OrdiniTotali() - 1

-Qui, "z" è uguale al numero totale di ordini aperti meno uno! Allo stesso tempo, fissiamo z >=0.

Apparentemente, z-- probabilmente significa che noi (OrderSelect) cerchiamo tra gli ordini aperti partendo dal più recente ?

Ed è chiaro che l'ultimo ordine sarà chiuso. Poiché è stato il primo a "entrare nella distribuzione". Ma a questo punto, l'esecuzione della chiusura degli altri ordini si ferma! E questo algoritmo aspetta il prossimo segnale dell'indicatore per chiudere. Penso che qualcosa dovrebbe essere aggiunto qui. Non so cosa aggiungere....

E perché - z = OrdersTotal() - 1; ?

 
rid:

Il risultato è sempre lo stesso! Con l'ultima opzione, solo l'ultima posizione aperta viene chiusa!

Ora rimuovete return dopo OrderClose, e osservate il risultato ;)
 
rid:

Perché, infatti - z = OrdersTotal() - 1; ?

Poiché il numero di ordini è OrdersTotal(), il 1° ordine ha indice 0, e l'ultimo, di conseguenza, OrdersTotal()-1.
Impara le basi ;)
 
rid:

Il risultato è sempre lo stesso! Con l'ultima opzione si chiude solo l'ultima posizione aperta!

Cerchiamo di capirlo!

Fa anche bene al cervello e all'esperienza.

Tutte le biciclette e le moto sono già state (barrato) inventate prima di noi - mettete tutti gli ordini nel vostro array (forse più di uno) e fateci tutte le manipolazioni che volete. ordinarlo secondo qualsiasi criterio, o cancellarlo (il ticket è tuo amico), o modificarlo (è facile fare modifiche di stoploss/takeprofits, o creare nuovi ordini.

ps (un'altra cosa). se decidete di prendere sul serio la vostra creazione, ricordate che in qualsiasi secondo (millisecondo) la connessione con la vostra società di intermediazione può disconnettersi. La soluzione ideale è permettere all'Expert Advisor di vedere la necessità di chiudere certi ordini (in questo caso) dopo un arresto/attivazione di emergenza.

Tuttavia, la maggior parte dei "grails" venduti pubblicamente sotto forma di P.C. - sono similmente giocattolo...

 
Shu:

Tuttavia, se volete implementare algoritmi più complicati e sbarazzarvi dell'emicrania, mantenetelo semplice.
...
Mettete tutti gli ordini nel vostro array (forse più di uno) e fate tutte le manipolazioni su questo array che il vostro cuore desidera.

Posso chiedere perché? ;)
Naturalmente, se c'è qualche logica complicata o diversi algoritmi in uno, ci si può preoccupare, ma per un semplice Expert Advisor inverso, perché?
 
komposter:
Shu:

Tuttavia, se volete implementare algoritmi più complicati e sbarazzarvi dell'emicrania, mantenetelo semplice.
...
Mettete tutti gli ordini nella vostra matrice (magari non solo uno) e usatela per fare tutte le manipolazioni che volete.

Posso chiedere perché? ;)
Capisco, se c'è qualche logica complicata o diversi algoritmi in uno, ci si può preoccupare, ma per un semplice esperto di flipping, perché?


Proprio così - per una logica complessa. Tuttavia, una volta che aveva assaggiato il miele, Winnie non poteva dimenticarlo. :-)

Se c'è più di un ordine - lo uso quasi sempre. :-)