Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 771

 
Aybulat:
É possível remover todas as ordens e fechar todas as posições no mercado de apostas usando as hotkeys? Ou talvez haja um Consultor Especialista para isto?
Para este efeito, é necessário encontrar um painel de negociação que suporte esta funcionalidade, ou escrever o seu próprio guião ou Expert Advisor para eliminar todas as ordens quando premir uma determinada combinação de teclas.
 

Tenho essa situação - preciso de obter o valor do indicador na abertura do bar - a EA negoceia quando aparece um novo tick, mas o problema é que esse indicador pode ter tempo para alterar o seu valor.

Portanto, quero apanhar o momento entre o fim do período de tempo e o aparecimento de um novo tick - como implementar isto da maneira menos consumidora de recursos?

Ouvi dizer que é possível utilizar um evento num copo - são carraças mais frequentes, mas como fazê-lo?

 
Aleksey Vyazmikin:

Tenho essa situação - preciso de obter o valor do indicador na abertura do bar - a EA negoceia quando aparece um novo tick, mas o problema é que esse indicador pode ter tempo para alterar o seu valor.

Portanto, quero apanhar o momento entre o fim do período de tempo e o aparecimento de um novo tick - como implementar isto da maneira menos consumidora de recursos?

Ouvi dizer que é possível utilizar um evento no mercado - são carraças mais frequentes, mas como fazê-lo?

Abertura de um novo bar == aparecimento de um novo tick. Se não aparecer nenhuma carraça, não aparecerá nenhuma barra nova. Uma carraça virá, um novo bar abrirá, e o tempo que durará depende de quanto tempo não houver uma carraça. Se não houver um tick durante mais de segundos num bar, então este bar será pulado e o próximo bar abrirá a tempo depois do que falhou.

Em qualquer caso, apanhar o aparecimento de uma nova barra e ler o valor do indicador.

 
Artyom Trishkin:

A abertura de um novo bar == o aparecimento de um novo tick. Se não houver nenhum carrapato, não aparecerá nenhuma barra nova. Se um carrapato chegar, um novo bar abrirá, e quanto tempo demora depende de quanto tempo não há carrapato. Se um tique não estiver presente há mais de segundos num bar, então este bar será pulado e o próximo bar abrirá depois do que falhou.

Em qualquer caso, apanha-se o aparecimento de uma nova barra e lê-se o valor do indicador.


Actualmente é assim, mas o carrapato pode ser "forte" e o valor do indicador pode atingir alguns pontos, é por isso que eu penso, como se livrar dele.

 
Aleksey Vyazmikin:

Agora é, mas um tick pode ser "forte" e derrubar o valor do indicador por alguns pontos, por isso estou a pensar em como se livrar dele.

Tomar o valor indicador da primeira barra, não da barra actual-zero.

 
Artyom Trishkin:

Tomar o valor indicador da primeira barra, não da barra actual-zero.


Inteligente - qualquer um pode fazer isso :)

No entanto, isso pode ser uma solução, obrigado, vou voltar a pensar nisso.

 

É possível telefonar aoMqlTick e fazer perguntas e licitações, na classe incluída?

Caso contrário, o que pode ser aplicado. Estou a fazer uma classe de troca onde todas as encomendas e posições serão processadas.

 
forexman77:

É possível telefonar aoMqlTick e fazer perguntas e licitações, na classe incluída?

Caso contrário, o que pode ser aplicado. Estou a fazer uma classe de troca onde todas as encomendas e posições serão processadas.

Qual é a questão?

 
Alexey Viktorov:

Qual é o problema?


A tentar prescrever:

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

o erro sai.

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

A tentar prescrever:

o erro sai.

Colocado dentro da função, o erro desapareceu.
double ask=latest_price.ask;
Razão: