[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 331

 

Sepulca

então, num relance, você pode tentar isto como no arquivo anexo. As mudanças são acompanhadas pelo comentário "// Modificar para Elektronik".


Infelizmente, não posso verificar sua modificação, há um erro

Não consigoabrir um EURUSD 2 de VENDA a 1,2445 , Erro 4109.

E o roteiro é este.

Arquivos anexados:
reverse.mq4  16 kb
 

Boa tarde.

Você poderia me dizer por que o resultado é distorcido ao converter o dobro para int

int init()

{

int sum=(1.3167+0.001)*10000;

Alert (sum);

return(0);

}

O resultado é impresso como 13176.

Logicamente, deveria ser 13177.

E esta questão aparece apenas quando se acrescenta. Ao subtrair

int sum=(1.3167-0.001)*10000;

produz o resultado correto: 13157

Será que ao abrir os parênteses

int sum=1.3167*10000+0.001*10000; 

então acerta. Qual é a diferença?

Obrigado de antemão.

 
GygaByte:

Boa tarde.

Você pode me dizer por que ao converter o dobro para int o resultado é distorcido?

Escreva:

int sum=NormalizeDouble((1.3167+0.001)*10000,Digits);
e será lido corretamente.
 

Obrigado pela dica da Sepulca , já a classificamos.

      if (OrderComment()==""){
         MyComment="";
      } else {
         MyComment="[" + OrderComment() + "]";
      }
 

Obrigado pela dica Sepulca , já a classificamos.

      if (OrderComment()==""){
         MyComment="";
      } else {
         MyComment="[" + OrderComment() + "]";
      }
 
hoz:


Bem, eu tenho em meu código uma fixação de quando o valor do indicador é maior que o nível do indicador e menor que(nível do indicador + desvio permitido, uma espécie de lacuna). Aqui:

0,1 Tive um palpite. Mas as aberturas ocorrem no momento errado.

A julgar por suas palavras, você precisa comparar o valor em alguma barra, que é inferior ao nível do indicador com o valor na barra zero acima (nível + folga) e não o contrário?

Mas se encontrarmos o cruzamento do valor do indicador na barra anterior e o valor na barra atual (através do nível especificado), então para a barra atual o valor, e conseqüentemente, o preço pode voar muito longe e, conseqüentemente, isto não é uma opção de forma alguma. Como, então, explicar claramente a condição sobre a qual eu escrevi? Aqui está uma captura de tela que explica a situação:

A partir da captura de tela, você precisa verificar: se o RSI na primeira barra é menor que o nível e o RSI na barra zero é maior ou igual ao nível, então compre. Ao mesmo tempo, o RSI deve ser contado a preços de abertura - caso contrário, não se pode evitar falsos positivos na barra zero. Se você quiser ler o RSI a outros preços (preços de fechamento, por exemplo), então verifique a segunda e a primeira barra de acordo.
 
hoz:


Boris, você tem o valor extraído do período de 1M. E não é comparado com o nível, mas com zero. Não entendo porque o valor será tomado a cada tique. Talvez não seja complicado, mas eu não trabalhei com indicadores antes e não parece lógico.

Novamente, se os valores são tomados em cada tick, como você se compara a um nível específico para que em cada tick o examinador siga esse nível?

No meu caso, para comprar na M5, escrevi da seguinte maneira:

Aquii_RSIToUpLimit é o nível do indicador RSI. Entendo que o período para M1 deve ser multiplicado por 5 para usar o nível em M5, certo? Então o período será 70 e não 14.

Victor, ao invés de zero, coloque seu nível numa direção com um mais e na outra com um menos! E como com Close na barra de zero, na qual seu nível vai passar, assim dará um sinal! O período de RSI determinará a otimização! Em geral, a Artem está certa! Faça o que ele aconselha!
 
abolk:

Escreva-o:

E tudo contará corretamente.


Correto, mas como a prática tem mostrado - nem sempre...

int init()
  {
//----
double bid=NormalizeDouble(Bid,Digits);
double b=NormalizeDouble(0.0005,Digits);
double bid_minus=NormalizeDouble(bid-b,Digits);
double bid_plus=NormalizeDouble(bid+b,Digits);

Alert ("bid= ",bid," bid_minus= ",bid_minus," bid_plus= ",bid_plus, " Bid = ",DoubleToStr(Bid,6));
//----
   return(0);
  }

Se o quinto ponto decimal = 5 (1,xxxx5), o valor ainda está distorcido:

Alertas

a pergunta ainda é válida...

P.S. Geralmente, eu preciso atribuir um valor de preço ao MagicNumber. Mas digite MagicNumber - int, aqui e tente converter por

int MN=NormalizeDouble(Bid*10000,Digits);

Quem mais pode me dar conselhos?

Obrigado.

 

Saudações a todos! Feliz Dia da Vitória!

Você pode me dizer por que o terminal não se conecta, dá a mensagem "Sem conexão", embora haja um ping. Embora exista um ping, na verdade existe uma conexão com o servidor. Aqui está uma captura de tela: http://snag.gy/UFNFL.jpg

Teste de ping

Os dados para registro não são criados http://snag.gy/i8cmn.jpg

Não registra

Este "Por favor, espere" leva mais de uma hora. Normalmente, deve ser instantâneo.

Eu não entendo o que estou fazendo de errado. Por que não há conexão, se eu tenho uma, por que tenho ping?

Eu tentei M5 da mesma forma e me registrei, mas M4 eu não posso, eu tentei 20 vezes.

Por favor, avise, quem sabe!

 
Boa noite. Você poderia me dizer se há algum indicador de perfil de mercado? E também uma documentação ou descrição de como utilizá-los? Pelo menos os sinais mais simples para entrar no mercado usando indicadores de perfil de mercado?