Кому интересно
Код: Выделить всё
function Initialize()
{
// Обязательные параметры:
IndicatorName = "ATR-X"; // Задайте название индикатора и сохраните с данным именем
PriceStudy = false; // Рисовать в области цены (true – да, false – нет)
AddInput("Input", Inputs.Candle); // Input - входной ряд (Inputs.Price) или свечи (Inputs.Candle)
// AddSeries("A", DrawAs.Line, Color.Red); // Задаем вид линии индикатора A
AddSeries("B", DrawAs.Line, Color.Black);
// Дополнительные параметры:
AddParameter("Scan", 20, 1); // Сканируемый период
}
function Evaluate()
//Владимир
{
double ATRx=0.0;
double ATRxn=0.0;
int Scanx = (int)(Scan);
if ((MaxIndex - CurrentIndex) > Scan) return;
{
if (CurrentIndex == MaxIndex)
{
for (var x= Scanx; x>0; x--)
{// расчёт атр
ATRx=Input.High[x]-Input.Low[x];
ATRxn=ATRxn+ATRx;
// LogData ("ATRx-" + Convert.ToString(x) +" = " + Convert.ToString(Math.Round(ATRx)) , IndicatorName);
}
// LogData ("ATR ср = " + Convert.ToString(Math.Round(ATRxn/(Scanx))) , IndicatorName); //строка вывода в лог
B[0] = Math.Round(ATRxn/(Scanx));
}// OFF if (CurrentIndex == MaxIndex)
} // OFF if ((MaxIndex - CurrentIndex) > Scan) return;
}