Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 133
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
Ciao a tutti. Potete dirmi come cambiare questo codice for(int i=OrdersTotal()-1;i>=0;i--){
Ciao a tutti. Per favore ditemi come cambiare questo codice for(int i=OrdersTotal()-1;i>=0;i--){
{
if( /*Функция закрытия. Если вернула истину*/ )
i--;
}
Provate in questo modo. Invece dei commenti, dovreste usare la funzione per chiudere l'ordine. Non ho controllato la sua funzionalità. E qui, penso che dovremo chiamare la funzione che calcola la quantità di ordini ogni volta, poiché il numero di ordini diminuirà.
Possiamo anche provare una tale variante:
/*Функция закрытия ордера*/
si chiude in modo imbarazzante)
non è corretto, ma per ora (fino a qualche build) funziona: alla chiusura riuscita di i--
Ciao a tutti. Potete dirmi come cambiare questo codice for(int i=OrdersTotal()-1;i>=0;i--){
//| Закрыть все позиции начиная с первых |
//+------------------------------------------------------------------+
double CloseOrders()
{
for(int i=0; i<OrdersTotal(); )
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
break;
if (OrderMagicNumber() != mn)
break;
int type = OrderType();
bool result = false;
switch(type)
{
//Close opened long positions
case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, CloseColor );
break;
//Close opened short positions
case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, CloseColor );
break;
}
if(result == false)
{
Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
i++;
}
}
return (True);
}
// End
Si chiude in modo imbarazzante)