I have got a public property for using as parameter in a strategy, but I want to give it a public access when a bool value returns true. Does ninjatrader 8 allow that. If yes, what will be the syntax please? If not, then any work around?
Announcement
Collapse
Looking for a User App or Add-On built by the NinjaTrader community?
Visit NinjaTrader EcoSystem and our free User App Share!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less
Partner 728x90
Collapse
NinjaTrader
Show parameter in the settings when a bool value is true
Collapse
X
-
Show parameter in the settings when a bool value is true
Hi,
I have got a public property for using as parameter in a strategy, but I want to give it a public access when a bool value returns true. Does ninjatrader 8 allow that. If yes, what will be the syntax please? If not, then any work around?Tags: None
-
Hello asmmbillah,
Thank you for the post.
Yes this is possible, it would require using a type converter. There is a sample of that concept in the following link. Keep in mind that instead of IndicatorBaseConverter you would create a StrategyBaseConverter.
I look forward to being of further assistance.JesseNinjaTrader Customer Service
-
Tried the sample along with the strategy ref from the link, doesn't work. And also where exactly it should be added '[TypeConverter("NinjaTrader.NinjaScript.Strategies. MyCustomConveter")]' ? Because if I add it before the main strategy class, it starts showing various unnecessary properties. Please advise.
Comment
-
Hello asmmbillah,
The code you provided needs to go on the class exactly the same as the indicator sample. The type converters type would need to be changed in the strategy to StrategyBaseConverter. Did you do that?
I look forward to being of further assistance.
JesseNinjaTrader Customer Service
Comment
-
yes I did. see my code below:
[TypeConverter("NinjaTrader.NinjaScript.Strategies. MyCustomConveter")]
public class mainStrategy: Strategy
{
[RefreshProperties(RefreshProperties.All)] // Needed to refresh the property grid when the value changes
[Display(Name = "Toggle show/hide", Order = 1, GroupName = "Additional Parameters")]
public bool ShowHideToggle
{ get; set; }
[NinjaScriptProperty]
[Range(1, int.MaxValue)]
[Display(Name = "MaxDailyStopLoss", Description = "MaxDailyStopLoss", Order = 2, GroupName = "Additional Parameters")]
public int MaxDailyStopLoss
{ get; set; }
}
// below outside the main strategy class
// custom converter class for strategies
public class MyCustomConveter : StrategyBaseConverter
{
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attrs)
{
mainStrategy strategy = component as mainStrategy;
PropertyDescriptorCollection propertyDescriptorCollection = base.GetPropertiesSupported(context)
? base.GetProperties(context, component, attrs) : TypeDescriptor.GetProperties(component, attrs);
if (strategy == null || propertyDescriptorCollection == null)
return propertyDescriptorCollection;
PropertyDescriptor maxDailyStopLoss = propertyDescriptorCollection["MaxDailyStopLoss"];
propertyDescriptorCollection.Remove(maxDailyStopLo ss);
if (strategy.ShowHideToggle)
{
propertyDescriptorCollection.Add(maxDailyStopLoss) ;
}
return propertyDescriptorCollection;
}
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{ return true; }
}
And also it show attached screenshot's unnecessary parameters.Last edited by asmmbillah; 06-10-2021, 01:05 PM.
Comment
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by chbruno, Today, 04:10 PM
|
0 responses
3 views
0 likes
|
Last Post
by chbruno
Today, 04:10 PM
|
||
Started by josh18955, 03-25-2023, 11:16 AM
|
6 responses
436 views
0 likes
|
Last Post
by Delerium
Today, 03:42 PM
|
||
Started by FAQtrader, Today, 03:35 PM
|
0 responses
6 views
0 likes
|
Last Post
by FAQtrader
Today, 03:35 PM
|
||
Started by rocketman7, Today, 09:41 AM
|
5 responses
19 views
0 likes
|
Last Post Today, 03:33 PM | ||
Started by frslvr, 04-11-2024, 07:26 AM
|
9 responses
127 views
1 like
|
Last Post
by caryc123
Today, 03:12 PM
|
Comment