- ago
Reference: https://www.wealth-lab.com/Discussion/NeuroLab-Released-6222

Me:
QUOTE:
First of all – I like the whole idea of NeuroLab. But second, I don’t use NeuroLab.

Here is some ideas on NeuroLab, so it could be more useful and powerful, at least for me). Your feedback much appreciated.

How I do it. I do not vectorize everything explicitly when making my strategies, I use iteration as well as timeseries. But I have built-in serialization logic (in my wrapping library). I use it mainly when developing and evaluating a strategy. So even if my condition looks like: if falling peaks e.g. – it will be vectorize (TimeSeries as a result). So my strategy produces timeseries. I didn’t interact much with NeuroLab, but I think it deals with Indicators only? So what I need first is to be able to use TimeSeries… withing the strategy maybe (somehow). What is the difference – the efforts needed to create one. Indicator is something you have to create with a special class and it takes much efforts, TimeSeries is something you can create easily.

And the second thing I need is… boosting algorithm in-place. Don’t get me wrong, neural networks are great, at least at classifying cats and dogs and self-driving cars and stuff like that. But when dealing with table data all you need is boosting – XGBoost, CatBoost etc, nothing is more powerful yet simple when dealing with table data than boosting.

What I do now (moving this way) – I encode those TimeSeries in trades (using Tag). Then I use Positions and get feature out of tags, then I use boosting in my Python script. And the main problem in all this is… trading… I can evaluate a strategy using this, but I will have many problems when trying to trade using this – technical problems because I’ll need to add a new ML “layer” above WL7 signals. And when thinking about those technical difficulties I thought that improving the NeuroLab would be a good decision. So please tell me what you think of it).

I hope I was convincing enough to explain why using Timeseries is not the same as using Indicators and using boosting is not the same as using NN (although this one is minor).


Glitch:
QUOTE:
The earlier NeuroLab for WL6 did let you use TimeSeries, because you had to write a special script. The trade off is that it made it much more difficult for beginners.

I want to extend NL eventually to allow different kind of input blocks. Right now there is just one kind, Indicators. We can introduce a scripting Input Block, one for the new PriceGrid concept, and maybe even things like Point & Figure.
5
1,209
Solved
14 Replies

Reply

Bookmark

Sort
- ago
#1
I found the same limitation and started reading the old Fidelity documentation.
I built custom Time Series indicators, but there is no way to select them as sources.

I have a Masters Degree candidate working on AI/ML for stock trading and was hoping to use Neuro Lab.
0
Cone8
 ( 28.25% )
- ago
#2
Re: custom Time Series indicators
It may be a little inconvenient, but if you use them frequently, you can create Custom Indicators for those TimeSeries instead.

To do that, run WealthLab in Admin mode and click the New Indicator button under Indicators. See F1 > Indicators > Custom Indicators
0
Glitch8
 ( 12.08% )
- ago
#3
Or, create a custom Indicator Library DLL that contains all your indicators. If you need help with this you can leverage our Concierge service too.
0
Glitch8
 ( 12.08% )
- ago
#4
The way to here is to create a custom indicator for your TimeSeries, it can then be used in NeuroLab. Declining this one.
0
Best Answer
- ago
#5
But how I create/populate Customer Indicator to feed Neural Network with Fundamental time series ?

Error: Fundamental is a namespace but is used like a type
CODE:
public override void Populate() {          BarHistory source = Parameters[0].AsBarHistory;          IndicatorBase indE = new Fundamental(source,"Earnings",true); DateTimes = source.Close.DateTimes;          //modify the code below to implement your own indicator calculation for (int n = 0; n < source.Close.Count; n++)          { Values[n] = source.Close[n] / indE[n];          } } //generate parameters protected override void GenerateParameters() {          AddParameter("Source", ParameterType.BarHistory, null);       }
0
- ago
#6
Try this:
CODE:
//IndicatorBase indE = new Fundamental(source,"Earnings",true); IndicatorBase indE = new WealthLab.Indicators.Fundamental(source,"Earnings",true);
0
- ago
#7
Your suggestion worked.

But why similarly implementing Shiller PE in Customer Indicator failed, returning NaN ?
IndicatorBase indPE = new WealthLab.DataExtensions.QuandlIndicator(source,"MULTPL","SHILLER_PE_RATIO_MONTH"); //Shiller PE
0
Glitch8
 ( 12.08% )
- ago
#8
You can just drop the Fundamental and Quandl indicators directly into NeuroLab. Although I did dicsover that NL is throwing an exception if an invalid Fundamental item is selected, and there's no fundamental data returned. I fixed that and will release a NeuroLab build tomorrow so check back then to update NeuroLab and give it a try.

Before trying to drop into NL, first drop the indicators onto a chart to make sure you're getting data for the settings you use.

0
- ago
#9
But still why implementing Shiller PE in Customer Indicator failed, returning NaN ?
Is there a bug to look at ?
0
Glitch8
 ( 12.08% )
- ago
#10
I don’t know, what happens when you drag the indicator onto the chart? It could be the parameters you used are not correct.
0
- ago
#11
Drug and drop Shiller PE indicator (parameters like in code below) properly work.

However, Problem is to implement Shiller PE in Customer Indicator (parameters like in code below) where it fails, returning NaN ?


CODE:
IndicatorBase indPE = new WealthLab.DataExtensions.QuandlIndicator(source,"MULTPL","SHILLER_PE_RATIO_MONTH"); //Shiller PE


Please help - looks like a bug.

Here is
CODE:
public override void Populate()       {          BarHistory source = Parameters[0].AsBarHistory;          DateTimes = source.Close.DateTimes;                    //modify the code below to implement your own indicator calculation          IndicatorBase indPE;= new WealthLab.DataExtensions.QuandlIndicator(source,"MULTPL","SHILLER_PE_RATIO_MONTH"); //Shiller PE                for (int n = 0; n < source.Close.Count; n++)          {                Values[n] = indPE[n];          }       }
0
Glitch8
 ( 12.08% )
- ago
#12
But you don't need to implement it in a custom indicator. For sure, I'll check why it's not working, but you can drop the Quandl indicator DIRECTLY into NeuroLab.
0
Glitch8
 ( 12.08% )
- ago
#13
Yes, it was a bug.

In your code.

You had
CODE:
;=
when you should have had just
CODE:
=


Here's the corrected method:

CODE:
//populate public override void Populate() {          BarHistory source = Parameters[0].AsBarHistory; DateTimes = source.Close.DateTimes;          //modify the code below to implement your own indicator calculation              IndicatorBase indPE = new WealthLab.DataExtensions.QuandlIndicator(source,"MULTPL","SHILLER_PE_RATIO_MONTH"); //Shiller PE for (int n = 0; n < source.Close.Count; n++)          { Values[n] = source.Close[n];             Values[n] = indPE[n];          } }
0
- ago
#14
Actually having ;= was a copy and paste typo, but not in the code, rather in the post itself.

However it seems the issue of getting NaN was solved when I downloaded the latest Wealthlab build.
Thank you.
0

Reply

Bookmark

Sort