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)
{
// Пересчитаем только последнее изменение.
}
インジケータが左から右へ計算される場合、例えばフラクタルが形成されるなどの何かが起こった場合、このイベントと共にバーのインデックスを保存しなければなりません(他のことに使用するため)。右から左へのインデックス付けであれば、n=Bars-iを計算してnを記憶し、その逆でi=Bars-nを計算すればよいことになる。しかし、左から右へインデックスを行う場合、インデックスを保存して使用すれば、変更されることはありません。多かれ少なかれ複雑な指標では常にこれが必要なので、左から右へのインデックスは指標開発者にとって大きな助けとなっています。
mql4で一つのインディケータを書き始めたら、その1/3を書き、もう1/3の部分は最初の1/3の結果を元に、3番目の部分は2/3の値を元に書きました。バーを正しい値で計算する際に、大きな問題に直面しました。しかし、たまたまお客様がいなくなってしまい、書き終えていないのです。また、右側でインデックスを作成する場合、小節数は変更しないので、補助配列に小節数を書き込み、この配列のみを実行して第2部、第3部を構成すればよい...。
インジケータが左から右へ計算される場合、例えばフラクタルが形成されるなどの何かが起こった場合、このイベントと共にバーのインデックスを保存しなければなりません(他のことに使用するため)。右から左へのインデックス付けであれば、n=Bars-iを計算してnを記憶し、その逆でi=Bars-nを計算すればよいことになる。しかし、左から右へインデックスを行う場合、インデックスを保存して使用すれば、変更されることはありません。 多かれ少なかれ複雑な指標では常にこれが必要なので、左から右へのインデックスは指標開発者にとって大きな助けとなっています。
以下はその一例 です。
https://www.mql5.com/ru/code/25807
ありがとうございます、でも
まいったなぁ。そして、端末が履歴をダウンロードし、何が?
大したことではありません。四方八方からアプローチすることを忘れればいいのです
そして、こうやってやるんだ。
あ、そうそう。そして、端末が履歴をダウンロードし、何?
どこから来て、なぜここにいるのですか?MT4やMT5用のインジケータを一つでも書いたことがありますか?少なくとも、MetaTrader用のインジケーターの書き方の 基本は知っておく必要があります。
なぜなら、彼らは複雑だが高速なインジケータを書かなかったからだ。そうでなければ、左から右へのインデックス付けが非常に重要な解決策になっただろう。
EAに高速なインジケータが必要な場合は、計算部分を直接EAに入れた方が良い。
EAに手っ取り早くインジケータが必要な場合は、計算部分を直接EAに挿入した方がお得です。
まさか...。残酷なほど、女友達に教えてあげてください。
どこから来て、なぜここにいるのですか?MT4やMT5用のインジケータを一つでも書いたことがありますか?MetaTrader用のインジケーターの書き方の 基本くらいは知っておきたいものです。
ディミトリは怒っている、まだ飲んでいない)))