静的配列 ? - ページ 5

 
ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ今、彼は私に言いました 笑

OKここで私はいくつかの結果と少し良い何かを得た、私は完全に結果を理解していないが、私はそこからそれを理解し、私は決して結果を得ることができなかった理由を理解することができると思います。

ありがとうございます。

//+------------------------------------------------------------------+
//|                                                  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[5];
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];
       
     }   
     
     for(i=Bars; i >= 0; i--)
     {
     val1=iFractals(NULL, 0, MODE_UPPER,i);
     if(val1>0)
      {
      double v1[6];
      v1[5]=High[i];
      Print ("v1[", 5, "]= ", v1[5]);
      }
     }
     
        
                       
        
           

//---- 

 
                    
        

                
   return(0);
  }    

//+------------------------------------------------------------------+
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3312
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3315
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3284
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3299
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3306
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3325
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3343
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3399
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3419
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3398
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3374
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3375
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3378
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3387
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3383
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3373
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3372
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3368
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3356
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3366
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3369
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3386
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3303
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3314
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3294
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.329
 
これで、以前のフラクタルの 参照方法を考えることに戻れますね

感謝

 
必ず説明はある......それを見つけるだけでいいんです :-)
 
RaptorUK:

そう、Indicatorバッファは普通の配列とは扱いが違うのです。

v[i] は配列の宣言ではなく,要素の1つに過ぎません.しかしdouble v[]; は要素数が0の配列です.

となってしまい、混乱してしまいます。
ということは、配列に値を入れることができるのに、それが宣言されていないため、どの要素であったか/であるかを知らずにそれらの要素にアクセスする方法がないのでしょうか?

では、配列に0個の要素がある場合、バッファはどのようにv1[i]の線を描くか知っているのでしょうか。?

つまり、High[i] = Trueなので、High[i]を描画するのでしょうか?
しかし、実際に要素に値がない状態でそれを描画します。ただ、その時点でHigh[i]を描画するためにTrueとOKですか?

私はこれについての近くでもない場合は、明確にお願いします。

そして、家庭教師をありがとうございました
 

インジケータバッファは 特別な配列です。配列とバッファを混同しないでください。

元のコードではv1[]とv2[]はバッファで、最新のコードでは配列です。配列を宣言するときはサイズを指定する必要があり、例えばv1[50]はv1[0]からv1[49]まで50要素あります。バッファは、必要な要素数が増えると自動的にリサイズされ、バッファ内の値も自動的に移動します。 現在形成されているバー、バー0を考えてみましょう。このバーが終了すると、そのバーに関連するインディケータの値はインデックス1にシフトしなければなりません ... これはバッファで自動的に行われます ... もし、配列で同様のことをしたい場合は可能ですが、自分でコーディングしなければなりません。

 
OK、なるほど、バッファが本当は同じではないことを知らなかっただけです。これはまさに私が理解する必要があったことで、私はおそらく少し前にこれを理解したことでしょう。

ありがとうございます。
 
for(i=Bars; i >= 0; i--)
      {
      val3=iFractals(NULL, 0, MODE_UPPER,i);
      if(val3>0)
         {      
         v3[1]=High[i];
         double v3[9];
// if I put v3[1]=High[i]; here in stead of above it will not draw the line, probably because of this buffer topic again
         Print ("v1[", 1, "]= ", v3[1]);
         }
      }

とにかく、私は今、いくつかの良い進歩を遂げるかもしれないと思います。


この行を配列の宣言のすぐ上に置くと、インジケータは表示されますが、0しか表示されません。

 
iFractalsについて、val1>0の場合についてお伺いします

これは ==True を意味し、その後継続すると仮定しています

では、これが真である時点で、単純に印刷すると、真である限り、値の継続的な変化を印刷するので、どのようにこの値を知ることができますか

また、配列を宣言して、v1[3]=High[i] のように配列内の要素を宣言しても印刷結果は val1>0 として変化し続けているのです。

つまり、[i] は配列を宣言しておらず、それ自体も未宣言であるため、バッファから値を取得することができませんので、バッファの [i] 値を使用せずに実際のフラクタル 値が何であるかを知るには、どうしたらよいか理解しようとしているのです。まあ部分的に未宣言なんですけどね。

そこで、配列を宣言してHigh[i]として値を代入すれば、私の望む印刷結果が得られると思いますが、インジケータのように固定値ではないので、この値を使用したり、他の変数に名前を変えて使用するには、どのように再現すればよいのでしょうか?

アドバイスお願いします。

ありがとうございます。






 
多分あなたは、あなたがやろうとしていることを説明することから始めるべきでしょう ... ... コードには全く触れずに... ...ただ単純に英語で。 そうすれば、おそらく私たち双方にとって、物事がより明確になるでしょう ... ;-)
 
RaptorUK:
多分あなたは、あなたがやろうとしていることを説明することから始めるべきでしょう ... ... コードには全く触れずに ... ... 簡単な英語だけでいいのです。 それはおそらく私たち両方のために物事を明確にするでしょう ...;-)
笑 OK

私はちょうど信号自体がチャート上に表示されますifractalsを参照することを学びたいと思います。
一般的にそれらのすべてではなく、高および/または低の1つ、または以前のものを選択し、使用するためにそれらを選択する。
ABCDのようなネーミングで使用する。

iFractalsは、私がこの用途のために自作しようとしていたものをほぼ実現しているようなので、これらのフラクタルに変数名を付けられるようにしたいと思いました。

そうすれば、インジケータに表示されているような、固定された iFractals を参照するコードや、新しいものが形成されるまで表示され続ける v1[i]=High[i] のようなコードをデザインできるかもしれません。インジケータは固定されたままの値を表示

そこで、例えば現在のv1[i]=High[i]の変数を作成するコードを作成しようとしたのですが、これはAかもしれませんが、Print文のような移動値ではなく、インジケータのように固定値が欲しいのです。

それから、以前のHigh[i]を選択してAまたはBとマークし、if(A>High[i] at that time)をCとする、などです。このように、ABCDをうまく使って、まったく別のストラテジーの別の部分で使えるようなスキームを考えています。しかし、多くの人がこのタイプのABCDスキームをfibや他の多くのパーツやインジケータで使っていることに気づきましたが、私はただ基本的なABCDスキームを作る方法を学びたかっただけで、おそらく後でこれらのABCDに基づいてトレンドラインを 描くようにしたかったのです。

その他にもいろいろありますが、とりあえずABCD系だけでいいです。

ありがとうございます。