Ho aggiornato il post.
Per cominciare, prova a usare le rappresentazioni integrali ed esegui di nuovo il test. Vedi se questo risolve il tuo problema e poi ne riparliamo. Edit: Penso che questo abbia qualcosa a che fare con il fatto che ordertype inizierà da 0. E orderselect manterrà l'ultimo ordine selezionato al suo posto.
Per cominciare, prova a usare le rappresentazioni integrali ed esegui di nuovo il test. Vedi se questo risolve il tuo problema e poi ne riparliamo.
Edit: Penso che questo abbia qualcosa a che fare con il fatto che ordertype inizierà da 0. E orderselect manterrà l'ultimo ordine selezionato.
Potrebbe essere . . .
Prova a dichiarare orderType come qualcosa che non può essere . . . ad es.
int orderType = 10;
. . . poi vedi cosa succede, se non ottieni nessun messaggio allora la selezione dell'ordine non funziona.
Potrebbe essere . . .
Prova a dichiarare orderType come qualcosa che non può essere. . . ad es.
. . . poi vedi cosa succede, se non ottieni nessun messaggio allora la tua selezione dell'ordine non funziona.
Funziona esattamente allo stesso modo se prima dichiaro: int orderType = 10;
Ho anche provato a usare OrderType() sempre invece di dichiarare una variabile, ma c'è lo stesso problema.
Ho anche provato a chiamare OrderSelect(...) appena prima di modificare l'ordine, ma nessun cambiamento.
Aggiungete qualche istruzione Print(); in modo da poter vedere cosa sta andando storto. . . ad es.
if(/*OrderMagicNumber()==Magic &&*/ OrderSymbol()==Symbol()) { Print("orderType = ",orderType); if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) {
. . . poi date un'occhiata nella scheda Esperti.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Sto cercando di codificare un EA e in qualche punto del mio codice devo aggiornare lo stoploss degli ordini aperti e pendenti. Sto visualizzando un avviso con le informazioni sull'ordine.
Quando lo eseguo, ricevo un messaggio del tipo: "Count: 2 Stoploss 1.44705 per ordine di acquisto: 46450421 orderType: 1".
orderType: 1 significa che l'ordine 46450421 è un ordine OP_SELL, e lo è, ma perché scatta il test "if ((orderType == OP_BUY || orderType == OP_BUYSTOP))" invece di "if ((orderType == OP_SELL || orderType == OP_SELLSTOP))"?
Per favore aiutatemi :-)
Daniel