Уважаемый cmillion!
Прошу простить за наглость, но так как у меня такого знания нет, помогите чуть чуть переделать код. Мне надо прописать одну функцию вернее ее заменить, это выставление значения от средней линии. Сейчас это в пунктах. Сделайте пожалуйста это значение в процентах, от средней линии до границы канала, средняя линия должна быть нулем. А то канальный индикатор динамический и при выставлении точного значения при расширении канала приходится увеличивать это значение, а если реализовать в процентах то сужение или расширение канала не будет иметь значения.
Помогите пожалуйста.
input string A22=""; // фильтр Raff
input bool useRaff = false; // Вкл/Выкл.
input int UseClose = true; // UseClose
input int barsToCount = 30; // длина канала в барах
input int MinDist = 0; // минимальная дистанция в пунктах от средней линии
input int Corner = 30; // разница в пунктах для подтверждения сигнала (наклон)
//RAFF_INDICATOR
bool RaffBuy = false;
bool RaffSel = false;
sName = EA_NAME+"_ST_21"; ObjectSetText(sName, "Raff: ");
if (useRaff)
{
double Dist = 0;
double Beg = iCustom(NULL,0,INDUK2,UseClose,barsToCount,0,0);
double End = iCustom(NULL,0,INDUK2,UseClose,barsToCount,0,barsToCount-1);
Dist = (Beg > End) ? Beg - End : End - Beg;
RaffBuy = (Beg > End && Dist > Corner * Point && Open[0] < Beg && int((Beg-Open[0])/Point)>=MinDist);
RaffSel = (Beg < End && Dist > Corner * Point && Open[0] > Beg && int((Open[0]-Beg)/Point)>=MinDist);
sName = EA_NAME+"_ST_22"; ObjectSetText(sName, RaffBuy? CharToStr(233): (RaffSel? CharToStr(234): CharToStr(120)));
sName = EA_NAME+"_ST_23"; ObjectSetText(sName, "");
}
else
{
RaffBuy = true; sName = EA_NAME+"_ST_22"; ObjectSetText(sName, "");
RaffSel = true; sName = EA_NAME+"_ST_23"; ObjectSetText(sName, "");
}