Ti è già stato dato un consiglio su tutto l'algoritmo, non voglio interferire e non ho nemmeno guardato il tuo codice e lo stesso consiglio... Ma questo
ha attirato la mia attenzione. Quindi la mia domanda è: non è più facile e più leggibile usare l'operatore switch
Penso che sia più facile da leggere e capire. Forse funziona anche un po' più velocemente.
Forse invece della funzione usa solo l'array volume[n]?
Anche se, se stai pagando per ogni linea di codice, è meglio lasciarlo così :))
Natalya Smirnova #: Non vengo pagato, è per me stesso e per l'autosviluppo. Dopo il lavoro, è interessante fare una ricerca del graal
Non fate caso a me. Siamo solo io e Nikolay che abbiamo un piccolo incontro...
L'essenza del tuo problema: poiché OrderProfit() nel brokeraggio forex non dà alcun valore reale, devi definire un ordine chiuso positivamente/negativamente come la differenza tra il prezzo di chiusura e il prezzo aperto dell'ordine. Vi è già stato detto di questo
Natalya Smirnova #: Non vengo pagato così tanto per me stesso e per il mio sviluppo personale. Dopo il lavoro, è divertente andare alla ricerca del Graal.
Sì, Natalia - era solo un meme della serie "Quando vieni pagato per una linea di codice".
Questo è il tipo di umorismo che hanno i programmatori.
Non hai bisogno di una funzione nel tuo caso.
double SelectVolume(int n)
Hai solo bisogno di formare le variabili Volume1 ... Le variabili Volume10 dovrebbero essere inizialmente formate come un array volume[10] e poi fare riferimento ai suoi elementi volume[n] per indice n. Non preoccupatevi - quasi ogni programmatore ci è passato. La cosa principale è che ti piaccia davvero la programmazione. Lo sento. Allora andrai lontano.
Dato che sto scrivendo per le opzioni binarie, ho fatto le cose un po' diversamente:
Questo sarebbe probabilmente corretto?
Ecco il problema
Ci sono 2 linee nel terminale per 1 ordine
E per l'ordine che è stato piazzato dall'Expert Advisor, Profit == 0
Penso che questo sia il problema
Ci sono 2 linee nel terminale per 1 ordine
E sull'ordine che è stato piazzato dall'Expert Advisor, Profit == 0
dove hai trovato un prezzo sotto lo zero - come fai a mostrare uno screenshot?
Non si vede in questo screenshot
Ti è già stato dato un consiglio su tutto l'algoritmo, non voglio interferire e non ho nemmeno guardato il tuo codice e lo stesso consiglio... Ma questo
ha attirato la mia attenzione. Quindi la mia domanda è: non è più facile e più leggibile usare l'operatore switch
Penso che sia più facile da leggere e capire. Forse funziona anche un po' più velocemente.Forse invece di una funzione basta usare un array volume[n]?
Forse sì... sono d'accordo.
Dove hai trovato un prezzo inferiore a zero, mostrami uno screenshot?
Non c'è niente del genere in questo screenshot.
Sto cercando di ottenere OrderProfit() - dà 0
ecco una conferma trovata profitto -0.01 come esce da quella linea aggiuntiva

Forse sì... sono d'accordo.
Non capisco il prezzo negativo, non c'è ancora.
contare il profitto totale in questo modo (estratto)
Quello che ti serve è evidenziato
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap();
if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))
{
if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();
if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
Non vengo pagato, è per me stesso e per l'autosviluppo. Dopo il lavoro, è interessante fare una ricerca del graal
Non fate caso a me. Siamo solo io e Nikolay che abbiamo un piccolo incontro...
L'essenza del tuo problema: poiché OrderProfit() nel brokeraggio forex non dà alcun valore reale, devi definire un ordine chiuso positivamente/negativamente come la differenza tra il prezzo di chiusura e il prezzo aperto dell'ordine. Vi è già stato detto di questo
Forum sul trading, sistemi di trading automatico e test di strategia
Controllare cosa ho fatto di sbagliato?
Renat Akhtyamov, 2021.12.21 09:27
non capire la logica che c'è dietro
come mai?
come il prezzo di chiusura dell' ordine può essere inferiore a zero?
l'ordine BUY sarà in posizione positiva se il prezzo di chiusura è superiore a quello di apertura
ecco la condizione di un buy plus (escluse le commissioni e lo swap):
Se è il contrario, è un menoNon vengo pagato così tanto per me stesso e per il mio sviluppo personale. Dopo il lavoro, è divertente andare alla ricerca del Graal.
Sì, Natalia - era solo un meme della serie "Quando vieni pagato per una linea di codice".
Questo è il tipo di umorismo che hanno i programmatori.

Non hai bisogno di una funzione nel tuo caso.
Hai solo bisogno di formare le variabili Volume1 ... Le variabili Volume10 dovrebbero essere inizialmente formate come un array volume[10]
e poi fare riferimento ai suoi elementi volume[n] per indice n.
Non preoccupatevi - quasi ogni programmatore ci è passato.
La cosa principale è che ti piaccia davvero la programmazione. Lo sento.
Allora andrai lontano.