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 627

 
culler:

EncomendarEnviar ()

escorregamento,// escorregamento

Você pode me dizer em que formato?

Exemplo: 3 - 0,00003 ou 0,0003 para uma conta de cinco dígitos


3 para uma conta de 4 dígitos é 30 para uma conta de 5 dígitos respectivamente, mas se você realmente quiser, você também pode deixar 3 para uma conta de 5 dígitos, apenas as recotações serão constantes.
 

Você pode me dar um exemplo de código, eu não consigo pensar em nada normal.

Como forçar a comparação de preços ( por exemplo: MarketInfo(Symbol(),MODE_BID ) pelo quanto o preço subiu acima/baixo desde que a comparação de preços começou.

Se eu usar as Variáveis "A" e "B" com Bid, como posso forçar a atualizar apenas a Variável "B" e compará-las ainda mais - caso contrário, ambas terão sempre os mesmos valores.

Ou talvez haja maneiras mais simples embutidas?

 
culler:

Você pode me dar um exemplo de código, eu não consigo pensar em nada normal.

Como forçar a comparação de preços ( por exemplo: MarketInfo(Symbol(),MODE_BID ) pelo quanto o preço subiu acima/baixo desde que a comparação de preços começou.

Se eu usar as Variáveis "A" e "B" com Bid, como posso forçar a atualizar apenas a Variável "B" e compará-las ainda mais - caso contrário, ambas terão sempre os mesmos valores.

Ou talvez haja maneiras mais simples embutidas?


O tempo deve ser levado em conta. Lembre-se do tempo em que o primeiro valor de Licitação foi escrito e depois compare-o com o valor real da Licitação após um certo intervalo:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

A variável B C será, portanto, o valor absoluto da diferença em Licitações nos últimos 10 segundos.

 

Por favor, avise - enquanto depura o programa - no depurador na janela "Acompanhamento de valores de expressão" nas expressões escreve "Expressão não pôde ser avaliada" enquanto os valores de

estas expressões aparecem calmamente na janela chamada pela função Alerta. O programa funciona, as variáveis são atribuídas valores e no depurador não são exibidas, pois não podem ser avaliadas. Como isso pode ser?

 
evillive:

O tempo tem que ser levado em consideração. Lembre-se do tempo em que o primeiro valor da Licitação foi registrado e depois compare em um determinado intervalo com a Licitação real naquele momento:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

A variável B C será, portanto, o valor absoluto da diferença da Licitação nos últimos 10 segundos.


Não há referência ao tempo. O tempo é o inimigo aqui.

Como sem tempo?

 
culler:


Não há referência de tempo. O tempo é o inimigo aqui.

Como sem tempo?


Você coloca uma variável com o valor do preço no OnInit, e ela será vinculada ao preço durante o início do Expert Advisor, então você pode compará-la com o que você precisa
 
culler:


Não há referência de tempo. O tempo é o inimigo aqui.

Como você pode passar sem tempo?


Você não pode passar sem tempo no tailrace, é uma parte inseparável do sistema, infelizmente. Mesmo na pergunta colocada, o tempo aparece:

Como fazer comparação de preços ( por exemplo: MarketInfo(Symbol(),MODE_BID ) quanto mais alto/baixo a partir do momento da comparação de preços.

O "momento" é o tempo lá, o ponto de referência inicial.

 
culler:

Você pode me dar um exemplo de código, eu não consigo pensar em nada normal.

Como forçar a comparação de preços ( por exemplo: MarketInfo(Symbol(),MODE_BID ) pelo quanto o preço subiu acima/baixo desde que a comparação de preços começou.

Se eu usar as Variáveis "A" e "B" com Bid, como posso forçar a atualizar apenas a Variável "B" e compará-las ainda mais - caso contrário, ambas terão sempre os mesmos valores.

Ou talvez haja maneiras mais simples embutidas?

LastPrice=0;

NewPrise=0;

if(условие записи  LastPrice &&  NewPrise==0){LastPrice = MarketInfo(Symbol(),MODE_BID);}

if(LastPrice > 0) { NewPrise = MarketInfo(Symbol(),MODE_BID);} 


 
evillive:

No tailrace não há tempo sem tempo, é uma parte inseparável do sistema, infelizmente. Mesmo neste período de perguntas, o tempo está presente:

o "momento" há o momento, o ponto de partida.


não há tempo em forex.... há uma série contínua de estados esperados... (previsões)

Mas para um comerciante, entre dois estados esperados pode passar uma hora, outro mês, outros segundos, ou mesmo um ano... :-)))

o problema é dele... o objetivo do sucesso da negociação é minimizar o período de espera.... ( dependendo do que se pretende...)

 

Olá a todos. Pergunta sobre IndicatorCounted():

#property indicator_separate_window
datetime LastBarTime=0;
int start() 
{
   // каждый свежий бар считаем только 1 раз (сразу после закрытия)
   if (Time[0]!=LastBarTime)               // если идёт расчёт всей истории или начался свежий бар
   {
      LastBarTime=Time[0];
      
      int counted=IndicatorCounted(); if(counted<0) return(-1);
   // if (counted>0) counted--;   <<< зачем оно???
   
                 int i=Bars-counted;  // варианты: считаем историю(i=кол-во баров), сформирован свежий бара (i=2) ПОЧЕМУ?
      if (counted<2) i=Bars-2;        // для корректного начала расчёта (иначе i и тем более i+1 заглядывают в бездну)

      Print("!!!!!!TEST Bars-counted=",i);  // ПОЧЕМУ =2 ???
                     
      for (; i>0; i--) // открытый бар не считаем
      {
      // варианты:
      // 1) в истории недостаточно баров (меньше трёх): итераций цикла не будет
      // 2) произошла переинициализация переменных и тогда надо считать историю с нуля (i указывает на 2-й бар слева)
      // 3) историю уже расчитали, а сейчас сформирован свежий бара: i должна указывать на закрытый бар (i=1)
      }
   }
   
return (0);
}


Posso esperar apenas dois estados no circuito:

1) inicialização (as variáveis estáticas são zeradas e i aponta para a 2ª barra à esquerda);

2) a história inteira é calculada (i=2);


E, na verdade, por que i=2? Eu entenderia i=1 ou i=0, mas por que 2? Posso contar com esses 2? =)

Caso contrário, qual é a maneira correta de fazer isso. Eu tenho um cálculo em cadeia, portanto, a mesma barra não pode ser processada repetidamente.

...

Ok, vou colocar a questão de outra forma. Direto ao ponto. Posso usar uma variável ao invés de IndicatorCounted()?

Ou seja, a inicialização primária de estatísticas e globais é sempre a mesma que 0 do IndicatorCounted()?