静的配列 ? - ページ 3

 

OK、何かわかりました。

 while(i>=0)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      if (val1 > 0) v1[i]=High[i];
      else          v1[i]=v1[i+1];

      val2=iFractals(NULL, 0, MODE_LOWER,i);
      if (val2 > 0) v2[i]=Low[i];
      else          v2[i]=v2[i+1];
      
      i--;    
     }

このループはいつ終わるのでしょうか? i が >=0 でないとき、つまり -1 のときです。

のとき、次のコードは....

     for(val1=High[i]; v1[i] == 0 ;i++)  // or v1[i] == EMPTY_VALUE
      {
      Print (v1[i]);
      }

というわけで、i の開始値は-1 となります。

 
私が何かを全く印刷するとき、それは常に0に等しいようだ

int i=Bars;         
   
   while(i>=0)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      if (val1 > 0) v1[i]=High[i];
      else          v1[i]=v1[i+1];

      val2=iFractals(NULL, 0, MODE_LOWER,i);
      if (val2 > 0) v2[i]=Low[i];
      else          v2[i]=v2[i+1];
      
      i--;
       
     }
   
     Print (v1[i+10]);
      

iを他のものに変えてみたり、while文を変えてみたり、全く別のコードも作ってみましたが、全て=0になっているようで、なぜなのかさっぱりわかりません。
しかし、インジケータは動作しており、バッファはv1[i]内のval1を適切に保持しているようですが、私は配列内の何かを参照し、それを印刷することはできません。

everything always = 0

もう少し読み続けてみます。






 
for(v1[i]=High[i]; v1[i] !=0; i++)
      {
      Print (v1[i]);
      }
      

This prints nothing so still having -1 issue I guess
が、もし-1で始まるなら、i++でまた0になるので、1回循環したらすぐ終わります。

このfor文は、while文の外で発生するので、while文の影響を受けるとは知りませんでした。

 
int i=Bars;         
   
   while(i>=0)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      if (val1 > 0)
      { 
      v1[i]=High[i];
      Print (v1[i]);
      }
      else          
      {
      v1[i]=v1[i+1];
      }

      val2=iFractals(NULL, 0, MODE_LOWER,i);
      if (val2 > 0) v2[i]=Low[i];
      else          v2[i]=v2[i+1];
      
      i--;
       
     }
ループの中や前にプリントしても0です。

基本的な作業でさえ、私を回避しているようです。Barsについても、ドキュメントや本には-1の話題はなく、少なくともBarsや定義済み変数のセクションにはあるはずなのですが、それがありません。
もう、がっかりだ。1.5週間もこの単純なテーマに取り組んで、しかも印刷は、私が正しい方向に進むのに役立つ最も単純なタスクだと思ったのです。

なんということでしょう。笑

明日、もうちょっとやってみます。
 

あなたは私の投稿をあまり注意深く読んでいませんね ... ...

Barsはいつでも-1とは等しくないし、私が言った-1とは何の関係もない。

あなたは2つのループでi 変数を使っています ... ループの間に他の値に変更しない限り、2番目のループの開始値は最初のループの終了値となります。

 
私は混乱している


forループを完全に削除し、ループの中でプリントするだけにしようと思いました。
i=0やi !=0を再初期化してみましたが、効果はありませんし、val3-iFractals...aのような全く別の変数にすることもできます。
とか、val3-iFractals...aのような全く別の変数でも、a=0でバーではなく、そこから上にカウントしても印刷はやはり0になります。

ループ内の印刷も、上記のコードのようにうまくいかない理由がわかりません。

ありがとうございます。

 

多分、あなたは私のために質問に答えることができます... ...

なぜコーディング経験の少ない多くの人が、Print 文を追加することに恐怖を感じるのでしょうか?なぜ、あなたは自分自身のために人生をそんなに難しくしたいのでしょうか?

あなたはたった一つのPrintステートメントを持っています。あなたはiFractals がどのように動作するか、つまりどのように計算し、どのような範囲の値を与えるかを知っていますか?

 

私はあなたのコードをコピーし、いくつかのprint文を追加し、それを実行した.それは印刷している... ...

2011.09.18 14:42:24 Agent86 EURUSD,H1: v1[29]= 1.4727

 
RaptorUK:

多分、あなたは私のために質問に答えることができます... ...

なぜコーディング経験の少ない多くの人がPrint文を追加することを恐れているように見えるのでしょうか?なぜ、あなたは自分自身のために人生をそんなに難しくしたいのでしょうか?

あなたはたった一つのPrintステートメントを持っています。iFractalsが どのように動作するのか、つまり、どのように計算し、どのような範囲の値を与えるのか知っていますか?


私はPrint文を追加 することに恐怖を感じているわけではなく、各変数の後にそれを置き、それが印刷されるのを見て私が期待したものでないので、それが何を印刷しているのか、なぜなのかを理解していません。あなたが見ている一つのPrint文は、私がそこに置いた唯一のものではありません。たった一つのprint文を試しただけなら、私は投稿しなかったでしょう。何百ものことを試し、100以上の投稿、辞書、本、ドキュメントなどを読み直した2-3週間後に、この配列がどのように動作し、どのように要素と値を表示するかを理解しようと投稿しました 私はこれを理解しようと1日に2-3時間取り組みましたが、私はあまり近づいていません、これを理解しようとしている間に他の多くのことを学びましたけど。私はコードを完全に書き直し、whileループの代わりにforループを使い、配列の要素を100に限定しました。







それがわからないんです。iFractalsは、5本のローソク足のうち、左から2本、右から2本のローソク足が、真ん中のローソク足より高いか低いかで、その高値・安値を出すと思っていたのですが、実際はどうなのでしょうか?真ん中のローソクの高値または安値に印をつけるか、または記録する。私はiFractalsの実際の計算を知らないが、私はそれが真を意味すると思った>0の場合、それを印刷しているので、これは問題ではないと思ったし、それはHigh[i]で初期化されているので、また。ただ、理解できないだけです。








 
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[0]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[1]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[2]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[3]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[4]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[5]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[6]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[7]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[8]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[9]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[10]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[11]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[12]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[13]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[14]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[15]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[16]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[17]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[18]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[19]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[20]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[21]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[22]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[23]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[24]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[25]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[26]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[27]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[28]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[29]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[30]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[31]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[32]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[33]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[34]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[35]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[36]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[37]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[38]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[39]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[40]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[41]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[42]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[43]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[44]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[45]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[46]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[47]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[48]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[49]= 0
2011.09.20 20:41:50 2011.01.03 10:21 Agent86_5min EURUSD,M5: v1[50]= 0


このコードから、はい、v1[i]を印刷するために他のすべての試みは、コード内の任意の場所にval1を除くすべての上に他のprint文があったprints = 0

//+------------------------------------------------------------------+
//|                                                  Agent86_5min.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS by Agent86"


//---- input parameters
extern double    TakeProfit=20.0;
extern double    Lots=0.1;
extern double    StopLoss=15.0;
extern int MagicNumber=123486;

double v1[];
double v2[];
double v3[];
double val1;
double val2;
double val3;


//++++ These are adjusted for 5 digit brokers.

int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)

    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if (Digits == 5 || Digits == 3)
   {    // Adjust for five (5) digit brokers.
      pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
   } 
   else 
    {    
      pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; 
    }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
  
   double   faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN
            slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL
            
  
          
   
    for(int i=Bars; i >= 0; i--)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
   
      // Print (val1, (" val1")); //will print some 0's
      if (val1 > 0)
         {        
         
          v1[i]=High[i];
 
         }
      else          
         {
         v1[i]=v1[i+1];
         }
        

      val2=iFractals(NULL, 0, MODE_LOWER,i);
     
      if (val2 > 0) 
         {
         v2[i]=Low[i];
         }
      else          v2[i]=v2[i+1];
     
      i--;
       
     }
   
   for(i=50; i>=0; i--)
      {
      Print ("v1[", i, "]= ", v1[i]);
      }

//----
            
                       
            

           

//---- 

 
                    
        

                
   return(0);
  }    

//+------------------------------------------------------------------+