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
Mercato chiuso!
#1 - Non ho mai chiamato l'oggetto Button da OnTick(), Start(), quindi è normale?
#2- Posso applicare all'oggetto Button 'ANCHOR_RIGHT_UPPER'?
#3 - Quindi, ho ancora bisogno di aiuto per la mia preoccupazione #145, per favore.
Grazie!
#1 - I never call Button Object by OnTick(), Start(), so is it normal?
Sì
#2- Posso applicare all'oggetto Button 'ANCHOR_RIGHT_UPPER'?
No, il punto di ancoraggio è fissato ad ANCHOR_LEFT_UPPER
#3 - Quindi, ho ancora bisogno di aiuto per la mia preoccupazione #145, per favore.
Sì, sei corretto - EventSetMillisecondTimer(250)
Sì
No, il punto di ancoraggio è fissato ad ANCHOR_LEFT_UPPER
Sì, sei corretto - EventSetMillisecondTimer(250)
#Profit Orders Counting - Open
Cerco solo di ottenere tutte le posizioni redditizie per calcolare tutto in un unico valore.
Mi dà valori separati.
Ho davvero perso la testa. Ho provato alcuni modi, e ho fatto molte ricerche, ma nessun buon risultato.
Per favore, aiutatemi, se è possibile spiegatemi un po' di più sul calcolo dei profitti, lo apprezzo molto.
Spero di ottenere presto una buona risposta.
{
double trueprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers == false && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
Print( "Profit: ", trueprofit );
ObjectSetString ( 0, "all profit counting object", OBJPROP_TEXT, DoubleToString( trueprofit, 2 ) );
}
}
//---
return;
}
Grazie in anticipo.
State sovrascrivendo il valore di trueprofit ad ogni iterazione del ciclo, piuttosto che aggiungere al valore.
Ricordate questo:
è stato cambiato in questo:
Devi essere chiaro tra ciò che vuoi che accada ad ogni iterazione del ciclo (ogni ordine) e ciò che vuoi che accada dopo il ciclo (dopo aver controllato tutti gli ordini).
Grazie per la tua rapida risposta.
Forse sono molto stanco, mi dispiace. (Solo non riesco a capire cosapotrei fare).
Ho bisogno di descrivere un po' di più la mia preoccupazione ( quanto posso ).
Allora, ho 2 funzioni:
Infine, vorrei che questo ( il mio ultimo codice di commento ) il profitto calcolasse la funzione potrebbe calcolare entrambi i tipi di ordini " OP_SELL e OP_BUY " solo redditizio.
Grazie in anticipo.
come stai cercando di mostrare tutti i valori redditizi in un'etichetta?
Intendi tutti sommati AcountProfit() o per ogni OrderProfit() separato.
Se hai bisogno di qualcosa come questo:
Si prega di vedere questo articolo:
https://www.mql5.com/en/articles/2723
Grazie per il suo commento.
Mi dispiace per la confusione.
No, penso di aver bisogno di qualcosa di diverso da questo.
Cercherò di chiarire il mio problema.
Ho 3 posizioni per EURUSD. Due di loro posizioni redditizie, una di loro posizione in perdita. Quindi ho solo bisogno di calcolare due di loro che è sono redditizi.
es: se ognuno di loro +1.00 (2 posizioni redditizie = +2.00) solo ho bisogno di ottenere tutte le posizioni redditizie valore.
Ho appena fatto veloce sotto scheda per mi aiuta quello che sto cercando di dire. (al di sotto di questo file immagine di commento)
(L'inglese non è la mia lingua madre - a volte ho difficoltà con esso)
Tutto il meglio.
// in your orderselect loop put
if(OrderProfit()>0)
{
totalprofit=totalprofit+OrderProfit();
}
#Conteggio degli ordini di profitto - chiuso
{
totalprofit=totalprofit+OrderProfit();
}
Ho risolto il mio problema dopo il tuo grande codice di esempio.
Grande uomo, un grande grazie!
Stai sovrascrivendo il valore di trueprofit ad ogni iterazione del ciclo, piuttosto che aggiungerlo al valore.
Ricorda questo:
Devi essere chiaro tra ciò che vuoi che accada ad ogni iterazione del ciclo (ogni ordine) e ciò che vuoi che accada dopo il ciclo (dopo aver controllato tutti gli ordini).
Appena finito lo script del codice qui sotto.
Ancora una volta controllo il tuo commento, poi so che me lo spieghi. Ma il mio inglese impedisce di capirlo.
Tutto il meglio per ognuno di voi.
{
double trueprofit = 0;
double totalprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers != true && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
totalprofit += OrderProfit() + OrderSwap() + OrderCommission();
Print( "Profit: ", DoubleToString( totalprofit, 2 ) );
ObjectSetString ( 0, _Checkthisout_name_Label, OBJPROP_TEXT, "Total Profit: " + DoubleToString( totalprofit, 2 ) );
}
}
//---
return;
}
Spero che questo codice funzioni bene. Se qualcosa di sbagliato nel codice di cui sopra, per favore fatemelo sapere.
Grazie per tutto.