Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 601

 
AlexeyVik:
Provavelmente não foi exatamente assim que eu tentei.
Acabei de recompilar o código na EA e o executei. Quando altero o parâmetro Sys no comentário, este valor muda.

Eu tentei mudar para sua versão novamente... ainda não funciona... Está na EA, e é visível como uma EA.
 
peace1984:

Eu tentei mudar para sua versão novamente... ainda não funciona... está na EA, e é visível como uma EA.


Ou será que eu me enganei?

Arquivos anexados:
11_1_1.mq4  8 kb
 
AlexeyVik:


Ou eu entendi algo errado????



entendo que a mensagem "sys não deve ser 1" aparecerá se sys!=1, mas se você mudar o usuário de 0, deve ser 1. e "sys deve ser 1" deve aparecer

em sua versão da EA, durante os testes no canto superior esquerdo diz sys=0 e este não deve ser o caso...

 
peace1984:

eu entendo que a mensagem "sys não deve ser 1" aparecerá se sys!=1 e se você mudar o usuário de 0, deve ser 1 e "sys deve ser 1" deve aparecer

Aqui está um olhar sobre o novo lançamento. Linhas para cima a partir de baixo.


O especialista é carregado.

Lista de variáveis externas: Sys = 0

A inicialização foi aprovada.

impressão das próximas 3 linhas da EA.

Motivo da desinicialização 5(os parâmetros de entrada foram alterados pelo usuário)

Lista de variáveis externas: Sys = 1

Inicialização aprovada

As 3 linhas seguintes, a impressão do Expert Advisor.

Motivo da desinicialização 1(o programa foi removido do quadro)


O que você quer esclarecer? Eu não entendo o que não está funcionando...

ps: não preste atenção a tais símbolos. É uma conta de opções e é por isso que tais nomes de símbolos.

 
AlexeyVik:

Não é essa a questão. Ninguém precisa de seu código secreto completo. Basta escrever uma peça completa de código de teste com esse mal-entendido. Que tal isso?

quando você limpou a linha destacada? Os telepatas não vão ajudar, os meros mortais ainda menos...

Depois há esta parte.

Não sei que programador o escreveu, mas é completamente inadequado... Não é culpa sua. Você, como muitos outros, pegou o código e tentou consertá-lo...

Se a variável counted_bars for igual ao número de barras permaneceu inalterada desde a última chamada do indicador (a primeira linha)

Como pode tornar-se menos que zero se(counted_bars < 0) eu nunca serei capaz de entender...

O resto também é bobagem, mas sou preguiçoso demais para desmontá-lo...


Concordo plenamente com você. Por que você não pensou nisso? )

Estou anexando o código e o arquivo de um indicador tão miserável.

Jogue no gráfico, o terminal fica naturalmente pendurado, saia por 10 minutos (dependendo do desempenho do PC. Tenho i5 3.1 Ghz), feche o MT à força, abra o arquivo de log com o nome "bug log.csv", observe o fato de bug IndicatorCounted().

#property indicator_separate_window
#property indicator_buffers 1

double Buffer_1[];

bool busy=false;
int han;

int init()
{
   han=FileOpen("bug log.csv", FILE_CSV|FILE_WRITE);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1);       
   SetIndexBuffer(0,Buffer_1); 
   return(0);
}

int deinit()
{
   FileClose(han);
   return(0);
}

int start()
{
   //if(busy) return(0);
   int limit=3000;
   if(IndicatorCounted()>0) limit=1;
   
   for (int i=0; i<limit; i++)
   { 
      busy=true;
      FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), DoubleToStr(i, 0), DoubleToStr(IndicatorCounted(), 0));
      FileFlush(han);
      
      for(int j=1; j<7000; j++)
        for(int k=1; k<7000; k++)
          double var=2*0.34*MathArccos(0.5)+1.33*MathArcsin(0.23)+1.53*MathArctan(0.11)+2.33*MathCos(0.23)+1.22*MathLog(12)+1.22;
      
      Buffer_1[i]=var;
   }
   
   busy=false;
   return(777);
}
Arquivos anexados:
bugqtest.mq4  2 kb
 

Olá a todos, vocês podem informar o que está faltando no script, se ele fechar todas as ordens abertas se (AccountProfit()>1) condição for atendida, agora ele fecha apenas parte das ordens até que a condição i

f(AccountProfit()>1)

{ for (i=OrdensTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); return(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); return(0);
}}}
 
Expert:


Concordo plenamente com você. Por que você não pensou nisso? )

Eu estou anexando o código e o arquivo do próprio indicador woe-is-me.

Jogue no gráfico, o terminal fica pendurado, claro, deixe-o por 10 minutos (dependendo da velocidade do PC. Tenho i5 3.1 Ghz), feche o MT à força, abra o arquivo de log com o nome "bug log.csv", observe o fato de bug IndicatorCounted().

Eu não sei. Eu tenho este indicador que registrou um arquivo como este.

Arquivos anexados:
test.zip  21 kb
 
AlexeyVik:

Eu não sei. Eu tinha este indicador para escrever um arquivo como este.




Muito obrigado por seu feedback!

Tentei sua versão - mesmo resultado ((

Você tem alguma idéia do porquê isso está acontecendo?
Não sou só eu. Experimentei em outro PC, mais potente que o meu, e é o mesmo problema.

Arquivos anexados:
bugflog.zip  122 kb
 
i999i:

Olá a todos, vocês podem informar o que está faltando no script, se ele fechar todas as ordens abertas se (AccountProfit()>1) condição for atendida, agora ele fecha apenas parte das ordens até que a condição i

f(AccountProfit()>1)

{ for (i=OrdensTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); return(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); return(0);
}}}
retorno(0); foi redundante, obrigado a todos vocês
 
Expert:


Muito obrigado por seu feedback!

Tentei sua versão - mesmo resultado ((

Alguma idéia do porquê isso está acontecendo?
Eu não sou o único. Já experimentei em outro PC, mais potente que o meu, e é o mesmo problema.

Ou eu não consigo entendê-lo, ou você não entende algo... O que há de errado com o arquivo .csv? Até que a primeira barra seja contada pré_calculada ou IndicatorCounted() (na versão antiga) será zero e isto é correto.