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.
Non si adatta, non ci sono informazioni per 10 anni.
Non è lo stesso neanche per te.
La variabile t cambierà e sarete agghindati.
Deve essere memorizzato prima di iniziare a chiudere la serie
color ProfitColor;
datetime t;
// START //
//t=TimeCurrent();//разместить в блоке сигнала на закрытие серии ордеров
if(LastProfitCL(-1)<0) ProfitColor=Red;
if(LastProfitCL(-1)>0) ProfitColor=LimeGreen;
if(LastProfitCL(-1)==0)ProfitColor=DarkGray;
ObjectCreate("Last Profit", OBJ_LABEL, 0, 0, 0);
ObjectSet("Last Profit", OBJPROP_CORNER, 1);
ObjectSet("Last Profit", OBJPROP_XDISTANCE, 5);
ObjectSet("Last Profit", OBJPROP_YDISTANCE, 15);
ObjectSetText("Last Profit",StringConcatenate("Last Profit: ",DoubleToStr(LastProfitCL(-1),2)),10,"Arial",ProfitColor);
// END START //
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=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 (OrderType()!= op || OrderSymbol()!= Symbol() || OrderMagicNumber()!= magic) continue;
if (op<0 || OrderType()==op)
{
if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
return(LastProfit);
}
Non è lo stesso neanche per te.
La variabile t cambierà e sarete sconvolti.
Deve essere memorizzato prima che la serie si chiuda.
L'avete provato?
Viene memorizzato prima della chiusura, al momento del segnale di chiusura.
Non è adatto, non ci sono informazioni per 10 anni.
Profitto attuale, , tutta la storia.
A proposito, può essere impostato su qualsiasi data e ora.
Prova
return(LastProfit);Comment( LastProfitCL(-1, 0) );
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
if(t<=OrderCloseTime()) {
t=OrderCloseTime();
LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}}}}
}
Profit ricorda ogni nuovo, ma poi qualcosa conta sconosciuto. Nella schermata #3 dovrebbe essere 4, non 190
L'avete provato?
Si ricorda prima di chiudere, nel momento in cui si riceve il segnale di chiusura
Anche questo, 190
Profit ricorda ogni nuovo, ma poi qualcosa conta sconosciuto. Nella schermata #3 dovrebbe essere 4, non 190
Ecco il codice, funziona bene per me, ma forse perché la serie è chiusa correttamente
Così anche 190
Dove si trova il comando per chiudere gli ordini?
Hai scritto la variabile t lì dentro?
Dove si trova il comando per chiudere gli ordini?
Avete scritto la variabile t lì dentro?
t=TimeCurrent();//posto nel blocco di segnale per chiudere una serie di ordiniÈ tutto lì, naturalmente.
t=OrderCloseTime();
if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
È tutto lì, naturalmente.
t=OrderCloseTime();
if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
No, questa linea viene rimossa. Questo è il calcolo del profitto, non funziona così.
Dove il comando per chiudere nel codice - lì, ma non una tale linea
Leggi sopra.