prova cosi dopo aver chiamato la funzione buy metti un piccolo wait time cosi nello stesso tick non avvengono piu operazioni
datetime lastopen;
bool CheckWaitTime()
{
if(TimeCurrent()-5000 > lastopen)
{
return true;
}
else
{
return false;
}
}

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, sto diventando matto.... Ho prtovato tutto... ma non riesco a capire perché l'EA mi apre più posizioni contemporaneamente...
Vorrei che per ogni simbolo non ci fosse più di un ordine a mercato (a prescindere che sia BUY o SELL), invece me ne aopre di più, spesso 2 nello stesso identico momento.
Potete aiutarmi?
Il mio codice:
//Magic numbers
#define magic_1 99999904
//Variabili globali
int TF = 1;
double LOT = 0.05;
void OnTick() {
double close_1 = iClose("EURGBP", TF, 1);
double open_2 = iOpen("EURGBP", TF, 2);
double EMA21 = iMA("EURGBP", TF, 21, 0, MODE_EMA, PRICE_CLOSE, 0);
int open_1B = 0, open_1S = 0;
int total,ord,i;
string symbol;
total = OrdersTotal();
for(i=0;i<total;i++)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderSymbol() == "EURGBP" && OrderMagicNumber() == magic_1) ord++;
}
if(ord>0) return;
else
{
if(open_2 < EMA21 && close_1 > EMA21)
{
open_1B = OrderSend("EURGBP", OP_BUY, 0.01, Ask, 3, 0, 0, "BUY", magic_1, 0, Blue);
}
if(open_2 > EMA21 && close_1 < EMA21)
{
open_1S = OrderSend("EURGBP", OP_SELL, 0.01, Bid, 3, 0, 0, "SELL", magic_1, 0, Red);
}
}
}