[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 127

 
いいえ。
 

今回の質問:標準のOAインジケーターは、インジケーターのレンダリングには関与しない、2つの追加インデックスバッファを 使用しています。

//+------------------------------------------------------------------+
//|                                                  Accelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
//---- indicator buffers
double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];
double     ExtBuffer3[];
double     ExtBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(5);
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   IndicatorDigits(Digits+2);
   SetIndexDrawBegin(0,38);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);
//---- 4 indicator buffers mapping
   SetIndexBuffer(0, ExtBuffer0);
   SetIndexBuffer(1, ExtBuffer1);
   SetIndexBuffer(2, ExtBuffer2);
   SetIndexBuffer(3, ExtBuffer3);
   SetIndexBuffer(4, ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("AC");
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev, current;
//---- last counted bar will be recounted
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i=0; i& lt; limit; i++)
      ExtBuffer3[ i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN, i)-
                    iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN, i);
//---- signal line counted in the 2-nd additional buffer
   for( i=0; i< limit; i++)
      ExtBuffer4[ i]=iMAOnArray( ExtBuffer3,Bars,5,0,MODE_SMA, i);
//---- dispatch values between 2 buffers
   bool up=true;
   for( i= limit-1; i>=0; i--)
     {
      current=ExtBuffer3[ i]- ExtBuffer4[ i];
      prev=ExtBuffer3[ i+1]- ExtBuffer4[ i+1];
      if( current> prev) up=true;
      if( current& lt; prev) up=false;
      if(! up)
        {
         ExtBuffer2[ i]= current;
         ExtBuffer1[ i]=0.0;
        }
      else
        {
         ExtBuffer1[ i]= current;
         ExtBuffer2[ i]=0.0;
        }
       ExtBuffer0[ i]= current;
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+

ご覧のように、これらの配列では計算のみが行われます。なぜ、これらの配列にインデックスバッファのステータスを割り当てる必要があるのか理解できません。

 
neoclassic писал(а)>>

今回の質問:標準のOAインジケーターは、インジケーターのレンダリングには関与しない、2つの追加インデックスバッファを使用しています。

ご覧のように、これらの配列では計算のみが行われます。理解できないのですが、なぜこれらの配列にインデックスバッファのステータスを割り当てる必要があるのでしょうか?

で、配列のサイズを設定します!

 

フォーラムユーザーの皆様、こんにちは。

私は完全なMQLプログラマーです。でも、こんなシンプルなEAが欲しいです。いくつかのロットでポーズを開く。私はすぐに固定ストップ(20-30pips)を設定しました。一定の利益(20~30ピップ)に達した後、ポジションの一部(50%)を決済し、残りのポジションについてはストップをブレイクイーブンに移動します。残りのポジションについては、利益確定注文を出すか、手動で監視します。ここにアイデアがあります。回答いただけると幸いです。

 
vvavva >> :

で、配列のサイズを設定します!

が、大量の配列を使う必要がある場合はどうすればいいのでしょうか?>> (8個以上)

 

バッファ配列ではなく、通常の配列を使用します。

代わりに

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4)を設定。

使い道

ArrayResize(ExtBuffer3,Bars); ArrayResize(ExtBuffer4,Bars);

 
keekkenen >> :

バッファ配列ではなく、通常の配列を使用します。

代わりに

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4)を設定。

使い道

ArrayResize(ExtBuffer3,Bars); ArrayResize(ExtBuffer4,Bars);


ありがとうございます!!!

 
neoclassic писал(а)>>

大量のアレイが必要な場合はどうするのですか?(8人以上)

インジケータに描画するための配列は、指定された上限(8個だと思う)を超えることはできないのです!

計算用配列にも限界がありますが、その数はもっと多いのです

配列の制限を回避するためには、ライブラリを使用する必要があります。

 
質問があります。ニュースの待ち受けにすることは可能か。例えば、今日がニュースの正確な時間でないとすると、おおよそのテキストは1語で、私はより長く、より大きなビープ音が必要です。
 
Hello, plz tell me as many possible reasons why variable k=Bars may change whennew bar has not yet started to form (any possible situations), say you changed currency pair, timeframe, some mt4 update or in dc.教えてください。
理由: