Вот исходный код несложного индикатора:
using System.Collections.Generic;
using TSLab.Script.Handlers;
namespace MyIndicators {
[HandlerCategory("MyIndicators")]
public class WMA : IDouble2DoubleHandler {
[HandlerParameter(true, "20", Min = "10", Max = "100", Step = "5")]
public int Period { get; set; }
public IList<double> Execute(IList<double> source) {
var wma = new double[source.Count];
// Вычислить сумму весов в знаменателе
int w = 0;
for (int i = 1; i <= Period; i++)
w += i;
for (int i = Period-1; i < source.Count; i++) {
int wv = 1; // вес
double wma1 = 0; // сумма
// Вычислить сумму произведений веса на цену элементов слева
for (int k = i - Period + 1; k <= i; k++, wv++)
wma1 += wv*source[k];
//Вычислить значение WMA в i-ой точке
wma[i] = wma1/w;
}
return wma;
}
}
}
Выделил нек. ключевые слова, без которых индикатор скомпилируется но не будет виден.
Вообще, непросто предполагать в чем проблема с Вашим индикатором, маловато информации. Пришлите, что ли код индикатора, гляну завтра (уже сегодня). Расчетную часть (содержимое функции Execute) можете не присылать
Еще вот как можно компилировать CS файлы даже без SD:
build.cmd WMA.cs
В build.cmd исправьте 2ую строчку. Надо указать путь к файлам TSLab