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
No, non intendo il modo in cui l'avete già scritto.
Dimmi in parole - calcolo del profitto per quali ordini chiusi ti interessa
- quotidianamente
- in perdita
- ultimo ordine
o qualcos'altro?
Descrivere la serie
Una serie di ultimi ordini chiusi "per ora"
Serie di ultimi ordini chiusi "per ora"
Cioè, avete bisogno di informazioni sulla serie di ordini chiusi più di recente, se ho capito bene?
Per implementare questo approccio, dovresti prima riempire l'array di biglietti d'ordine ad ogni chiusura riuscita e poi estrarre le informazioni sugli ordini chiusi nella forma che ti serve
Puoi farlo da solo?
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();
}}}}
}
Prova
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();
}
}
}
}
return(LastProfit);
}
E se non si chiude alla stessa ora?
Non è proprio così.
E se ve ne ricordate quando presentate l'ordine di chiusura, allora andrà bene.
ma questa linea...
non è necessario.
Tirerà il totale di tutta la serie
Ma la signora vuole informazioni più dettagliate, come ho capito dal primo post
E se non si chiude alla stessa ora?
Quindi hai bisogno di informazioni sull'ultima serie di ordini chiusi, se ho capito bene?
Per implementare questo approccio, dovresti prima creare un array di biglietti d'ordine a chiusura avvenuta e poi estrarre le informazioni sugli ordini chiusi
Puoi farlo da solo?
Per favore, consigliateci di usare un esempio.
Cioè
E poi confrontare?
È meglio che mi dia un esempio.
Cioè
E poi confrontare?
Nessun problema.
Ora l'unica cosa rimasta da chiarire è come dovrebbero essere le informazioni sugli ordini chiusi della serie ?
Si tratta di un trasferimento o l'importo deve essere diviso per + e - ?
C'è un indicatore per
i-Profit
Emette iprofitti correnti per oggi, settimana, mese, anno.
Un esempio migliore sarebbe
Ecco un esempio:
GlobalVariableSet(GetGlobalVariableName("LastProfit"), TimeCurrent()); // запомним время закрытия
// здесь код закрытия всех и сразу, нужен цикл, чтоб не выходил с функции до полного закрытия всех
}
Il resto della storia
//| Возвращает суммарный профит в валюте депозита серии закрытых позиций |
//+----------------------------------------------------------------------------+
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);
}
//===============================================================================================
//----------------------- Создает и возвращает имя глобальной переменной -----------------------+
//===============================================================================================
string GetGlobalVariableName(string name="", string symb="0") {
if(symb=="0") { symb=Symbol();}
if(!MQLInfoInteger(MQL_TESTER)) {
return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_"+name);
} else {
return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_tester"+"_"+name);
}}
Lo otteniamo anche se riavviamo il terminale
{
Comment( LastProfitCL(-1, (datetime)GlobalVariableGet(GetGlobalVariableName("LastProfit"))) );
}
C'è un indicatore per
i-Profit
Emette iprofitti correnti per oggi, settimana, mese, anno.