проблемы с RSI в MetaTrader 3.78 build 5396

 
проблемы с RSI в MetaTrader 3.78 build 5396
Использую MetaTrader 3.78 build 5396.

При любом использовании iRSI в собственном индикаторе, MetaTrader подвешивается намертво и не отвечает ни на какие действия пользователя. Как можно решить данную проблему?
 
пришлите пожалуйста пример зависающего индикатора на stringo@metaquotes.ru
 
iRSI - очень тяжёлая расчётная функция
и MetaTrader не зависает - он обсчитывает каждый пришедший тик и грузит процессор на 99 процентов. Я из Вашего кода сделал оптимальный.

/*[[
Name := RSI_custom
Author := Copyright © 2003, MetaQuotes Software Corp.
Link := https://www.metaquotes.net/
Separate Window := Yes
Minimum Chart Limits := 0
Maximum Chart Limits := 100
First Color := Blue
First Draw Type := Line
Use Second Data := No
]]*/
Inputs : RSIPeriod(10), AccountedBars(300);
Variables : shift(0), cnt(0), loopbegin(0), first(True), prevbars(0);

SetLoopCount(0);
// check for additional bars loading or total reloading
If Bars < prevbars Or Bars-prevbars>1 Then first = True;
prevbars = Bars;
If first Then Begin
// loopbegin prevent couning of counted bars exclude current
loopbegin = Bars-RSIPeriod-1;
If loopbegin < 0 Then Exit; // not enough bars for counting
If AccountedBars < loopbegin Then loopbegin = AccountedBars;
first = False;
End;
loopbegin = loopbegin+1; // current bar is to be recounted too
For shift = loopbegin Downto 0 Begin
SetIndexValue(shift, iRSI(RSIPeriod,shift));
loopbegin = loopbegin-1; // prevent to previous bars recounting
End;


почитайте также на нашем сайте раздел "особенности написания пользовательских индикаторов". так Вам проще будет понять вышеприведённый код.

Причина обращения: