Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 999

 

Sto solo imparando.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

Al posto del punto interrogativo si dovrebbe scrivere - il profitto è maggiore di zero per lo strumento dato.

 
cashnewmoney:

Sto solo imparando.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

Al posto del punto interrogativo si dovrebbe scrivere - il profitto è maggiore di zero per lo strumento dato.

Dipende dal proprio desiderio.
 
Alexey Viktorov:
Dipende dalla propria volontà.

Come chiudere con le mani.

Non va bene, bisogna automatizzarlo.

 
cashnewmoney:

Come chiudere con le mani.

Non va bene, bisogna automatizzarlo.

No, non a mano. Intendevo dire che potete scrivere a vostra discrezione. Ma apparentemente ho frainteso la domanda la prima volta. Per impostare la condizione di profitto sullo strumento maggiore di zero, questo profitto deve essere calcolato.

  double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }
 
Alexey Viktorov:

No, non a mano. Intendevo dire che potete scriverlo a vostro piacimento. Ma devo aver frainteso la domanda la prima volta. Questo profitto dovrebbe essere calcolato per impostare la condizione di profitto dello strumento a più di zero.

È così che dovrebbe essere fatto?

doppio profitto = 0;

for(int i = 0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

{

se(OrderType() < 2)

profitto += OrderProfit()+OrderCommission()+OrderSwap();

}

}

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

 
cashnewmoney:

È così che dovrebbe essere fatto?

doppio profitto = 0;

for(int i = 0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

{

se(OrderType() < 2)

profitto += OrderProfit()+OrderCommission()+OrderSwap();

}

}

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

Mi stai prendendo in giro?

double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit > 0 );
 
Vitaly Muzichenko:

Mi stai prendendo in giro?

Grazie mille, funziona tutto.

 
cashnewmoney:

Grazie mille, tutto funziona.

Grazie qui,Alexey Viktorov

 

L'Expert Advisor piazza solo un ordine per algoritmo, considera Sell:

SellOpen = (AC<0.0 && RSI<30 && Close[2]>Open[2] && Close[1]>Open[1] && Low[2]<Low[1] );

Come scrivere il codice in modo che continui a piazzare ordini fino a quando la condizione AC<0.0 è soddisfatta

 
Alexey Viktorov:

No, non a mano. Intendevo dire che potete scriverlo a vostro piacimento. Ma devo aver frainteso la domanda la prima volta. Per condizionare il profitto su uno strumento ad essere maggiore di zero, questo profitto deve essere calcolato.

Grazie mille. Tutto funziona.

Motivazione: