Aleksey Semenov: Se avete un terminale pieno di centinaia di variabili glob inutilizzate, per esempio, allora sì - la paratia finirà tristemente, se no, funziona abbastanza rapidamente, se scritto correttamente
Aleksey Semenov: Se, per esempio, il vostro terminale è pieno di centinaia di variabili glob inutilizzate, allora sì - il bulkheading finirà tristemente, se no, funziona abbastanza rapidamente, se scritto correttamente
Non mi dispiace, ma è meglio trovare modi più semplici se possibile. O non stiamo cercando vie facili) ?
Non abbiamo ancora risolto il problema, mentre questa è una funzione necessaria e molte persone la usano e non sanno che il profitto degli ordini chiusi non è considerato correttamente. Ecco perché una semplice soluzione: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); non funziona e tutti continuano a fare casino con gli ordini storici nei loro codici.
Non c'è una soluzione competente anche su tutta la rete - dice "google". Quindi, si scopre che tutti usano la soluzione standard errata, o quella corretta ma solo l'ultimo ordine?
Non abbiamo ancora risolto il problema, mentre questa è una funzione necessaria e molte persone la usano e non sanno che il profitto degli ordini chiusi non è considerato correttamente. Ecco perché una semplice soluzione: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); non funziona e tutti continuano a fare casino con gli ordini storici nei loro codici.
Non c'è una soluzione competente nemmeno su tutta la rete - dice "google". Quindi, si scopre che tutti usano la soluzione standard errata, o quella corretta ma solo l'ultimo ordine?
Noi l'abbiamo consigliato, voi non l'avete ricevuto....
Renat Akhtyamov: Noi abbiamo consigliato, voi non avete capito....
Ok, allora scomponiamolo: c'è un tempo di chiusura degli ordini, c'è un biglietto o un numero di ordini che coincide con il tempo di chiusura. Come possiamo combinare e calcolare il profitto di questi ordini? Sembra semplice, ma ancora non capiamo.
Conta correttamente, ma solo se vengono chiusi 1-3 ordini, se più di 3, allora si ottiene il profitto con un valore poco chiaro. Cos'altro possiamo aggiungere qui?
//+----------------------------------------------------------------------------+ // Возвращает суммарный профит в валюте депозита серии закрытых ордеров | //+----------------------------------------------------------------------------+ double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция) double LastProfit=0; datetime t=0; for(i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) { if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue; if (t<OrderCloseTime()) {t=OrderCloseTime();} if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();} } return(LastProfit); }
Ok, allora scomponiamolo: c'è un tempo di chiusura degli ordini, c'è un biglietto o un numero di ordini che coincide con il tempo di chiusura. Come possiamo combinare e calcolare il profitto di questi ordini? Sembra facile, ma ancora non lo capisco.
Salvi tutto questo da qualche parte in una variabile o in un array? Mostraci prima dove lo memorizzi, poi vedremo cosa fare dopo.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Se avete un terminale pieno di centinaia di variabili glob inutilizzate, per esempio, allora sì - la paratia finirà tristemente, se no, funziona abbastanza rapidamente, se scritto correttamente
Se, per esempio, il vostro terminale è pieno di centinaia di variabili glob inutilizzate, allora sì - il bulkheading finirà tristemente, se no, funziona abbastanza rapidamente, se scritto correttamente
Non mi dispiace, ma è meglio trovare modi più semplici se possibile. O non stiamo cercando vie facili?
Non mi dispiace, ma è meglio trovare modi più semplici se possibile. O non stiamo cercando una via facile?
Non abbiamo ancora risolto il problema, mentre questa è una funzione necessaria e molte persone la usano e non sanno che il profitto degli ordini chiusi non è considerato correttamente.
Ecco perché una semplice soluzione: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); non funziona e tutti continuano a fare casino con gli ordini storici nei loro codici.
Non c'è una soluzione competente anche su tutta la rete - dice "google". Quindi, si scopre che tutti usano la soluzione standard errata, o quella corretta ma solo l'ultimo ordine?
Non abbiamo ancora risolto il problema, mentre questa è una funzione necessaria e molte persone la usano e non sanno che il profitto degli ordini chiusi non è considerato correttamente.
Ecco perché una semplice soluzione: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); non funziona e tutti continuano a fare casino con gli ordini storici nei loro codici.
Non c'è una soluzione competente nemmeno su tutta la rete - dice "google". Quindi, si scopre che tutti usano la soluzione standard errata, o quella corretta ma solo l'ultimo ordine?
Noi abbiamo consigliato, voi non avete capito....
Ok, allora scomponiamolo: c'è un tempo di chiusura degli ordini, c'è un biglietto o un numero di ordini che coincide con il tempo di chiusura. Come possiamo combinare e calcolare il profitto di questi ordini?
Sembra semplice, ma ancora non capiamo.
Conta correttamente, ma solo se vengono chiusi 1-3 ordini, se più di 3, allora si ottiene il profitto con un valore poco chiaro.
Cos'altro possiamo aggiungere qui?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
Conta correttamente, ma solo se 1-3 ordini sono chiusi, se più di 3, allora il profitto è con un valore non chiaro.
Cos'altro possiamo aggiungere qui?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
Avete mai provato a chiedervi "Perché e cosa c'è scritto nel mio codice?
Vi ho già detto tre volte sopra cosa fare e come farlo.
Non sarete in grado di muovervi dal punto morto, altrimenti non sarete in grado di farlo.
Ok, allora scomponiamolo: c'è un tempo di chiusura degli ordini, c'è un biglietto o un numero di ordini che coincide con il tempo di chiusura. Come possiamo combinare e calcolare il profitto di questi ordini?
Sembra facile, ma ancora non lo capisco.