Erros, bugs, perguntas - página 2224

 
fxsaber:

O tempo de modificação actualizado não tem qualquer efeito sobre o resultado. EA

Sim, obrigado. Descobrimos qual era o problema.

Haverá uma solução num futuro próximo. No entanto, os ficheiros utilizados a partir da pasta comum ainda não podem ser controlados. Apenas os ficheiros especificados em #property tester_file

 

Voltando a ligar o testador no modo de visualização após um passe, apercebo-me que tenho as configurações erradas e o testador de estratégia fica pendurado durante alguns minutos.

2018.07.11 17:03:05.992 Core 8  disconnected
2018.07.11 17:03:05.992 Core 8  connection closed
2018.07.11 17:03:09.241 Core 8  connecting to 127.0.0.1:3000
2018.07.11 17:03:18.308 Tester  stopped by user
2018.07.11 17:03:19.241 Core 8  tester agent authorization error
 
//Определение экстремума
for(int i=NBars;i<=NumBars;i++)
     {
      xMinL=ArrayMinimum(MinBuffer,0,i);
      xMinLD=ArrayMinimum(MinBuffer,0,i+NBars);
      if((MinBuffer[xMinL]<=MinBuffer[xMinLD])&&(xMinL>=NBars))
        {
         Minimum=MinBuffer[xMinL];
         break;}}

//Проверка если ордера с такой же ценой не существует         
   for (int r=0; r<=OrdersTotal(); r++)
   {if (OrderSelect(OrderGetTicket(r)))
    {if (StringToDouble(OrderGetString(ORDER_COMMENT))==NormalizeDouble(Minimum,_Digits))    
       {x2=1;
        break;}
     else x2=0;}}

//Проверка если Позиции с такой же ценой не существует     
   for (int l=0; l<=PositionsTotal(); l++)
   {if (PositionSelectByTicket(PositionGetTicket(l)))
    {if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits))     
       {y2=1;
        break;}
     else y2=0;}}

//Если проверка отрицательная, открываем ордер        
   if ((x2==0)&&(y2==0))
   m_trade.SellStop(Volume,NormalizeDouble(Minimum,_Digits),_Symbol,NormalizeDouble(Minimum+(SL_ATR*ATR2),_Digits),NormalizeDouble(Minimum-(TP_ATR*ATR2),_Digits),ORDER_TIME_GTC,0,DoubleToString(Minimum,_Digits));
Olá caros utilizadores do fórum. Este é um excerto de código que detecta os extremos e coloca ordens pendentes sobre eles. Parece funcionar, mas por vezes começa a colocar pausas intermináveis num extremo, como se não visse o critério de paragem. Já me arrebentei com os miolos.
 
Dmitri Custurov:
Olá caros utilizadores do fórum. Este é um excerto de código que detecta os extremos e coloca ordens pendentes sobre eles. Parece funcionar, mas por vezes começa a colocar pausas intermináveis num extremo, como se não visse o critério de paragem. Já me arrebentei com os miolos.

Então, é correcto comparar?

if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits)){.....}
 

No indicador

Impressão em modo de teste de estratégia visual, uma vez que o meu cérebro já fervilhou - não consegui encontrar o erro na lógica:

Print(iHigh(Symbol(),PERIOD_CURRENT,i+1), "  ",sqh_buffer[i+1]);

Data de início 01.01.2018 minutos

2018.07.11 17:19:07.770 2018.01.01 00:00:00   58148.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58149.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58146.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58140.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58139.0  0.0
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58139.0  58391.79995461365
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58135.0  58391.71051866656
2018.07.11 17:19:07.906 2018.01.03 10:00:20   58135.0  58463.08874123808

Claro que não há citações reais nesta data, as pessoas têm férias, então quais são estes números mágicos e, em geral, como obter informações para o primeiro encontro???

 

Pergunta:

Como sei que o temporizador está ligado e qual é a sua frequência?

Não estou a ler muito bem a ajuda ou não é possível?

 
Nikolai Semko:

Pergunta:

Como sei que o temporizador está ligado e qual é a sua frequência?

Ou não estou a ler a ajuda muito bem, ou não é possível?

A julgar pelo silêncio, não deve realmente existir tal possibilidade. :((

Mas como é que - é uma característica muito simples e útil!

Por exemplo, crio uma classe que usa temporizador. E dentro da classe posso ligar e desligar o temporizador, alterar a periodicidade do mesmo. Mas para um trabalho sem conflitos com o resto do programa, a classe deve saber se o temporizador está ligado ou desligado e qual é a sua periodicidade.

 
Nikolai Semko:

A julgar pelo silêncio, provavelmente não existe realmente tal possibilidade. :((

Mas como é que - afinal de contas é uma característica muito simples e útil!

Por exemplo, crio uma classe que utiliza um temporizador. E dentro da classe posso ligar e desligar o temporizador, alterar a periodicidade do mesmo. Mas a classe deve saber se o temporizador está ligado ou desligado e qual a sua periodicidade, a fim de assegurar uma cooperação sem conflitos com o resto do programa.

Portanto, é bem-vindo, ou melhor, a turma.

 
Sergey Dzyublik:

Bandeira no parque infantil, ou melhor, na sala de aula.

Não vai ajudar. Especialmente se o temporizador já estiver ligado antes de ser activado na aula, por exemplo, em intervalos de algumas horas ou dias. Então tal classe arruinará toda a lógica do programa.

 
Sergey Dzyublik:

Então a comparação é correcta?

Já tentei tanto o feng shui como isto - o resultado é o mesmo. A questão é que tudo funciona 99% do tempo, e eu preciso de 100%. Neste momento, o principal para mim é acertar a lógica, e mais tarde poderei fazer a beleza.

Esqueci-me de acrescentar apenas que o erro acima mencionado aparece no testador. Quando o abro num gráfico, não o vejo ou só preciso de esperar pelo extremo exigido, onde este erro voltará a ocorrer.