Nel mio codice l'espressione 2 è j >= 0 che significa . . . while ( j >= 0 ) quindi il ciclo viene eseguito mentre j è 0 o superiore, cioè da OrdersTotal() - 1 fino a 0 compreso
Se usate j = 0 (forse dovrebbe essere scritto j == 0) significa while (j == 0) e il ciclo viene eseguito solo quando j è 0
La prima posizione dell'ordine è 0 quindi se hai 5 ordini le posizioni sono 0, 1, 2, 3, 4 . . . quindi l'ultimo è OrdersTotal() - 1 . . . quindi per contare alla rovescia inizi da OrdersTotal()-1 e finisci a 0
Questo significa che OrdersTotal () -1 è No Orders, poi 0 è il 1° ordine, 1 è 2 ordini e così via fino a 4 che equivalgono a 5 ordini.
Qualcuno potrebbe farmi sapere se la mia comprensione che -1 è uguale a Nessun ordine, è corretta?
Ho anche bisogno di aiuto per lo stesso problema. Sono un principiante e ho cercato di inserire il codice che ho visto qui, ma non funziona affatto, potete aiutarmi? L'Orderselect è stato usato
per sostituire OrdersTotal e controllare il numero di operazioni che ogni EA fa, ma ora gli altri non piazzano operazioni
In МТ3, management of open positions was rather time-taking. Traders had at their disposal a rather limited tool set to work with the list of open and closed positions. The problem of distinguishing between "own" and "someone else's" positions was solved in rather complicated ways. In МТ4, the situation has cardinally changed. Now, trader can...
int b;int bM;int s;int sM;
bool res = (OrderSelect(b,SELECT_BY_POS));
bool resM = (OrderSelect(bM,SELECT_BY_POS));
bool ses = (OrderSelect(s,SELECT_BY_POS));
bool sesM = (OrderSelect(sM,SELECT_BY_POS));
b come nessun valore, OrderSelect fallisce. bM come nessun valore, OrderSelect fallisce. s come nessun valore, OrderSelect fallisce. sM come nessun valore, OrderSelect fallisce.
Qual è lo scopo di selezionare più ordini? Il risultato è l'ultima selezione riuscita.
b e bM sono variabili locali. I numeri dei biglietti vengono persi al ritorno.
Perché stai cercando di selezionare per posizione, ma cerchi di memorizzare i numeri dei biglietti? Se selezioni per un numero di ticket valido non significa che l'ordine sia aperto.
Tu compri all'Ask e vendi al Bid.
Il TP/SL del tuo ordine di acquisto (o l'entrata del Sell Stop/Sell Limit) si attiva quando il Bid / OrderClosePrice lo raggiunge. Usando l'Ask±n, rende il tuo SL più corto e il tuo TP più lungo, per lo spread. Non vuoi che l'importo specificato sia utilizzato in entrambe le direzioni?
Il TP/SL del tuo ordine di vendita (o l'entrata del Buy Stop/Buy Limit) sarà attivato quando l'Ask / OrderClosePrice lo raggiunge. Per far scattare l'ordine a un prezzo Bid specifico, aggiungere lo spread medio. MODE_SPREAD (Paul) - Forum di programmazione MQL4 - Pagina 3 #25
I grafici mostrano solo i prezzi Bid. Attivare la linea di Ask per vedere quanto è grande lo spread(Strumenti → Opzioni (control+O) → grafici → Mostra linea di Ask). La maggior parte dei broker con spread variabile si allarga considerevolmente a fine giornata (5 PM ET) ± 30 minuti. Il mio GBPJPY (OANDA) mostra uno spread medio = 26 punti, ma uno spread medio massimo = 134.
Ti sbagli di grosso. Il tuo codice non viene mai eseguito! Usa quello di RaptorUK.
Ok :)
Mi sono semplicemente confuso con questo:
"finire quando j = 0"
Grazie!
Quindi dovrebbe essere così:
perché hai scritto questo:
o mi sbaglio?
Ti sbagli . . . dai un'occhiata a questo: for
Nel mio codice l'espressione 2 è j >= 0 che significa . . . while ( j >= 0 ) quindi il ciclo viene eseguito mentre j è 0 o superiore, cioè da OrdersTotal() - 1 fino a 0 compreso
Se usate j = 0 (forse dovrebbe essere scritto j == 0) significa while (j == 0) e il ciclo viene eseguito solo quando j è 0
No, fai così . . .
La prima posizione dell'ordine è 0 quindi se hai 5 ordini le posizioni sono 0, 1, 2, 3, 4 . . . quindi l'ultimo è OrdersTotal() - 1 . . . quindi per contare alla rovescia inizi da OrdersTotal()-1 e finisci a 0
Questo significa che OrdersTotal () -1 è No Orders, poi 0 è il 1° ordine, 1 è 2 ordini e così via fino a 4 che equivalgono a 5 ordini.
Qualcuno potrebbe farmi sapere se la mia comprensione che -1 è uguale a Nessun ordine, è corretta?
Grazie
Questo significa che OrdersTotal () -1 è No Orders, poi 0 è il 1° ordine, 1 è 2 ordini e così via fino a 4 che equivalgono a 5 ordini.
Ho anche bisogno di aiuto per lo stesso problema. Sono un principiante e ho cercato di inserire il codice che ho visto qui, ma non funziona affatto, potete aiutarmi? L'Orderselect è stato usato
per sostituire OrdersTotal e controllare il numero di operazioni che ogni EA fa, ma ora gli altri non piazzano operazioni
&& res == falseOrderselect restituirà true se ha selezionato un ordine.
Forse puoi usare un numero magico in combinazione con il symbolname.
Ecco un esempio nell'articolo che puoi studiare:https://www.mql5.com/en/articles/1359
b come nessun valore, OrderSelect fallisce. bM come nessun valore, OrderSelect fallisce. s come nessun valore, OrderSelect fallisce. sM come nessun valore, OrderSelect fallisce.
Tu compri all'Ask e vendi al Bid.
Il TP/SL del tuo ordine di acquisto (o l'entrata del Sell Stop/Sell Limit) si attiva quando il Bid / OrderClosePrice lo raggiunge. Usando l'Ask±n, rende il tuo SL più corto e il tuo TP più lungo, per lo spread. Non vuoi che l'importo specificato sia utilizzato in entrambe le direzioni?
Il TP/SL del tuo ordine di vendita (o l'entrata del Buy Stop/Buy Limit) sarà attivato quando l'Ask / OrderClosePrice lo raggiunge. Per far scattare l'ordine a un prezzo Bid specifico, aggiungere lo spread medio.
MODE_SPREAD (Paul) - Forum di programmazione MQL4 - Pagina 3 #25
I grafici mostrano solo i prezzi Bid. Attivare la linea di Ask per vedere quanto è grande lo spread(Strumenti → Opzioni (control+O) → grafici → Mostra linea di Ask).
La maggior parte dei broker con spread variabile si allarga considerevolmente a fine giornata (5 PM ET) ± 30 minuti. Il mio GBPJPY (OANDA) mostra uno spread medio = 26 punti, ma uno spread medio massimo = 134.