Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 771

 
Aybulat:
È possibile rimuovere tutti gli ordini e chiudere tutte le posizioni nel mercato delle scommesse utilizzando i tasti di scelta rapida? O forse c'è un Expert Advisor per questo?
Per questo scopo, è necessario trovare un pannello di trading che supporti questa funzionalità, o scrivere il proprio script o Expert Advisor per cancellare tutti gli ordini quando si preme una certa combinazione di tasti.
 

Ho una situazione simile - ho bisogno di ottenere il valore dell'indicatore all'apertura della barra - l'EA fa trading quando appare un nuovo tick, ma il problema è che l'indicatore può avere il tempo di cambiare il suo valore.

Quindi, voglio catturare il momento tra la fine del periodo di tempo e l'apparizione di un nuovo tick - come implementare questo nel modo che consuma meno risorse?

Ho sentito che è possibile utilizzare un evento in un bicchiere - sono zecche più frequenti, ma come fare?

 
Aleksey Vyazmikin:

Ho una situazione simile - ho bisogno di ottenere il valore dell'indicatore all'apertura della barra - l'EA fa trading quando appare un nuovo tick, ma il problema è che l'indicatore potrebbe avere il tempo di cambiare il suo valore.

Quindi, voglio catturare il momento tra la fine del periodo di tempo e l'apparizione di un nuovo tick - come implementare questo nel modo meno dispendioso di risorse?

Ho sentito che è possibile utilizzare un evento nel mercato - sono tick più frequenti, ma come fare?

Apertura di una nuova barra == apparizione di un nuovo tick. Se non arriva nessun segno di spunta, non apparirà nessuna nuova barra. Arriverà un tick, si aprirà una nuova barra, e la sua durata dipende da quanto tempo non c'è stato un tick. Se non c'è stato nessun tick per più di secondi in una barra, allora questa barra sarà saltata e la prossima barra si aprirà in tempo dopo quella mancata.

In ogni caso, cogliete l'apparizione di una nuova barra e leggete il valore dell'indicatore.

 
Artyom Trishkin:

L'apertura di una nuova barra == la comparsa di un nuovo tick. Se non c'è nessun segno di spunta, non apparirà nessuna nuova barra. Se arriva un tick, si aprirà una nuova barra, e quanto tempo ci vorrà dipende da quanto tempo non ci sono stati tick. Se un tick non è stato presente per più di secondi in una barra, allora questa barra sarà saltata e la barra successiva si aprirà dopo quella mancata.

In ogni caso, si coglie la comparsa di una nuova barra e si legge il valore dell'indicatore.


Attualmente è così, ma il tick può essere "forte" e battere il valore dell'indicatore ad alcuni punti, ecco perché penso, come sbarazzarsi di esso.

 
Aleksey Vyazmikin:

Ora lo è, ma un tick può essere "forte" e abbattere il valore dell'indicatore di qualche punto, quindi sto pensando a come liberarmene.

Prendi il valore dell'indicatore dalla prima barra, non dalla barra corrente-zero.

 
Artyom Trishkin:

Prendi il valore dell'indicatore dalla prima barra, non dalla barra corrente-zero.


Intelligente - chiunque può farlo :)

Potrebbe essere una soluzione però, grazie, ci penserò ancora.

 

È possibile chiamareMqlTick e ottenere ask e bid nella classe inclusa?

Se no, cosa si può applicare. Sto facendo una classe commutabile dove tutti gli ordini e le posizioni saranno processati.

 
forexman77:

È possibile chiamareMqlTick e ottenere ask e bid nella classe inclusa?

Se no, cosa si può applicare. Sto facendo una classe commutabile dove tutti gli ordini e le posizioni saranno processati.

Qual è la domanda?

 
Alexey Viktorov:

Qual è il problema?


Cercare di prescrivere:

MqlTradeRequest   mrequest;   
MqlTradeResult    mresult;         
double ask=latest_price.ask;

l'errore viene fuori.

'=' - illegal assignment use    trade.mqh       39      14
 
forexman77:

Cercare di prescrivere:

l'errore viene fuori.

Posto all'interno della funzione, l'errore è scomparso.
double ask=latest_price.ask;
Motivazione: