In one of my custom C# adapters, I have a configuration parameter added like below
In a method called "CreateParameters" of the same object, I am calling Parameters.Clone(). I am getting an exception on this "Clone" method call. Below are the exception details
Call Stack
If I comment out the enum-based parameter, the exception doesn't occur.
CODE:
// Add other string and int parameters ... // Add enum parameter Parameters.Add(new Parameter("TOTP Hash Mode", typeof(TotpHashMode)) { Hint = "Hash mode for your TOTP key. Default is SHA1. Check <a href="https://smartapi.angelbroking.com/enable-totp" target="_blank">https://smartapi.angelbroking.com/enable-totp</a> to get the TOTP key" }); // Add other string and int parameters ...
In a method called "CreateParameters" of the same object, I am calling Parameters.Clone(). I am getting an exception on this "Clone" method call. Below are the exception details
Call Stack
CODE:
Unable to cast object of type 'System.Boolean' to type 'System.Int32'. at WealthLab.Core.Parameter.get_AsInt() at WealthLab.Core.Parameter.Persist(Tokenizer tok) at WealthLab.Core.ParameterList.Persist() at WealthLab.Core.ParameterList.Clone() at CW.WealthLab.WLConfigurationStore.CreateParameters() at CW.WealthLab.HistoricDataProvider.GenerateParameters()
If I comment out the enum-based parameter, the exception doesn't occur.
Rename
Screenshot of the parameter just after adding it to the Parameters collection
You haven't provided enough code to diagnose. Can you try to replicate the issue in a Strategy Initialize method? I have no trouble cloning a Parameter based on an enum:
CODE:
//create indicators and other objects here, this is executed prior to the main trading loop public override void Initialize(BarHistory bars) { Parameter p = new Parameter("Test", typeof(ParameterType)); p = p.Clone(); WriteToDebugLog(p.Type.ToString()); }
The issue was due to bad logic (I was creating duplicate parameter objects). Clone is working fine.
Thanks!
Thanks!
Your Response
Post
Edit Post
Login is required