![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
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.