Confrontare il Profitto

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
Rispondi
texcs
Messaggi: 144
Iscritto il: 29/05/2014, 23:08

Confrontare il Profitto

Messaggio da texcs »

Ragazzi mi serve un aiuto ho fatto questa funzione

Codice: Seleziona tutto

extern double     MaxOrderLoss           = - 0.02;//Max Loss
void RiskOfProfit(double maxRisk )
{
   for(int i=0; i<OrdersTotal();i++)
   {
      if(OrderSelect(0, SELECT_BY_POS)==true)
      {  Comment("Profit for the open order",OrderProfit());
         Print("Profit for the open order",OrderProfit());
         if (OrderProfit()>= maxRisk){
            CloseAll();
            Print ("Chiuso tutto");
            }
      }   
      else
         Print("OrderSelect returned the error of ",GetLastError());
  }
Praticamente vorrei che se la perdita delle posizioni aperte è > di MaxOrderLoss mi chiuda tutte le posizioni aperte ora ho queste difficoltà:
1)
a volte mi da questo formato
"2020.10.22 16:14:41.625 2019.09.18 23:00:00 Moving Averages Levels Temp GBPAUD.c,M15: Profit for the open order-0.05" che sarebbe quello corretto
e a volte mi da questo(nello stesso test):
"2020.10.22 16:14:41.542 2019.09.18 22:30:00 Moving Averages Levels Temp GBPAUD.c,M15: Profit for the open order-0.07000000000000001"come mai?
2)
io vorrei fare in modo che invece di assegnare a "MaxOrderLoss " un numero negativo tipo -0.02 ma assegnarli un numero senza segno 0.02 e vorrei che il confronto venga fatto lo stesso anche se la funzione restituisce un valore negativo.
Avete idee grazie!
senapazio
Messaggi: 142
Iscritto il: 13/09/2015, 1:47

Re: Confrontare il Profitto

Messaggio da senapazio »

Ciao texcs,
Puoi usare la funzione MathAbs() che ti restituisce il valore modulo, quindi sempre positivo.
Per modificare la precisione delle cifre decimali invece puoi usare NormalizeDouble().
Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti