Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 23

 
scomoroh:
Sim, obrigado, tudo corrigido, sem erros. Abranda, sim, muito. Você me diria em que direção mover para otimizá-lo ou terei que reescrever tudo?

Muitos objetos são criados e excluídos em cada tic-tac, deve ser limitado de alguma forma, por exemplo, nem todos os objetos são excluídos, mas somente aqueles desenhados nas últimas 1-2 barras.

Eu, por exemplo, em caso semelhante, ao invés deObjetosDeleteAll() no início() utilizei tal função:

void deletelast()
{
   for(int i=ObjectsTotal()-1;i>=0;i--)
   {
      string name=ObjectName(i);
      if(StringFind(name,"Shadows.",0)>-1)
      {
         datetime crtm=(datetime)ObjectGetInteger(0,name,OBJPROP_CREATETIME);
         if(crtm>=iTime(Symbol(),0,1))
         if(!ObjectDelete(name)) Print("ObjectDelete error# ",_LastError);
      }
   }
}
 

Você poderia me dizer se é possível controlar a permissão de comércio para esta EA da EA?

ou seja, para usar a variável MQL_TRADE_ALLOWED ?

Por exemplo, se a propagação for grande, então proibir o comércio (mas não para parar o assessor especializado)

Eu simplesmente não sei como definir esta variável. A atribuição direta de 1 ou 0 não funciona.
 
harbor:

Você poderia me dizer se é possível administrar a permissão de comércio para esta EA da EA?

ou seja, para usar a variável MQL_TRADE_ALLOWED ?

Por exemplo, se a propagação for grande, então proibir o comércio (mas não para deter a EA)

Eu simplesmente não sei como definir esta variável. Não posso defini-la diretamente em 1 ou 0.

Este estado

https://www.mql5.com/ru/docs/runtime/tradepermission

Документация по MQL5: Программы MQL5 / Разрешение на торговлю
Документация по MQL5: Программы MQL5 / Разрешение на торговлю
  • www.mql5.com
Программы MQL5 / Разрешение на торговлю - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Mas é possível controlá-lo.

Você só precisa fazer um algoritmo de programa.

Em qualquer ponto do algoritmo e sob qualquer condição, você pode sair do programa com o comando

return(0);
 
Olá! sou novo neste negócio difícil e estou constantemente encontrando novos obstáculos. Estou tentando escrever uma EA, mas não consigo resolver o problema com o prazo do indicador que minha EA usa para entrar. A essência do problema é a seguinte: De acordo com as condições, eu preciso que no período de 15 minutos na linha do indicador Sinal Estocástico esteja abaixo do nível de 20. Exatamente aos 15 minutos. TF! De fato, acontece que a linha de sinal cruza o nível 20 em outros períodos de tempo (1; 5; 30 min.) e meu Expert Advisor trabalha falsamente. Preciso filtrar todos os prazos, e só deixar 15 min. Esse assessor não levaria em conta os crossovers em outros períodos de tempo. Eu gostaria de qualquer ajuda
 
TimBerg:
Olá! sou novo neste negócio difícil e estou constantemente encontrando novos obstáculos. Estou tentando escrever uma EA, mas não consigo resolver o problema com o prazo do indicador que minha EA usa para entrar. A essência do problema é a seguinte: De acordo com as condições, eu preciso que no período de 15 minutos na linha do indicador Sinal Estocástico esteja abaixo do nível de 20. Exatamente aos 15 minutos. TF! De fato, acontece que a linha de sinal cruza o nível 20 em outros períodos de tempo (1; 5; 30 min.) e meu Expert Advisor trabalha falsamente. Preciso filtrar todos os prazos, e só deixar os 15 minutos. Que a EA não considerou os crossovers em outros períodos de tempo. Agradeço sua ajuda.
Mostrar um trecho de código sobre como você lê o sinal do indicador em sua EA
 
Renat Akhtyamov:
Mostre-me um fragmento de código sobre como você lê o sinal do indicador em seu Expert Advisor
Não consigo lembrá-lo de memória, vou mostrá-lo a você quando chegar em casa
 
Renat Akhtyamov:

Mas é possível controlá-lo.

Você só precisa fazer um algoritmo de programa.

Em qualquer ponto do algoritmo e sob qualquer condição, você pode sair do programa com o comando

return(0);

então o programa deixará de ser executado, mas preciso que ele continue.

Acho que eu teria que fazer um monte de condições.

 
harbor:

então o programa deixará de ser executado, mas preciso que ele continue

Acho que vou ter que fazer um monte de condições.

O que podemos continuar se o spread subiu? Se você tem que continuar, o que a propagação tem a ver com isso?

(c)então proibir o comércio (mas não impedir o EA)= Se você proibir o comércio, como ele continuará a funcionar? Qual é o objetivo?

 
harbor:

então o programa deixará de ser executado, mas preciso que ele continue

Acho que vou ter que fazer um monte de condições.

É isso mesmo, é um programa).

Razão: