usingcAlgo.API;namespacecAlgo{// This sample indicator shows how to define different types of parameters for your indicators[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassParameterAttributreSample:Indicator{[Parameter("First Parameter Name", DefaultValue = 0.0, MinValue = 0, MaxValue = 10, Step = 1, Group = "Numeric Group")]publicdoubleFirstNumericParameter{get;set;}[Parameter("Second Parameter Name", DefaultValue = 0.0, MinValue = 0, MaxValue = 100, Step = 1, Group = "Numeric Group")]publicintSecondNumericParameter{get;set;}[Parameter("First Parameter Name", DefaultValue = "Default value", Group = "String Group")]publicstringFirstStringParameter{get;set;}[Parameter("Second Parameter Name", DefaultValue = "Default value", Group = "String Group")]publicstringSecondStringParameter{get;set;}[Parameter("First Parameter Name", DefaultValue = TradeType.Buy, Group = "Enum Group")]publicTradeTypeFirstEnumParameter{get;set;}[Parameter("Second Parameter Name", DefaultValue = TradeType.Sell, Group = "Enum Group")]publicTradeTypeSecondEnumParameter{get;set;}protectedoverridevoidInitialize(){Print($"FirstNumericParameter: {FirstNumericParameter}");Print($"SecondNumericParameter: {SecondNumericParameter}");Print($"FirstStringParameter: {FirstStringParameter}");Print($"SecondStringParameter: {SecondStringParameter}");Print($"FirstEnumParameter: {FirstEnumParameter}");Print($"SecondEnumParameter: {SecondEnumParameter}");}publicoverridevoidCalculate(intindex){}}}
1 2 3 4 5 6 7 8 9101112
importclrclr.AddReference("cAlgo.API")fromcAlgo.APIimport*# Parameters are defined in C# file of indicatorclassTest():definitialize(self):print(f"FirstNumericParameter: {api.FirstNumericParameter}")print(f"SecondNumericParameter: {api.SecondNumericParameter}")print(f"FirstStringParameter: {api.FirstStringParameter}")print(f"SecondStringParameter: {api.SecondStringParameter}")print(f"FirstEnumParameter: {api.FirstEnumParameter}")print(f"SecondEnumParameter: {api.SecondEnumParameter}")
Properties
Name
Summary
The input parameter name.
Signature
1
publicstringName{get;}
Return Value
string
Examples
12345
//...//The input parameter name is MaPeriod[Parameter("MaPeriod")]publicintPeriod{get;set;}//...
DefaultValue
Summary
Gets or sets the default value of this Parameter property.
Signature
1
publicobjectDefaultValue{get;set;}
Return Value
object
Examples
12345
//...//The value for Periods is fourteen[Parameter(DefaultValue = 14)]publicintPeriods{get;set;}//...
MinValue
Summary
Gets or sets the minimum value of this Parameter property. It is used for validating user input.
Signature
1
publicobjectMinValue{get;set;}
Return Value
object
Examples
12345
//...//The minimum value the user can set Periods is five.[Parameter(DefaultValue = 14, MinValue = 5)]publicintPeriods{get;set;}//...
MaxValue
Summary
Gets or sets the maximum value of this Parameter property. It is used for validating user input.
Signature
1
publicobjectMaxValue{get;set;}
Return Value
object
Examples
12345
//...//The maximum value the user can set Periods is twenty[Parameter(DefaultValue = 14, MaxValue = 20)]publicintPeriods{get;set;}//...
Step
Summary
Gets or sets the step of this Parameter. Step is used in NumericUpDown controls in parameter editors.
Signature
1
publicdoubleStep{get;set;}
Return Value
double
Group
Summary
Groups parameters in UI.
Signature
1
publicstringGroup{get;set;}
Return Value
string
IsValueVisibleInTitle
Summary
Gets or sets whether parameter value should be visible or not in instance title (default: true).
Signature
1
publicboolIsValueVisibleInTitle{get;set;}
Return Value
bool
Description
Summary
Gets or sets description for input parameter that will be shown in UI.