У вас не стоит Flash Player
Настройки
#83024 - Sun Mar 18 2018 06:17 PM C#, кубик с 5-ю входами
alexc Offline
newbie

Registered: Sun May 05 2013
Записи: 30
Loc: Belarus
Добрый день.

Уважаемые разработчики, дайте пожалуйста ответ на такой вопрос:

Есть самописный кубик с тремя входами
public class AnyClassName : IThreeSourcesHandler, ISecurityInput0, IBooleanInput1, IDoubleInput2, IDoubleReturns, IValuesHandlerWithNumber, IContextUses
Метод Execute:
public double Execute(ISecurity sec, bool condition, double dValue, int bar)

По аналогиии с этим кубиком пытаюсь создать кубик с 5-ю входами.
Есть интерфейс IFiveSourcesHandler, но в то же время нет возможности указать тип 4-го и 5-го входных параметров (не находятся типы IDoubleInput3 и IDoubleInput4). Как так то?
Если для 4-го и 5-го параметров указать интерфейс IDoubleInputs, а метод Execute оформить так:
public double Execute(ISecurity sec, bool condition, double dValue, double dValue2, double dValu3, int bar)
то, при запуске скрипта с таким кубиком ТСЛаб выдает ошибку "Ни одна из перегрузок метода Execute не принимает "4" аргументов".

Каким образом при этом можно создать кубик с 5-ю входами, если входные параметры разных типов? Т.е. как при этом должны выглядеть объявление класса кубика и метода Execute?


Отредактировано alexc (Sun Mar 18 2018 06:23 PM)

Наверх
#83025 - Mon Mar 19 2018 12:48 PM Re: C#, кубик с 5-ю входами [Re: alexc]
Option Wizard Offline
writer

Registered: Fri Apr 24 2015
Записи: 596
Originally Posted By: alexc

Есть самописный кубик с тремя входами
public class AnyClassName : IThreeSourcesHandler, ISecurityInput0, IBooleanInput1, IDoubleInput2, IDoubleReturns, IValuesHandlerWithNumber, IContextUses
Метод Execute:
public double Execute(ISecurity sec, bool condition, double dValue, int bar)

По аналогиии с этим кубиком пытаюсь создать кубик с 5-ю входами.


В какой версии ТСЛаб Вы работаете?
В версии 2.0 можно использовать другой синтаксис описания входных/выходных параметров кубика.

Для начала, достаточно ограничиться интерфейсами IContextUses и IValuesHandlerWithNumber.
А входы и выходы описывать АТРИБУТАМИ класса.

Ваш кубик с 5 входами и 1 выходом можно описать (в версии ТСЛаб 2 по крайней мере) вот так:
Code:
    [InputsCount(5)]
    [Input(0, TemplateTypes.SECURITY)]
    [Input(1, TemplateTypes.BOOL)]
    [Input(2, TemplateTypes.DOUBLE)]
    [Input(3, TemplateTypes.DOUBLE)]
    [Input(4, TemplateTypes.DOUBLE)]
    [OutputType(TemplateTypes.DOUBLE)]
    public class SmileImitation5 : IContextUses, IValuesHandlerWithNumber
_________________________
Скидка на опционной криптобирже Deribit:
https://www.deribit.com/reg-2200.8947?q=home
Да пребудет с вами Вола!

Наверх
#83028 - Mon Mar 19 2018 05:35 PM Re: C#, кубик с 5-ю входами [Re: Option Wizard]
alexc Offline
newbie

Registered: Sun May 05 2013
Записи: 30
Loc: Belarus
Originally Posted By: Option Wizard
Ваш кубик с 5 входами и 1 выходом можно описать (в версии ТСЛаб 2 по крайней мере) вот так:
Code:
    [InputsCount(5)]
    [Input(0, TemplateTypes.SECURITY)]
    [Input(1, TemplateTypes.BOOL)]
    [Input(2, TemplateTypes.DOUBLE)]
    [Input(3, TemplateTypes.DOUBLE)]
    [Input(4, TemplateTypes.DOUBLE)]
    [OutputType(TemplateTypes.DOUBLE)]
    public class SmileImitation5 : IContextUses, IValuesHandlerWithNumber

Да, спасибо, тоже нашел такой пример.

Наверх


Moderator:  ViL, sar