Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 476

 
Sergei Vladimirov:
A proposito, perché dichiarate una funzione come int se restituisce true nella vostra versione, e sempre? )
L'ho aggiustato per annullarlo, ho cambiato il ciclo per invertirlo, basta che gli ordini di altre persone non lo tocchino, grazie!
 
Potete dirmi per favore come fare in modo che OnCalculate l'indicatore sia chiamato non ogni tick, ma solo con una nuova barra?
 
Hexen:
Potete dirmi per favore come fare in modo che l'indicatore OnCalculate sia chiamato non ogni tick, ma solo con una nuova barra?
Questa funzione sarà chiamata ogni tick, ma è possibile creare un nuovo controllo della barra all'interno della funzione.
 
Victor Nikolaev:
Questa funzione sarà chiamata ogni tick, ma potete fare un nuovo controllo delle barre all'interno della funzione.

Grazie, è più o meno risolto. Confrontandoprev_calculated e rates_total si può vedere la comparsa di nuove barre. E in EA è più complicato con la nuova barra - controllo del tempo, ecc.

 

Non confrontarli, non è un modo molto affidabile: la variabile prev_calculated può essere azzerata in alcune condizioni. Ricorda il tempo della barra corrente e controlla il suo cambiamento alla prossima chiamata:

// в самом начале функции OnCalculate()
bool bNewBar = false;

static datetime dtLastBarTime = time[rates_total-1];

if(time[rates_total-1] > dtLastBarTime)
{
   bNewBar = true;
   dtLastBarTime = time[rates_total-1];
}

PS. Questo è un esempio per MT5. In quattro (e in cinque se l'array time[] è fatto serie temporale) sostituire time[rates_total-1] con time[0].

 
Salve,

Ho deciso di creare un semplice Expert Advisor dopo aver letto l'articolo "A Step-by-Step Guide to Writing
MQL5 Expert Advisor per principianti" (https://www.mql5.com/ru/articles/100).

Ho testato l'Expert Advisor sulla storia e mi sono chiesto come migliorarlo.
La prima cosa che mi è venuta in mente, a parte l'ottimizzazione
Applicare il trailing stop loss. C'è un buon articolo su questo argomento:
"Come creare un Trailing Stop - Articoli MQL5" ().
(https://www.mql5.com/ru/articles/134). Tuttavia, un
Tuttavia, è sorto un problema, l'Expert Advisor allegato all'articolo non funziona... cioè
(my_first_ea_sartrailing.ex5) compila ma non scambia
il registro dice:
2015.11.28 22:54:38.973 2015.02.04 17:00:00 Alert: Richiesta di impostazione ordine di vendita fallita - codice di errore:4756
2015.11.28 22:54:38.973 2015.02.04 17:00:00 fallito vendita istantanea 0,10 EURUSD a 1,14051 sl: 1,17051 tp: 1,04051 [Richiesta non valida]
Aiuta a risolvere questo problema.
 
Sergei Vladimirov:

PS. Questo è un esempio per MT5.

Grazie!
 

Salve.

Potete dirmi qual è il modo più veloce e corretto per cancellare tutti gli ordini esistenti piazzati dall'EA? È davvero possibile creare un array con i numeri d'ordine e cancellare ognuno di essi? È impossibile ottenere anche una lista di ordini attivi?

 
Антон:

Salve.

Potete dirmi qual è il modo più veloce e corretto per cancellare tutti gli ordini esistenti piazzati dall'EA? È davvero possibile creare un array con i numeri d'ordine e cancellare ognuno di essi? Possiamo avere anche una lista degli ordini attivi?

Non abbiamo bisogno di un array. Quale terminale?

 
Sergei Vladimirov:

Non hai bisogno di un array. Quale terminale?

MT5

Sì, avrei dovuto dire che questo deve essere implementato in un EA.

Ho trovato uno script su mql4 - non è rilevante per il 5? Un paio di giorni fa da qualche parte ho visto una linea con una funzione qualcosa come "orderscancelbymagicnumber", ma non trovo nulla nella documentazione... Confuso.