指標となる質問 - ページ 6

 

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

このコードでは無限ループの可能性が残りますIMO。

 
もうちょっと考えないと、また読書で目がかすむ。

明日、確認 します。
 
ubzen:

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

このコードでは無限ループの可能性が残りますIMO。



もしval3 = 0でval1 = 0なら、値を取得するまで循環するはずです

ii val3 = iFractal(一瞬) なら、val1はval1 = 0になるまで循環するはずです (そしてこれが私の問題です)

これは本当に無限ループかロックアップポイントのようなものですね。私はprint文がval1のiFractal値を返すために取得しますが、私はこれがどこにあるか本当にわからない
私はこれをテストするために他の人が投稿したものでもう少し実験する必要がありますが、私はあなたが正しいと思う

おそらくそれは正確に意図した通りではありませんが、これはちょうど前のフラクタル 値に増分する私が達成したいコンセプトです

私はそれに取り組み続けるでしょう。
 
diostar:

正直なところ、ループの終了条件については、初めて知りました。これは厄介ですね...。

部分的に動作しているように見えますが、print文が値を返すので、私を欺いているようです。0になった時点でval1は0に戻り、以前のフラクタル

だから理論的にはval3 == 0である限り一度だけ動作し、その後val1がもはや== val3でなくなるまでi++が逆に増加し、私がやりたいことはこれです。しかしval3 == a valueならval1は0に戻り、もはやval3への==ではない値になって、ループは終了してしまいます。
これは結局私が欲しかったものとは違うので、また振り出しに戻ることになります。

ありがとうございました。

 
RaptorUK:

iFractal を取得するとき、その値は > 0 ですね?

ですから、例えば、最後の上側と下側のiFractalがどこにあったかを知りたい場合は、次のようにすればよいのです ... ...

なるほど、この前の場所の値をどうやって出すか、工夫すれば

何とかなると思います。

ありがとうございます。
 

0のキャンドルはFractalには なり得ないので、val3は常に0になります。

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

...を使って、val3を取り除くのはどうでしょう。

私はこの場合、しばらくを好むが、あなたがやろうとしていたことによく合うように見えた .

 
RaptorUK:

iFractal を取得するとき、その値は > 0 ですね?

ですから、例えば、最後の上側と下側のiFractalがどこにあったかを知りたい場合は、次のようにすればよいのです ... ...

これは、最後の iFractal がどこにあるかを教えてくれるようですが、前の両方の iFractal は教えてくれません

例えば:

2011.10.07 09:05:36 sup_res EURUSD,M5:LastUPPER Fractal at 6 Last LOWER Fractal at 0

つまり、現在のUPPERハイフラクタルが表示され、その位置が表示されるのは良いことです
また、val1=i を val1=iFractal(NULL, 0, MODE_UPPER,i) とすれば、最後のiFractalの値が得られる
というわけで、少しは理解が進みましたが、前のiFractalに戻るにはまだ再コード化が必要です

一度iFractalが形成されると、このwhile文は現在形成されている最新のiFractalを表示し続けることになるのでしょう。
そこで、新しい iFractal ができたとすると、この現在のフラクタルを while 文から参照したいのですが、これは実際には現在のものではなく、前のものです
そこで、iFractal LOWER_MODE ができたとすると、前の iFractal UPPER_MODE を参照してこれらの値を比較したいのですが、どうすればよいでしょうか?

しかし、あなたのアドバイスから、私はこれを解決することができるかもしれないと思いますこれらのすべての素晴らしいアイデアは、私の多くを助けている。
コードがどのように動くのかがわかってくると、自分の知っていることを使ってトレードするのが楽しくなってきました。

ありがとうございました。
 
Agent86:
これは、最後のiFractalがどこにあるかを教えてくれるようですが、前のiFractalの両方は教えてくれません。

私のコードにエラーがあります .. .

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

should be . . .

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

0のキャンドルはFractalにはなり得ないので、val3は常に0になります。

... ... とval3を取り除くことができます。

私はこの場合、しばらくを好むが、あなたがやろうとしていたことによく合うように見えた .

OK私はval3シフトを3に変更しましたが、私は本当にこれも好きではない、私はいくつかの変更を行います、ありがとうございます。
 
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);
        
         }

if(文)の中にfor(文)を追加した場合、さらにif(文)を追加してループ内の値を参照することは可能ですか?

また、これらの追加のif(文)はループの内部で発生しなければならないのでしょうか、それともループの外側にいてもval2などのループ内の値を参照することができるのでしょうか?

他のコードブロックの中にループがある場合、何が正常と見なされるのか、教えてください。また、どのようにループの値を抽出するのでしょうか?

ありがとうございます。