Calcolo dei profitti degli ordini chiusi "HELP - pagina 3 123456789 Nuovo commento Renat Akhtyamov 2016.12.11 16:19 #21 Vitaly Muzichenko: 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 seriecolor 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); } Profit calculation of closed Tutte le domande dei Aiuto per la codifica Vitaly Muzichenko 2016.12.11 16:24 #22 Renat Akhtyamov: 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. Alekseu Fedotov 2016.12.11 16:25 #23 Vitaly Muzichenko: Non è adatto, non ci sono informazioni per 10 anni.Profitto attuale, , tutta la storia.A proposito, può essere impostato su qualsiasi data e ora. [Eliminato] 2016.12.11 16:26 #24 Vitaly Muzichenko: ProvaComment( 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(); }}}} return(LastProfit);}Profit ricorda ogni nuovo, ma poi qualcosa conta sconosciuto. Nella schermata #3 dovrebbe essere 4, non 190 Renat Akhtyamov 2016.12.11 16:28 #25 Vitaly Muzichenko: L'avete provato? Si ricorda prima di chiudere, nel momento in cui si riceve il segnale di chiusura Basta leggere il codice. [Eliminato] 2016.12.11 16:37 #26 Anche questo, 190if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); Vitaly Muzichenko 2016.12.11 16:39 #27 Natashe4ka: Profit ricorda ogni nuovo, ma poi qualcosa conta sconosciuto. Nella schermata #3 dovrebbe essere 4, non 190Ecco il codice, funziona bene per me, ma forse perché la serie è chiusa correttamente File: info.mq4 9 kb Renat Akhtyamov 2016.12.11 16:40 #28 Natashe4ka: Così anche 190if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();Dove si trova il comando per chiudere gli ordini?Hai scritto la variabile t lì dentro?t=TimeCurrent();//разместить в блоке сигнала на закрытие серии ордеров [Eliminato] 2016.12.11 16:42 #29 Renat Akhtyamov: 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.if(t<=OrderCloseTime()) { t=OrderCloseTime();if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); Renat Akhtyamov 2016.12.11 16:48 #30 Natashe4ka: È tutto lì, naturalmente.if(t<=OrderCloseTime()) { 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 lineaLeggi sopra. 123456789 Nuovo commento
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.