[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 918

 
Come posso determinare quale tipo di ordine è un ordine di vendita o di acquisto, aperto e per quale lotto?
 
Maniac:

Ciao a tutti! Il mio Expert Advisor ha il seguente codice (vedi sotto). Ho capito che il segnale per aprire una posizione viene preso dai valori di due indici. Come rendere l'ordine aperto sulla base di un solo indicatore, per esempio il CCI? Grazie mille.

Invece di chiamare getSignal() per determinare il criterio di apertura, chiamate checkCCI() o checkMomentum(). Entrambe queste funzioni restituiscono gli stessi segnali di getSignal(), cioè 0, 1 e -1.

La funzione getSignal() confronta semplicemente due valori restituiti da checkCCI() e checkMomentum() e se corrispondono, restituisce 1 (per comprare) o -1 (per vendere), o 0 se non viene fatto nulla...

 
_SS_:
Come si fa a sapere quale tipo di ordine è Sell o Buy, e per quale lotto?

Per enumerare gli ordini del terminale, controlla il magik dell'ordine selezionato, il suo tipo e il suo lotto.

Il magik è usato per identificare se l'ordine appartiene al tuo EA o no, e il tipo e il lotto sono i valori che stai cercando.

Se stai cercando l'ultimo ordine aperto, confronta il suo tempo di apertura con quello degli altri ordini e, se il suo tempo è il più lungo, allora è questo.

Se stai cercando un ticket, devi selezionarlo usando il ticket, ma tieni presente che la selezione viene fatta da due array: ordini di mercato e ordini chiusi.

Per scoprire se l'ordine è un ordine a mercato, si dovrebbe controllare il tempo della sua chiusura e se è superiore a zero (e solo allora), allora l'ordine è già chiuso, altrimenti - è un ordine a mercato.

 
come si fa a far uscire il mago?
 
forex-k:
Dovrebbe funzionare. la faccina sorridente sta sorridendo?


extern double StopLoss=50.0;
extern double TakeProfit=50.0;
extern double Lots=1;
extern int total;

int start()
{
double Price_1, Price_2, min, max;
RefreshRates();
Price_1=Bid;
Price_2=Ask;

min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();
if(total<1)
{

if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-StopLoss*Point,Ask+TakeProfit*Point, "My order#",16384,0,Green);

if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+StopLoss*Point,Bid-TakeProfit*Point, "My order#",16384,0,Green);
}
}
return(0);

Sì, funziona, la faccina sorridente è sempre sorridente, ma non funziona, le posizioni non si aprono.

 
rustein:

Aiuto, l'EA non chiude tutti gli ordini quando raggiunge un profitto

Gli ordini aperti e pendenti vengono chiusi con funzioni diverse


void CloseAllOrders()
{
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrdersTotal() > 1 && OrderSymbol() == Symbol() && AccountProfit() >= AccountBalance()*AllProfit/100)
{
if((OrderType()==OP_BUY)) OrderClose(OrderTicket(), OrderLots(),Bid,0);
if((OrderType()==OP_SELL)) OrderClose(OrderTicket(), OrderLots(),Ask,0);
if((OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT|| OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT))OrderDelete(OrderTicket());
if(UseSound == true)
{
PlaySound(SuccesSound);
}
}
}
}
}
 
forex-k:

gli ordini aperti e pendenti sono chiusi da funzioni diverse


Grazie :)
 

Potete dirmi come cancellare gli oggetti creati dall'indicatore nella finestra quando l'indicatore stesso viene rimosso dal grafico?

 
Maniac:

Ciao a tutti! L'EA ha il seguente codice (vedi sotto). Da quanto ho capito, il segnale per aprire una posizione viene preso dagli indicatori di due indici. Come possiamo far aprire gli ordini basati su un solo indicatore, per esempio il CCI? Grazie mille.


int getSignal() { 
   int CCI = checkCCI();
   return (CCI);
}
int checkCCI() {
   double CCI = iCCI(NULL, 0, 60, PRICE_TYPICAL, 1);
   Print("CCI: ", CCI);
   if (CCI > 0.0) return (1);
   if (CCI < 0.0) return (-1);
   return (0);
} 
 

Buon pomeriggio a tutti. Ho bisogno di una funzione per cercare i massimi e i minimi in un numero N di barre. Diciamo hai/low per 55 barre. L'ho visto da qualche parte - non riesco a trovarlo.