学童のためのEOPです。 - ページ 9

 
Dmitry Fedoseev:

インジケータが左から右へ計算される場合、例えばフラクタルが形成されるなどの何かが起こった場合、このイベントと共にバーのインデックスを保存しなければなりません(他のことに使用するため)。右から左へのインデックス付けであれば、n=Bars-iを計算してnを記憶し、その逆でi=Bars-nを計算すればよいことになる。しかし、左から右へインデックスを行う場合、インデックスを保存して使用すれば、変更されることはありません。多かれ少なかれ複雑な指標では常にこれが必要なので、左から右へのインデックスは指標開発者にとって大きな助けとなっています。

mql4で一つのインディケータを書き始めたら、その1/3を書き、もう1/3の部分は最初の1/3の結果を元に、3番目の部分は2/3の値を元に書きました。バーを正しい値で計算する際に、大きな問題に直面しました。しかし、たまたまお客様がいなくなってしまい、書き終えていないのです。また、右側でインデックスを作成する場合、小節数は変更しないので、補助配列に小節数を書き込み、この配列のみを実行して第2部、第3部を構成すればよい...。

 
Dmitry Fedoseev:

インジケータが左から右へ計算される場合、例えばフラクタルが形成されるなどの何かが起こった場合、このイベントと共にバーのインデックスを保存しなければなりません(他のことに使用するため)。右から左へのインデックス付けであれば、n=Bars-iを計算してnを記憶し、その逆でi=Bars-nを計算すればよいことになる。しかし、左から右へインデックスを行う場合、インデックスを保存して使用すれば、変更されることはありません。 多かれ少なかれ複雑な指標では常にこれが必要なので、左から右へのインデックスは指標開発者にとって大きな助けとなっています。

どうでしょう。そして、端末が履歴をダウンロードし、何が?
 
Ihor Herasko:

以下はその一 です。

イゴール・マカヌ

https://www.mql5.com/ru/code/25807

ありがとうございます、でも

  1. 残念ながら、四つんばいです。
  2. iCustomを使わずにこのようなインジケータを接続する分かりやすい例が欲しいです )))
 
Vladimir Simakov:
まいったなぁ。そして、端末が履歴をダウンロードし、何が?

大したことではありません。四方八方からアプローチすることを忘れればいいのです

   int counted_bars=IndicatorCounted();
   int i,r,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = Bars-counted_bars;
         if (ArrayRange(working,0) != Bars) ArrayResize(working,Bars);

   //
   //
   //
   //
   //
        
   for(i=limit, r=Bars-i-1; i >= 0; i--,r++)

そして、こうやってやるんだ。

if(rates_total-prev_calculated > 1)
 {
  // Если это первый запуск или подгрузилась история пересчитаем весь индикатор.
 }
if(rates_total-prev_calculated >= 0)
 {
  // Пересчитаем только последнее изменение.
 }
 
#include <Indicators/Indicators.mqh>

CiADX adx;

int OnInit()
  {

   if(!adx.Create(Symbol(),Period(),14)){
      return(INIT_FAILED);
   }

   OnTick(); // это только для этого примера, чтобы на выходных сработало

   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
   double buf[];
   
   if(adx.GetData(0,1,0,buf)==-1){
      return;
   }

   Comment(buf[0]);
   
  }
 
Vladimir Simakov:
あ、そうそう。そして、端末が履歴をダウンロードし、何?

どこから来て、なぜここにいるのですか?MT4やMT5用のインジケータを一つでも書いたことがありますか?少なくとも、MetaTrader用のインジケーターの書き方の 基本は知っておく必要があります。

 
Dmitry Fedoseev:

なぜなら、彼らは複雑だが高速なインジケータを書かなかったからだ。そうでなければ、左から右へのインデックス付けが非常に重要な解決策になっただろう。

EAに高速なインジケータが必要な場合は、計算部分を直接EAに入れた方が良い。

 
Alexey Volchanskiy:

EAに手っ取り早くインジケータが必要な場合は、計算部分を直接EAに挿入した方がお得です。

まさか...。残酷なほど、女友達に教えてあげてください。

 
Dmitry Fedoseev:

どこから来て、なぜここにいるのですか?MT4やMT5用のインジケータを一つでも書いたことがありますか?MetaTrader用のインジケーターの書き方の 基本くらいは知っておきたいものです。

ディミトリは怒っている、まだ飲んでいない)))

 
少し修正 しました。GetData()は不等号-1をチェックする必要があります。