Побарный индикатор принимает на вход единичные значения и выдает одно значение.
На вход так же приходит номер бара (переменная i).
using TSLab.Script.Handlers;
namespace MyLib
{
[HandlerCategory("MyLib")]
[HandlerName("HandlerWithNumber")]
[InputsCount(2)]
[Input(0, TemplateTypes.DOUBLE, false, "list1")]
[Input(1, TemplateTypes.DOUBLE, false, "list2")]
[OutputsCount(1)]
[OutputType(TemplateTypes.DOUBLE)]
public class HandlerWithNumber : IValuesHandlerWithNumber
{
public double Execute(double value1, double value2, int i)
{
return (value1 + value2) / 2;
}
}
}
2. Пример индикатора, который принимает Источник и одно число. Выводит close + число.
using TSLab.Script;
using TSLab.Script.Handlers;
namespace MyLib
{
[HandlerCategory("MyLib")]
[HandlerName("HandlerWithNumber2")]
[InputsCount(2)]
[Input(0, TemplateTypes.SECURITY, Name = "SECURITYSource")]
[Input(1, TemplateTypes.DOUBLE, false, "list2")]
[OutputsCount(1)]
[OutputType(TemplateTypes.DOUBLE)]
public class HandlerWithNumber2 : IValuesHandlerWithNumber
{
public double Execute(ISecurity security, double value1, int i)
{
return security.Bars[i].Close + value1;
}
}
}
3. Пример индикатора, который имеет 2 перегрузки метода Execute и принимает Источник и одно или два числа. Выводит close + число1 + число2.
using TSLab.Script;
using TSLab.Script.Handlers;
namespace MyLib
{
[HandlerCategory("MyLib")]
[HandlerName("HandlerWithNumber3")]
[InputsCount(3)]
[Input(0, TemplateTypes.SECURITY, Name = "SECURITYSource")]
[Input(1, TemplateTypes.DOUBLE, false, "list1")]
[Input(2, TemplateTypes.DOUBLE, false, "list2")]
[OutputsCount(1)]
[OutputType(TemplateTypes.DOUBLE)]
public class HandlerWithNumber3 : IValuesHandlerWithNumber
{
public double Execute(ISecurity security, double value1, int i)
{
return security.Bars[i].Close + value1;
}
public double Execute(ISecurity security, double value1, double value2, int i)
{
return security.Bars[i].Close + value1 + value2;
}
}
}