![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ho cancellato il tuo altro topic perché era lo stesso argomento di questo. Ho copiato il commento di WHRoeder e l'ho incollato qui prima di cancellarlo
int buy_count=0;
int sell_count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
buy_count++;
}
if(OrderType()==OP_SELL)
{
sell_count++;
}
}
}
Qualcosa del genere
Faccio sempre il conto alla rovescia, a meno che non abbia una ragione specifica per non farlo.
Ok questo va bene, quindi per il ciclo, dovrebbe essere inquadrato simile a quello che ho per il closeorder, e se è così dovrei avere il programma che conta su o giù gli ordini?
Quindi ora ho una funzione di loop sia sulla mia funzione di chiusura dell'ordine che sulla funzione ordersend, ma ancora non fa trading in modo indipendente. Anche se sta ancora aprendo trade e chiudendo sui parametri impostati, come posso vedere nel tester della strategia, anche se non funziona su più grafici in una demo live.
Ogni EA ha un numero magico diverso?
Mostra i tuoi cicli che stai usando ora.
Ogni EA ha un numero magico diverso?
Mostra i tuoi loop che stai usando ora.
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
//--- Check for buy order
if(fastma > slowma)
{
if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
Print("Buy order opened :", OrderOpenPrice());
else
Print("Order failed to open : ", GetLastError());
return(0);
}
//--- Check for sell order
if(fastma < slowma)
{
if(OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",MagicNumber,0,Red))
Print("Order opened : ", OrderOpenPrice());
else
Print("Order failed to open : ", GetLastError());
return(0);
}
break;
}
Ecco il ciclo ordersend
Così come ho il MN come un int esterno, così posso cambiarlo su ogni grafico su cui metto l'EA.if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
In presenza di ordini multipli (un EA più grafici, più EA, trading manuale)