Pergunta indicadora - página 6

 

for(i=0; val1==val3; i++)

Este código deixa a possibilidade de um loop infinito IMO.

 
Tenho que pensar um pouco mais sobre isto, meus olhos estão de novo com a leitura desfocada.

Amanhã vou me apresentar
 
ubzen:

for(i=0; val1==val3; i++)

Este código deixa a possibilidade de um loop infinito IMO.

Realmente, parece que ele deve circular até que val1 não seja val3

Se val3 = 0 e val1 = 0 ele deve circular até obter um valor

ii val3 = iFractal(momentaneamente) então val1 deve circular até val1=0 (e este é meu problema aqui mesmo)

é realmente uma espécie de loop infinito ou ponto de bloqueio, embora eu receba uma declaração impressa para devolver o valor iFractal para val1, não tenho certeza de onde é
Terei que experimentar mais alguns com o que outros postaram para testar isto, mas acho que seu direito

Talvez não seja exatamente como pretendido, mas este é o conceito que quero alcançar para apenas incrementar o valor fractal anterior

Continuarei trabalhando nisso
 
diostar:

Honestamente, esta é minha primeira vez que vejo isto, para a condição de terminação do loop. É complicado...

Parece funcionar parcialmente, o que está me enganando porque minha declaração impressa retorna um valor, mas acho que o problema é que, assim que o val3 na verdade é >0 então val1 voltará a um valor que é 0 e não realmente o valor fractal anterior

Portanto, parece que em teoria só funcionará uma vez desde que val3 == 0 e então e só então i++ incrimentará para trás até que val1 não seja mais == val3 que é o que eu quero fazer, entretanto se val3 == um valor então val1 voltará a um valor de 0 onde não é mais == a val3 e então o loop terminará.
Isto não é exatamente o que eu queria, afinal de contas, de volta à prancheta de desenho novamente LOL

Obrigado a todos

 
RaptorUK:

Quando você recebe um iFractal o valor é > 0, sim ?

Então, por exemplo, se você quiser saber onde os últimos UPPER e LOWER iFractals estavam apenas fazendo algo assim ...

Acho que vejo agora, se eu puder descobrir como produzir o valor desses locais anteriores

Acho que posso resolver isso, espero. ele

Obrigado
 

A vela 0 não pode ser um Fractal então val3 será sempre 0, então por que não usar . . .

for(i=0; val1==0; i++)

... e se livrar do val3.

Mas, neste caso, eu prefiro um pouco mais, pareceu-me mais adequado ao que você estava tentando fazer . .

 
RaptorUK:

Quando você recebe um iFractal o valor é > 0, sim ?

Então, por exemplo, se você quiser saber onde os últimos UPPER e LOWER iFractals estavam apenas fazendo algo assim ...

Isto parece me dizer onde está o último iFractal, mas não os dois iFractals anteriores

Por exemplo:

2011.10.07 09:05:36 sup_res EURUSD,M5: Último UPPER Fractal em 6 Último UPPER Fractal baixo em 0

Assim, ele mostrará o UPPER alto fractal atual e imprimirá o local que é bom
Também posso mudar val1=i para val1=iFractal(NULL, 0, MODE_UPPER,i) e isto me dará o valor para o último iFractal
Então estou fazendo algum progresso na compreensão disto, mas ainda preciso recodificar para voltar ao iFractal anterior

Uma vez que um iFractal se forma, então esta declaração continuará a imprimir o iFractal atualmente formado e o último iFractal o que é legal
Portanto, digamos uma nova forma iFractal Eu quero fazer referência a este fractal atual a partir da afirmação do while que é realmente a 1 anterior e não a atual
Portanto, digamos agora as formas iFractal LOWER_MODE e eu quero fazer referência às formas iFractal UPPER_MODE anteriores e comparar esses valores.

Mas pelo seu conselho, acho que talvez eu consiga resolver isso, todas essas são grandes idéias que estão me ajudando muito.
À medida que me familiarizo mais com o funcionamento do código, estou realmente começando a gostar de usar o que sei para minhas idéias comerciais.

Obrigado
 
Agent86:
Isto parece me dizer onde está o último iFractal, mas não os dois iFractals anteriores

Há um erro em meu código . . .

while( val1==0 && val2==0)

should be . . .

while( val1==0 || val2==0)
 
RaptorUK:

A vela 0 não pode ser um Fractal então val3 será sempre 0, então por que não usar . . .

... e se livrar do val3.

Mas, neste caso, eu prefiro um pouco mais, pareceu-me mais adequado ao que você estava tentando fazer . .

OK, mudei o turno val3 para 3, mas também não gosto muito disto, vou fazer algumas mudanças, obrigado.
 
if(val1 > 0 && faster > slower)
      {
       Print (val1, " val1");
       for(i=0; val1 || val2==0; i++)
         {
         if(iFractals(NULL, 0, MODE_LOWER, i) > 0 && val2 == 0)
         val2 = iFractals(NULL, 0, MODE_LOWER, i);
         Print (" Last LOWER Fractal at ", val2);
        
         }

Ao adicionar um for(statement) dentro de um if(statement) você pode adicionar um if(statements) adicional e se referir aos valores no laço ?

E esses if(statements) adicionais têm que ocorrer dentro do laço ou você pode estar fora do laço e ainda se referir aos valores do laço, como val2 ?

Favor informar o que é considerado normal para loops dentro de outros blocos de código ? E como extrair valores dos loops ?

Obrigado