Domanda sulla funzione OrderSelect - pagina 4

 
boopa26:

static int a; si trova sopra start(){ VALORE GLOBALE

non c'è differenza 1 o 0. vero o falso

Sto aumentando il valore a dopo che le condizioni hanno effetto


Quando stai chiedendo assistenza ad altri dovresti rendere il tuo codice il più facile da leggere possibile, il che include l'uso di true o false con i bool.

L'uso dei numeri può portare a errori come questo


   bool a=1;
   bool b=-1;
   if(a+b==0)
      Print("a+b equals 0");
   else
      Print("a+b does not equal 0");
  


Stai aumentando a solo se un OrderSelect fallisce, dove viene resettato?

Non hai un ciclo nel tuo codice, dove avviene il ciclo degli ordini?

 
Keith Watford:


Quando chiedete assistenza ad altri, dovreste rendere il vostro codice il più facile possibile da leggere, il che include l'uso di true o false con i bool.

Usare i numeri può portare a errori come questo


   bool a=1;
   bool b=-1;
   if(a+b==0)
      Print("a+b equals 0");
   else
      Print("a+b does not equal 0");
  


Stai solo aumentando a se un OrderSelect fallisce, dove viene resettato?

Non hai un ciclo nel tuo codice, dove fa il ciclo degli ordini?

Stai solo aumentando a se un OrderSelect fallisce, dove viene resettato?

a non viene resettato

Non hai un ciclo nel tuo codice, dove fa il ciclo degli ordini?

è stato un errore scrivere ciclo, ma il codice conta, non i commenti

 

Beh, è ovvio che lei sa tutto.

Perché stai chiedendo assistenza?

 
Keith Watford:

Beh, è ovvio che lei sa tutto.

Perché stai chiedendo assistenza?

Posso fare

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

che funziona ma volevo capire come selezionare l'ultimo ordine storico e poi determinare se l'ultimo ordine storico era in perdita o in profitto

 
boopa26:

posso fare

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

che funziona ma volevo capire come selezionare l'ultimo ordine della storia poi determinare se era perdita o profitto

Questo non funziona perché non hai selezionato un ordine. Non riesco a pensare a nessuna ragione per cui i 2 test siano nello stesso if() senza un OrderSelect()
 
Keith Watford:
Questo non funziona perché non avete selezionato un ordine. Non riesco a pensare a nessuna ragione per cui i 2 test siano nello stesso if() senza un OrderSelect()

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

if(OrdersHistoryTotal()>0&&OrderProfit()<0)

leggi ora
 

Perché stai mostrando

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

in risposta ad un commento su

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

?

Ovviamente non hanno nulla a che fare l'uno con l'altro

 
Keith Watford:

Perché stai mostrando

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

in risposta ad un commento su

if(OrdersHistoryTotal()>0&&
   OrderProfit()<0)

?

Ovviamente non hanno nulla a che fare l'uno con l'altro

Allora perché fa quello che fa? Funziona nel mio terminale mt4
 
boopa26:
Allora perché fa quello che fa? Funziona nel mio terminale mt4

Potrebbe anche fare qualcosa, ma dubito molto che faccia quello che ti aspetti.

Altrimenti perché stai postando una domanda?

Riscrivi il codice in modo logico in modo che i singoli blocchi lavorino tra loro. Usa un ciclo per scorrere gli ordini e non usare una variabile dichiarata globalmente per l'indice dell'ordine.

 
Keith Watford:

Potrebbe anche fare qualcosa, ma dubito molto che faccia quello che ti aspetti.

Altrimenti perché stai postando una domanda?

Riscrivi il codice in modo logico in modo che i singoli blocchi lavorino tra loro. Usa un ciclo per scorrere gli ordini e non usare una variabile dichiarata globalmente per l'indice dell'ordine.

ok. grazie