Был такой советский фильм "Сережа", там мальчик после глупой шутки спрашивает дядю: "Дядя, Петя! Вы дурак?"
my.mail.ru/mail/yuriyreshetov/video/_myvideo/4180.html
Я уже вам штук 30 разных машек написал, и каждый раз, когда надо писать новую я слышу одну и туже фразу: "Говорил тебе возьми мой T_JMS..."
Нет пока вашего Т_JMS, есть несколько вариантов Т_JMS которые я для вас написал. И каждый раз приходится брать тот, который требуется для решения задачи.
Все правильно, вариант T_JMS который вы предлагаете - считает цену по Close, и подходит для переделки индикаторов с одним ценовым рядом.
Параболики имеют два режима и считают цену по Close и по High\Low.
Поэтому нужен T_JMS_gm который при вызове может возвращять 3 потока: Close, High, Low по алгоритму Speedi. Что я и использовал в данном случае.
if (HighLow){
double hiprice_i = iCustom(NULL,0,"T_JMS_gm",T_JMS_Length ,Phase ,T_JMS_Shift, iPrice=2, 3, "",Smooth_Price_MA,"", SpeediShift,"", TeMA_Method,
TeMA_SecondPeriod, TeMA_ThirdPeriod, TeMA_SmoothingPeriod, Koef ,CountBars,0, i); //High
double loprice_i = iCustom(NULL,0,"T_JMS_gm",T_JMS_Length ,Phase ,T_JMS_Shift, iPrice=3, 4, "",Smooth_Price_MA,"", SpeediShift,"", TeMA_Method,
TeMA_SecondPeriod, TeMA_ThirdPeriod, TeMA_SmoothingPeriod, Koef ,CountBars,0, i); //Low
thigh=iAverage(iFilter(hiprice_i ,Filter,fperiod,i,0),OmaLength,OmaSpeed,OmaAdaptive,i,0);
tlow =iAverage(iFilter(loprice_i ,Filter,fperiod,i,0),OmaLength,OmaSpeed,OmaAdaptive,i,7);
} else {
double closeprice_i = iCustom(NULL,0,"T_JMS_gm",T_JMS_Length ,Phase ,T_JMS_Shift, iPrice=0, 1, "",Smooth_Price_MA,"", SpeediShift,"", TeMA_Method,
TeMA_SecondPeriod, TeMA_ThirdPeriod, TeMA_SmoothingPeriod, Koef ,CountBars,0, i); //iMA(NULL,0,1,0,0,Price,shift);
thigh=iAverage(iFilter(closeprice_i,Filter,fperiod,i,0),OmaLength,OmaSpeed,OmaAdaptive,i,0); //Close
tlow =iAverage(iFilter(closeprice_i,Filter,fperiod,i,1),OmaLength,OmaSpeed,OmaAdaptive,i,7); //Close
}