Побарный индикатор

Побарный индикатор принимает на вход единичные значения и выдает одно значение.
На вход так же приходит номер бара (переменная 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; } } }

Пример индикатора, который принимает Источник и одно число. Выводит 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; } } }

Пример индикатора, который имеет 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; } } }