Fare riferimento a operazioni chiuse lunghe e corte insieme
6 risposte
glennc
6 anni fa #203095
Salve, grazie per questo eccellente programma.
Voglio ottenere il profitto totale dell'ultimo numero di operazioni, lunghe e corte, combinate.
Se separo i long e gli short con i numeri magici, non mi darà i totali degli ultimi x trade long e degli ultimi x trade short, che non sono gli stessi degli ultimi x trade combinati?
Se uso lo zero come numero magico, questo non includerà le operazioni di altri EA della stessa coppia di valute in esecuzione sulla piattaforma?
Come posso risolvere questo problema? Ho altri problemi legati a questo tipo di problema, questo è un esempio del problema.
tomas262
6 anni fa #203217
Salve,
In EA Wizard è possibile utilizzare la Somma dei PL chiusi per controllare solo i long o solo gli short avendo la stessa magia per tutti i long o tutti gli short. Se si utilizza magic = 0, gli ordini verranno conteggiati per tutte le coppie negoziate e non solo per quella su cui è stato posizionato l'EA.
glennc
6 anni fa #203230
Ciao Thomas,
Grazie per la risposta.
Quindi, per confermare: Non posso semplicemente ricavare il profitto/perdita su un certo numero di operazioni, indipendentemente dalla direzione dell'operazione?
Questa sembrerebbe una limitazione spiacevole. Come ho detto sopra, questa domanda è un esempio di un problema più grande. Se magic = 0 non può limitarsi al solo EA in questione, allora sicuramente abbiamo bisogno di una funzione che permetta di
magicLong AND magicShort o magicLong OR magicShort?
tomas262
6 anni fa #203403
Per ottenere i profitti totali di # di operazioni storiche è possibile eseguire questa funzione (collocare alla fine del codice EAWizard \ CustomFunction.mq4)
int sqGetTotalPL(int numberOfLastOrders) {
doppio pl = 0;
int count = 0;
int profitti = 0;for(int i=OrdersHistoryTotal(); i>=0; i-) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol()) {count++;
if(OrderType() == OP_BUY) {
pl = (OrderClosePrice() - OrderOpenPrice());
} else {
pl = (OrderOpenPrice() - OrderClosePrice());
}se(pl > 0) {
profitti++;
}if(count >= numberOfLastOrders) break;
}
}ritorno(profitti);
}
È quindi possibile fare riferimento alla funzione Custom Function nell'EA Wizard utilizzando la chiamata "sqGetTotalPL(3)" per ottenere il P/L delle ultime 3 operazioni su un simbolo selezionato.
glennc
6 anni fa #203693
Ciao Tomas,
Ti ringrazio molto per questo - apprezzo il tempo che deve essere impiegato. Leggendo il codice (tenendo presente che non so leggere il codice), questo mi darà un risultato solo per l'EA in cui è incluso, e non tutti i risultati per la coppia (OrderSymbol) nella cronologia MT4? Sto cercando di isolare il profitto/perdita su un certo numero di operazioni all'interno di un EA specifico, anche se altri EA sono in esecuzione sulla stessa coppia sulla stessa piattaforma.
Grazie ancora per il vostro aiuto.
tomas262
6 anni fa #203816
Salve,
questa dichiarazione nel codice OrderSymbol() == Symbol() assicura che il programma fornisca risultati solo per il simbolo su cui è stato eseguito l'EA, ad esempio EURUSD.
glennc
6 anni fa #217747
Grazie Tomas!
Stai visualizzando 6 risposte - da 1 a 6 (di 6 totali)