![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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.