Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1103

 
MIKHAIL VINOGRADOV:

Saudações!

Não posso fechar ordens opostas de lotes diferentes usando CTrade.PositionCloseBy(ticket1,ticket2).

ResultadoRetCode() - Eu recebo erro 10035.

Por favor, informe qual é a razão?

10035

TRADE_RETCODE_INVALID_ORDER

Tipo de pedido inválido ou proibido


Observe cuidadosamente o que você está fazendo ali.

 

Eu entendo corretamente - a função SetIndexBuffer é necessária para ligar o(s) buffer(es) a uma construção gráfica específica, E ACESSO AOS NÚMEROS ATRAVÉS DO iCustom ?

Assim, por exemplo, se eu criar uma matriz para preços altos, então é suficiente declará-la sem compromisso via SetIndexBuffer e em ...

#property indicator_buffers

... ... pode ser ignorado.

Além disso, com SetIndexBuffer você pode ligar matrizes de tipo duplo apenas, enquanto que a data e outras matrizes não podem.


Eu simplesmente não entendo bem este ponto (ou o entendi), e agora tenho uma idéia - quero esclarecê-la...

 
Alexandr Sokolov:

Eu entendo corretamente - a função SetIndexBuffer é necessária para ligar o(s) buffer(es) a uma construção gráfica específica, E ACESSO AOS NÚMEROS ATRAVÉS DO iCustom ?

Assim, por exemplo, se eu criar uma matriz para preços altos, então é suficiente declará-la sem compromisso via SetIndexBuffer e em ...

... ... pode ser ignorado.

Além disso, com SetIndexBuffer você pode ligar matrizes de tipo duplo apenas, enquanto que a data e outras matrizes não podem.


Eu simplesmente não entendo bem este ponto (ou o entendi), e agora tenho uma idéia - quero esclarecê-la...

Não é uma construção, é um conjunto de dados. Portanto, acho que não vai funcionar dessa maneira. Embora eu não tenha verificado.

Quanto ao tipo de data/hora, você pode escrevê-la para dobrar e aplicá-la à força ao ler.

 
Happy:

Bom dia.

Pergunta. No testador, na interface do lado do dia (quando a linha do dia seguinte passar), o programa deveria ter colocado um pedido pendente. A ordem pendente que já estava lá e o preço a tocou, foi aberta mas a instrução para abrir outraordem pendente foi ignorada pelo sistema por algum motivo. Isso também pode acontecer em uma conta real onde as instruções do robô são simplesmente ignoradas e, portanto, a ação necessária não é executada?


E outra pergunta. Estou realizando um Teste de Estratégia, mas fiquei muito confuso com o fato de que ele passa cerca de uma semana na visualização e depois exibe a seguinte mensagem

177564 eventos de tick (447 barras, 7888506 estados de barras) processados em 0:17:42.694 (tempo total 0:17:48.217)

177564 eventos de tick (447 barras, 7888506 estados de barras) processados a 0:17:42.694 (tempo total 0:17:48.217)

Eu não entendo, ele está muito ocupado para continuar testando? Ou ele está tão preocupado e preocupado com os recursos do meu computador? Não vejo nenhuma mensagem de erro. Ela simplesmente termina por si mesma. Embora eu tenha definido a data não 7 dias, mas 7 meses. Eu gostaria de ver todo o caminho de teste do início ao fim.

Que religião não lhe permite testar visualmente, por exemplo, um ano ou vários anos? E você pode ver visualmente como seu programa funcionou durante o ano anterior, por exemplo.


E mais uma pergunta. (Embora possa estar sem resposta)) ) Como pode acontecer que o testador 2 volte a trabalhar como deveria, e pouco antes da inscrição acima mencionada no dia simplesmente ignore todas as instruções. Como é possível que o programa tenha funcionado corretamente para várias rodadas (abriu ordens e depois as fechou), e depois, boom, ele ignora tudo. Também não abre nem fecha. É por causa do fim de um período de testes ou há outras razões?

 
brent e wti gráficos na tela principal do site ftm são diferentes das citações em si na minha conta pessoal. Alguma idéia? Estou certo de que a gestão dos gráficos, em particular dos gráficos de óleo, é feita dentro da "cozinha" da ftm. Não há explicação. A prova está na foto ao mesmo tempo em que os preços em meu gabinete pessoal diferem na direção oposta dos preços reais e são sempre negativos para o comerciante. Cheira como um esquema...
 
Yevhenii Levchenko:

........... Mas em determinado momento precisa determinar se fechou seu próprio comércio ou se foi outra pessoa que entrou e fechou....

Escreva sem ambigüidade, você está perguntando como prescrever ou sobre o uso de um EA sem edição

 
como posso lidar com o erro 4403?
 

  • Olá!

    Eu queria usar o indicador A/D para minha EA, mas não em sua forma pura, sua média móvel.

    É por isso que eu inventei funções:

    //+------------------------------------------------------------------+

    //| Função A/D |

    //+------------------------------------------------------------------+

    duplo A_D(ENUM_TIMEFRAMES tf, int shift)

    {

    duplo res=0;



    res=iAD(NULL,tf, turno);



    res. de retorno;





    }



    //+------------------------------------------------------------------+

    //| Função A/D|

    //+------------------------------------------------------------------+

    duplo A_D_moving(ENUM_TIMEFRAMES tf, período int)

    {

    duplo res=0;

    duplo a[];





    for(int i=período; i>=1; i--)

    {

    a[i]= A_D(tf, i);

    }



    for(int i=período; i>=1; i--)

    {

    res=iMAOnArray(a,0,período,0,MODE_SMA,0);

    }



    res. de retorno;





    }

    Mas durante o teste, tornou-se óbvio que A_D_moving() está com problemas nesta revisão, pois há um erro crítico ao executar o teste.

    Por favor, quem pode ajudar:

    Quão correto está escrito A_D_moving()? Se houver erros, favor indicar...

    Obrigado!


 
AurelianoV:

Por favor, insira o código corretamente:


 
Artyom Trishkin:

Por favor, insira o código corretamente:


Desculpe1

/+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D(ENUM_TIMEFRAMES tf, int shift)
  {
   double res=0;
   res=iAD(NULL,tf, shift);
   return res;
  }

//+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D_moving(ENUM_TIMEFRAMES tf, int period)
  {
   double res=0;
   double a[];
   
   for(int i=period; i>=1; i--)
     {
      a[i]= A_D(tf, i);
     }
   for(int i=period; i>=1; i--)
     {
      res=iMAOnArray(a,0,period,0,MODE_SMA,0);
     }
   return res;
  }


desculpe

Razão: