public Donchian_Channel(SlotTypes slotType)
{
// General properties
IndicatorName = "Donchian Channel";
PossibleSlots = SlotTypes.Open | SlotTypes.OpenFilter | SlotTypes.Close | SlotTypes.CloseFilter;
// Setting up the indicator parameters
IndParam = new IndicatorParam();
IndParam.IndicatorName = IndicatorName;
IndParam.SlotType = slotType;
// The ComboBox parameters
IndParam.ListParam[0].Caption = "Logic";
if (slotType == SlotTypes.Open)
IndParam.ListParam[0].ItemList = new string[]
{
"Enter long at the Upper Band",
"Enter long at the Lower Band"
};
else if (slotType == SlotTypes.OpenFilter)
IndParam.ListParam[0].ItemList = new string[]
{
"The bar opens below the Upper Band",
"The bar opens above the Upper Band",
"The bar opens below the Lower Band",
"The bar opens above the Lower Band",
"The position opens below the Upper Band",
"The position opens above the Upper Band",
"The position opens below the Lower Band",
"The position opens above the Lower Band",
"The bar opens below the Upper Band after opening above it",
"The bar opens above the Upper Band after opening below it",
"The bar opens below the Lower Band after opening above it",
"The bar opens above the Lower Band after opening below it",
};
else if (slotType == SlotTypes.Close)
IndParam.ListParam[0].ItemList = new string[]
{
"Exit long at the Upper Band",
"Exit long at the Lower Band"
};
else if (slotType == SlotTypes.CloseFilter)
IndParam.ListParam[0].ItemList = new string[]
{
"The bar closes below the Upper Band",
"The bar closes above the Upper Band",
"The bar closes below the Lower Band",
"The bar closes above the Lower Band"
};
else
IndParam.ListParam[0].ItemList = new string[]
{
"Not Defined"
};
IndParam.ListParam[0].Index = 0;
IndParam.ListParam[0].Text = IndParam.ListParam[0].ItemList[IndParam.ListParam[0].Index];
IndParam.ListParam[0].Enabled = true;
IndParam.ListParam[0].ToolTip = "Logic of application of the Donchian Channel.";
IndParam.ListParam[1].Caption = "Base price";
IndParam.ListParam[1].ItemList = new string[] { "High & Low" };
IndParam.ListParam[1].Index = 0;
IndParam.ListParam[1].Text = IndParam.ListParam[1].ItemList[IndParam.ListParam[1].Index];
IndParam.ListParam[1].Enabled = true;
// The NumericUpDown parameters
IndParam.NumParam[0].Caption = "Period";
IndParam.NumParam[0].Value = 10;
IndParam.NumParam[0].Min = 1;
IndParam.NumParam[0].Max = 200;
IndParam.NumParam[0].Enabled = true;
IndParam.NumParam[0].ToolTip = "The width of the range we are looking for an extreme in.";
IndParam.NumParam[1].Caption = "Shift";
IndParam.NumParam[1].Value = 0;
IndParam.NumParam[1].Min = 0;
IndParam.NumParam[1].Max = 200;
IndParam.NumParam[1].Enabled = true;
IndParam.NumParam[1].ToolTip = "The number of bars to shift with.";
// The CheckBox parameters
IndParam.CheckParam[0].Caption = "Use previous bar value";
IndParam.CheckParam[0].Checked = PrepareUsePrevBarValueCheckBox(slotType);
IndParam.CheckParam[0].Enabled = true;
IndParam.CheckParam[0].ToolTip = "Use the indicator value from the previous bar.";
return;
}