どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 877

 
evillive:
そうですね、ボリンジャーバンドを使う場合は、iCustomを呼び出す必要はなく、各インジケーターのラインごとにiBandsを呼び出すことになりますね。インジケータを呼び出さない(「バッファ、配列、ループを使用しない」)別の方法は、インジケータ計算のアルゴリズムをExpert Advisorに実装し、必要なときに正しい値を読み取ることです(正しい値だけを読み取る、例えば、ボトムラインだけを読み取ることもできます)。しかし、完全にループや配列を使わないというのは無理があります。

OKです。では、どう書けば正しいのか。

MB_2=iBands(NULL,0,10,0,2.0,PRICE_CLOSE,2)となります。
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]);

ExtUpperBuffer[0]とExtUpperBuffer[1]の値、およびそれ以下をそれぞれ抽出するには?

 
rapid_minus:

OKです。では、どう書けば正しいのか。

MB_2=iBands(NULL,0,10,0,2.0,PRICE_CLOSE,2)となります。
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]);

ExtUpperBuffer[0]とExtUpperBuffer[1]のウェルとボトムの値をそれぞれ抽出するにはどうすればよいですか?

ここでもインジケーターの呼び出しが誤って書かれています。

もうここに ちゃんと書いてあるんですけどね。自分から何も作らなくても、すべてはリファレンスの中にあるのです。

もう一度言います。

High_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,2); //это и есть ExtUpperBuffer[2]
High_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,1); //ExtUpperBuffer[1]
High_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0); //ExtUpperBuffer[0]
Low_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,2); //ну и нижние соответственно, ExtLowerBuffer[2]
Low_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,1); //ExtLowerBuffer[1]
Low_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); //ExtLowerBuffer[0]
 
evillive:

ここでも指標となる呼称の書き方が間違っている。

正しい方法はすでにここに 書きました。自分で何も作らなくても、すべてハンドブックに書いてある。

もう1度

まあ、3回目にして手に入れたんですけどね。ようです。

MB_2の間違いは、呼び出し可能な回線指定がないことなんですね。しかし、ボリンジャーミドルラインの呼び方はまだ見つかっていない。それとも移動平均線としてだけ?MODE_SMA ?

 
rapid_minus:

まあ、3回目にして手に入れたんですけどね。ようです。

つまり、MV_2のエラーは、呼び出し可能な行指定がないということですよね?しかし、ボリンジャー平均線の呼び方はまだ見つかっていない。それとも移動平均線としてだけ?MODE_SMA ?

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - ゼロバーまで(括弧内の最後の桁-希望のバーへのオフセット)。

焦らず、じっくりとヘルプを読んでください。

 
evillive:

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - ゼロバーまで(括弧内の最後の桁-必要なバーへのオフセット)。

焦らず、じっくりとヘルプを読んでください。

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

質問の言い回しがわからないときに、どうやってヘルプで探すか、そこが問題なのです

いつもありがとうございます。もうちょっと調べてみるか。

 
rapid_minus:

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

質問の言い回しがわからないときに、どうやってヘルプで探すか、そこが問題なんです

いつもありがとうございます。もう少し調べてきます。

正しい質問をすることを学ぶことは、答えの半分なので、なんとか;)
 
mario065:
ここでは、2つのミューを越えてから小節を計測する例を示しました。

あなたのコードを試してみました

質問は、バー・ナンバー?

時針にゼロを含むさまざまな数字を描く、その価値を説明しました。

テスターに通してみましたが、同じでした。

片方の値がもう片方と同じであれば、私が必要とするような数字を描こうとします

しゃい

 
sannin:

あなたのコードを試してみました

質問は、バー・ナンバー?

時針にゼロを含むさまざまな数字を描く、その価値を説明しました。

テスターに通してみましたが、同じでした。

片方の値がもう片方と同じであれば、私が必要とするような数字を描こうとします

感謝

一例を挙げてみただけです。

したんですね(笑)。

以下はそのコードです。

//+------------------------------------------------------------------+
//|                                                    count bar.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

extern int limit = 300;
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    static datetime time,timeup,timedn;
    double spread=MarketInfo(Symbol(),MODE_SPREAD);
    double maslow1,mafast1,maslow2,mafast2;
    int    shift,shift1,shift2,f,j;
    
    for(shift=limit;shift>0;shift--){
        shift1=shift+1;shift2=shift+2;
        maslow1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift1);
        mafast1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift1);
        maslow2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift2);
        mafast2 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift2);
 
     if(mafast2<maslow2 && mafast1>maslow1){
        timeup=Time[shift1];
       } 
     if(mafast2>maslow2 && mafast1<maslow1){
        timedn=Time[shift1];
       } 
     
     if(timeup > timedn){
        time = timeup;
       } else {
        time = timedn;
       }
     }
 
      int b1=iBarShift(Symbol(), 0, time);      
      int b2=iBarShift(Symbol(), 0, TimeCurrent());
//Преброяване на баровете-от нулевия до началната дата
    for(j=b2;j<=b1;j++){
        f=b1-b2;
       }
      
   Comment("\n Време на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS)," Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\n Текущ спред: ",DoubleToStr(spread/10,1),
           "\n=====================",
           "\n Начална дата:           ",TimeToStr(time,TIME_DATE|TIME_SECONDS), 
           "\n Брой барове:            ",f,
           "\n=====================" 
             ); 
   return(0);
  }
//+------------------------------------------------------------------+

 
mario065:

一例として書きました。

作ったんですね :)

以下はそのコードです。

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

お金持ちになったら分けよう。

 
sannin:

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

お金持ちになったら分けよう。

コーヒーで十分なのは、お金持ちになってからです ;)