Author Topic: Help with BCFL custom Scans & Coding  (Read 1995 times)

0 Members and 1 Guest are viewing this topic.

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #60 on: 18/06/2019, 01:59:21 PM »
Is it possible to apply an output with: line, or histogram, or colour to an output entity?

Not 100% sure what you are looking for with the histogram, but colour is a per system component or per formula setting.

There are otherwise 2 ways to produce a line:
  • Produce an output a variable at a certain threshold ie.
    line := 5;
    line;
  • Once the formula is on a chart (goes for any indicator really), right click on it -> modify. Then click the '+' icon in the top right and you can set a limit line to be at a given value in a preferred colour.

Hi Campbell, when you get some spares, could you give an idea if adding the MACD histogram to the ATR-TS input would be possible. As there is no BCFL ATR-TS code to review for DATA ARRAY syntax.

I'm thinking instead of routing the MACD histogram through the RSI for an indexed oscillator, it might be better to go directly onto price chart as an atr-ts type oscillator. The ATR-TS would signal when the MACD histogram long turns down from rising and visa-versa, or same done with the main macd line if the histogram was too sensitive, although the long 120, 260, 90 histogram should be ok.

I'm aware you don't like inputs, so can the first two lines be restructured to take the macd histogram (MACDH1) as the data source?

{MACDH1}
MACDH1:= fmlvar("MACD1", "MACDH1");

{ATR-TS}
atrper:=Input("ATR period :",1,100,14);
atrfact:=Input("ATR multiplication :",1,10,4.5);
loss:=atrfact*ATR(atrper);
ATR_TS_L :=
If(C>PREV AND Ref(C,-1)>PREV,
Max(PREV,C-loss),
If(C<PREV AND Ref(C,-1)<PREV,
Min(PREV,C+loss),
If(C>PREV,C-loss,C+loss)));
ATR_TS_L;

Or in fact the ATR-TS you posted earlier:

{ Trailing_Stop SIMPLE SMOOTHING }
ATR_smoother := MOV(ATR(1), 14, S);
up_atrfact:= 3;
dn_atrfact := 3;
up_loss:=up_atrfact*ATR_smoother;
dn_loss:=dn_atrfact*ATR_smoother;
trail:=
If(L>PREV AND Ref(L,-1)>PREV,
Max(PREV,L-dn_loss),
If(L<PREV AND Ref(L,-1)<PREV,
Min(PREV,L+up_loss),
If(L>PREV,L-dn_loss,L+up_loss)));
trail;

The ATR calculation part of the trailing stop are these lines:

ATR_smoother := MOV(ATR(1), 14, S);
up_atrfact:= 3;
dn_atrfact := 3;
up_loss:=up_atrfact*ATR_smoother;
dn_loss:=dn_atrfact*ATR_smoother;

It depends how you want the MACD to be integrated. The up_loss and dn_loss are the variables used in the final calculation of where the trailing stop line should sit. It is multiplying the smoothed ATR by the desired factor. 

You could use the MACD instead of the ATR_Smoother in the up_loss and dn_loss lines if you wanted to replace the ATR.

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #61 on: 23/06/2019, 01:26:03 PM »
Hi Campbell,
The ATR-TS of the MACD histogram didn't work, it did produce an indicator but wasn't usable.
At this point I might move onto other indicator sets and just use the three MACD's and the RSI of the three histograms as a visual system, until the BC RSI gets an upgrade. I have this working in Trading View anyway with enough triggers to fill the screen and keep me busy.

What I have found mucking around with introduced indicators is a very solid setup that could potentially overtake my interest in the MACD as the primary indicator, especially the Histogram as this was always my indicator of interest for catching the tops and bottoms in trend; the new indicator set being two ATR trailing stops one set long and one set short and combined with a public domain (PD-SIROC) indicator for trading within the ATR-TS / MACD defined trend, of which I can setup in BCFL to give triggers and scans for.

I have found after four and a half months of using both SPA 3 systems in the test portfolios is that the Investor portfolio has substantially out performed the Trader one, in fact the Trader portfolio at this stage is a basket case, probably due to leaving trending stock to early on 21:8 Siroc cycles and then being directed to new trades that might go up briefly or might not then requiring draw downs into capital, of which there has been a few.

The two ATR-TS combination do an excellent job at defining clearly trend start points and end points, where the objective trading strategy could be to allocate capital for an initial entry via Trade Master portfolio manager and pyramid and lighten 50% additional $ trades off the PD-SIROC cycles triggers as this is what the Siroc excels at, and there will be the SPA3 Trader signals to follow as a back up; volatility stop exits etc. (I find the 13:5 better for the above purpose). This approach might get the trader portfolio to be more of a medium to longer term trend system, and will be combined with the RSC Index indicator, and Money Flow indicator.

What ever system I create to adopt will need to work with Trade Master, so the additional 50% $ Pyramid and Lighten phases get reported correctly. The stop loss final exit taken for the initial capital amount if not already lightened out of when the short ATR-TS indicates resistance, and when the long term ATR-TS triggers and MACD clearly loses momentum identifying end of primary trend conditions.

The objective strategy is to not completely exit the longer 'in the zone' trending stocks but allow the trade to run and utilise the trend to trade additional 50% dollar amounts if the stock displays in trend volatility enough for cycle trading off the PD-SIROC.


Problems with BCFL introduced indicators;
There are chart crashes when overlaying the SIROC signals for Main crossing Signal line, which I suspect are completely crashing BC, or are produce empty charts since introducing them.

Although not directly related to the above chart crashes you mentioned earlier about the code Inputs, so I would like to swap out the input lines with non inputs; with the following code is this possible to do as this is the preferred ATR-TS? (14, 4.5 being the inputs).

atrper:=Input("ATR period :",1,100,14);
atrfact:=Input("ATR multiplication :",1,10,4.5);
loss:=atrfact*ATR(atrper);
ATRTS_L :=
If(C>PREV AND Ref(C,-1)>PREV,
Max(PREV,C-loss),
If(C<PREV AND Ref(C,-1)<PREV,
Min(PREV,C+loss),
If(C>PREV,C-loss,C+loss)));
ATRTS_L;

I did try to do this myself but just messed the code up!
Thanks.

[EDIT]
In fact the crashes were related to the ATRTS chart signal alert symbol where I renamed the code output but didn't rename the fmlvar reference. Could there be some kind of error warning about this?
Also maybe a script list page that lists all the BCFL indicators, highlights and ribbons to be able to identify and remove non working BCFL coded entries?
Just a thought, would help error trouble shooting.
« Last Edit: 25/06/2019, 11:31:34 AM by JohnR »

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #62 on: 25/06/2019, 05:36:22 PM »
John,

Right now the public portfolio SPA3 Trader portfolios are sky rocketing for the ASX and USA. It comes with the territory of investment systems that the edge needs time to play out with mechanical ruleset, as each day is a new starting point for the portfolio with different entry oppertunities. There has also been a couple of sectors in the market that have done extremely well, which would be a boost to any portfolio that exposed themselves to those areas. This was covered by Gary in the most recent eUGM.

SPA TradeMaster can have trades inputted in to it manually out of system, so recording your transactions should not be a problem.

I am very glad you have the criteria almost down pat, given some work on our side as well.

To hard code the values it is quite simple, replace the input() function with the desired value:

atrper:=14;
atrfact:=4.5;
loss:=atrfact*ATR(atrper);
ATRTS_L :=
If(C>PREV AND Ref(C,-1)>PREV,
Max(PREV,C-loss),
If(C<PREV AND Ref(C,-1)<PREV,
Min(PREV,C+loss),
If(C>PREV,C-loss,C+loss)));
ATRTS_L;

As for the error - I will have a play around and raise it as a bug. From the sounds of it you had a working FMLVAR reference, but the variable name being referenced was changed, which caused the FMLVAR to break as it was already a successfully saved formula?

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #63 on: 26/06/2019, 01:58:39 PM »
Yes pat yourself on the head for the help Thanks!
Almost done with additional systems although not implemented in the way I originally planned, it will suffice for now. I wanted to get this done before the end of the FY as I want to start real money trading in July. The last 4.5 months ? (feels longer) has brought me up to speed with BCFL code structure for assembling formulas for indicators, scanning and chart overlays for alert signals etc. I could offer quite a few suggestions there for additional bells and whistles if you are stuck for imagination on improvements.

Re the "var" reference in formulas:
And yes that's right; if the formula output is variable is renamed no error is detected be the system (although not fully tested), but if the Title of the formula (fml) is renamed the system throws an error indicating the title change name is not present (in scans).

So if the chart is set up using a fmlvar with chart signals etc. and the referenced fmlvar ("1", "2"); output '2' name is changed the charts does terrible things and even crashes the program, and you have to guess what and where the change "var" was made. This is especially tricky as you may be working in another function key saved chart setup at the time, the changed 'var' comes back to back to bite you when you load the another chart setup, basically there is no error checking by the system to indicate what or where has gone wrong. This has happened more than once, I remember sending a crash report through to help desk there recently, I suspect this was the problem.

Gets even more tricky when you have 3 fmlvar's referenced in 5 or 6 different formulas as you lose track of where you have put the "fmlvar".

I think a formula style sheet could help, listing the loaded formulas in a chart and their status? similar to an AutoCad List pop up box that gives a text list readout of every entity in a loaded component assemble object, that you are trouble shooting.
Not sure how this could be applied to BCFL though or if this be the most efficient way of dealing with it.
Leave it with you, if you need more details let me know.

BTW is it faster for the BCFL system to load fmlvar's over having the referenced subject indicator code within the formula?
I ask because I've noticed since using the fmlvar's and or the new (3x) ATR-TS and (2x) SIROC's I have introduced a considerable slow down in loading charts, and when scanning, using the BCFL formulas, so it could be attributed to either using 'fmlvar's or the introduced indicators, or Input code in these indicators.

Thanks.
« Last Edit: 26/06/2019, 05:34:47 PM by JohnR »

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #64 on: 27/06/2019, 01:12:20 PM »
John,

From an execution point of view - the more data that has to be sifted through, the more time it will take to process. It may be worth condenscing formulas once everything is said and done on the build side of things.

Naming conventions and stability in leaving what is there would definitely help on the FMLVAR side of things, but I understand edits happen as you tinker away and this is a possibility. I keep a look out for it as I am looking in to your crashing.

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #65 on: 02/07/2019, 12:34:43 PM »
Quote
condenscing formulas
Might have to be more specific re the condensing the formula for system speed with the reference indicator being in the formula or referenced via fmlvar syntax.

Sorry should have mentioned; the ATR-TS SuperTrend indicator, seems to be mostly the cause of the slow downs in scanning and chart loadings, maybe there is a more efficient way to code this one?

{ ---- ATR-TS SUPERTREND ---- }
atrper:= 14;
atrfact:= 9.5;
loss:=atrfact*ATR(atrper);
ATRTS_SUPT :=
If(C>PREV AND Ref(C,-1)>PREV,
Max(PREV,C-loss),
If(C<PREV AND Ref(C,-1)<PREV,
Min(PREV,C+loss),
If(C>PREV,C-loss,C+loss)));
ATRTS_SUPT;
« Last Edit: 02/07/2019, 02:34:23 PM by JohnR »

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #66 on: 02/07/2019, 12:51:57 PM »
Re scanning to an event that occurred 34 days ago;
I'm looking at doing a scan for a pd-siroc turning up trigger that occurres within the last 34 days of an atr-ts crossing specifically.
I tried this; QF1 := CROSS(ATRTS_L, ATRTS_SUPT, -34);  but BCFL won't accept.

Full code here:
{ ---- ATR-TS ---- }
ATRTS_L := fmlvar("ATR-TS_LONG", "ATRTS_L");
ATRTS_S := fmlvar("ATR-TS_SHORT", "ATRTS_S");
ATRTS_SUPT := FMLVAR("ATR-TS_SUPERTREND", "ATRTS_SUPT");
{ ---- RSC INDEX MA X ---- }
RSC_MOV1 := FMLVAR("RSC INDEX","MOV1");
RSC_MOV3_SIG := FMLVAR("RSC INDEX","MOV3");
{ ---- SIROCS ----}
SIROC_MS := fmlvar("SIROC1_D SHORT", "SIROCM1");
ATRTS_SUPT := FMLVAR("ATR-TS_SUPERTREND", "ATRTS_SUPT");
{==================================}

TRIG_SIROC_SUP := SIROC_MS > REF(SIROC_MS, -1) and REF(SIROC_MS,-1) < REF(SIROC_MS,-2);
QF1 := CROSS(ATRTS_L, ATRTS_SUPT, -34);
QF2 := CLOSE > 0.05;
QF3 := RSC_MOV1 > RSC_MOV3_SIG;

SCAN_TRIG := TRIG_SIROC_SUP AND QF1 AND QF2 AND QF3;
SCAN_TRIG;


Thanks in advance :)
« Last Edit: 02/07/2019, 01:15:18 PM by JohnR »

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #67 on: 03/07/2019, 04:13:42 PM »
Quote
condenscing formulas
Might have to be more specific re the condensing the formula for system speed with the reference indicator being in the formula or referenced via fmlvar syntax.

Sorry should have mentioned; the ATR-TS SuperTrend indicator, seems to be mostly the cause of the slow downs in scanning and chart loadings, maybe there is a more efficient way to code this one?

{ ---- ATR-TS SUPERTREND ---- }
atrper:= 14;
atrfact:= 9.5;
loss:=atrfact*ATR(atrper);
ATRTS_SUPT :=
If(C>PREV AND Ref(C,-1)>PREV,
Max(PREV,C-loss),
If(C<PREV AND Ref(C,-1)<PREV,
Min(PREV,C+loss),
If(C>PREV,C-loss,C+loss)));
ATRTS_SUPT;

No way ot make it more efficient unfortunately that will make any substantial difference, as it uses the self reference of the PREV statement. There seems to be a compounding from having a look myself in to what you have been doing. The more that is being computed, the longer it will take to collect that data and plot all the points. You can see this if you reduce the amount of data being loaded to a single formula ATR-TS on the chart or change the period from all data to 5 years and then try to move to the same chart in a watch list.

The previous suggestion was about making the formulas one long script, as I have seen evidence that can work in the past for speed, but maintainability of the scripts definitely becomes questionable and is not something I recommend usually.

Re scanning to an event that occurred 34 days ago;
I'm looking at doing a scan for a pd-siroc turning up trigger that occurres within the last 34 days of an atr-ts crossing specifically.
I tried this; QF1 := CROSS(ATRTS_L, ATRTS_SUPT, -34);  but BCFL won't accept.

Full code here:
{ ---- ATR-TS ---- }
ATRTS_L := fmlvar("ATR-TS_LONG", "ATRTS_L");
ATRTS_S := fmlvar("ATR-TS_SHORT", "ATRTS_S");
ATRTS_SUPT := FMLVAR("ATR-TS_SUPERTREND", "ATRTS_SUPT");
{ ---- RSC INDEX MA X ---- }
RSC_MOV1 := FMLVAR("RSC INDEX","MOV1");
RSC_MOV3_SIG := FMLVAR("RSC INDEX","MOV3");
{ ---- SIROCS ----}
SIROC_MS := fmlvar("SIROC1_D SHORT", "SIROCM1");
ATRTS_SUPT := FMLVAR("ATR-TS_SUPERTREND", "ATRTS_SUPT");
{==================================}

TRIG_SIROC_SUP := SIROC_MS > REF(SIROC_MS, -1) and REF(SIROC_MS,-1) < REF(SIROC_MS,-2);
QF1 := CROSS(ATRTS_L, ATRTS_SUPT, -34);
QF2 := CLOSE > 0.05;
QF3 := RSC_MOV1 > RSC_MOV3_SIG;

SCAN_TRIG := TRIG_SIROC_SUP AND QF1 AND QF2 AND QF3;
SCAN_TRIG;


Thanks in advance :)

CROSS only accepts 2 arguments - CROSS(what I want to see cross over something else, the something else)

As I think you are looking within 34 days, BARSSINCE(Cross(ATRTS_L, ATRTS_SUPT) < 34 may be the statement you are looking for. As we utalise a vector / data array based language, this will not return something if it never actually happened to start counting from.

BARSSINCE() is literally counting the number of bars since an event occured. It cannot give a number if it never happened. IsDefined() is a function that checks to see if a statement is giving back a number or not.

So from that knowledge, you can do something like this in the situation:

Test := IF(ISDEFINED(BARSSINCE(Cross(ATRTS_L, ATRTS_SUPT)), BARSSINCE(Cross(ATRTS_L, ATRTS_SUPT) < 34, 0);

The variable Test will give back 1 for Yes, it happened in the last 34 days, or 0 for no it did not.

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #68 on: 06/07/2019, 07:54:59 PM »
Thanks for coding that up, it could be the trick.

BCFL won't save with -> Missing bracket ')'
I've been over it a number of times adding brackets here and there to close the argument but BCFL resists my efforts and finally returns:
-> BARSSINCE function has invalid number of arguments.

When you have a spare 5 could you take another look please.

Cheers.

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #69 on: 09/07/2019, 02:31:58 PM »
Hi John,

My apologies! There were a couple missing.

Test := IF(ISDEFINED( BARSSINCE( Cross(ATRTS_L, ATRTS_SUPT) ) ), BARSSINCE(Cross(ATRTS_L, ATRTS_SUPT) < 34, 0 ));

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #70 on: 11/07/2019, 04:09:16 PM »
This must be especially tricky for BCFL as the compiler returned this:

QF1 := IF(ISDEFINED( BARSSINCE( Cross(ATRTS_L, ATRTS_SUPT) ) ), BARSSINCE(Cross(ATRTS_L, ATRTS_SUPT) < 34, 0 ));

-> BARSSINCE function has invalid number of arguments

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #71 on: 12/07/2019, 09:38:32 AM »
Correct amount of brackets but my placement of 1 was wrong side of the 0 to complete the IF. Sorry about the delay.

QF1 := IF( ISDEFINED( BARSSINCE( Cross(ATRTS_L, ATRTS_SUPT))), BARSSINCE( Cross(ATRTS_L, ATRTS_SUPT) < 34), 0);

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #72 on: 13/07/2019, 10:53:01 AM »
Thanks, quite happy to wait as this line of code would have taken me several years, like the proverbial hundred monkeys on keyboards, to work out myself! it's quite a valuable string that I will refer to a fair bit.
BTW  what does the zero do at the end there? or does this explain that: "The variable Test will give back 1 for Yes, it happened in the last 34 days, or 0 for no it did not"

To test the code (below) is working I set up two scans for 1971 FPO stocks;
When I run  the IsDefined code with the moving average crossing signal, with scan Settings Period set to 1 by default; BCFL doesn't get past Initialise.
Same when run the above IsDefined code with scan Settings Period 34.

When I run the crossing code alone (green text within parenthesis) and scan Period set to 34 days; I get 204 hits from 1971 (FPO), hopefully meaning there were 204 crossings of the MA signal line in last 34 days, some being duplicate stocks.

I assume this is the best way to test the IsDefined code is working, and both scans should return the same number of crossings?

Have run a few different scans and none produced any hits, so I assume the IsDefined code either isn't working or isn't deployed within the scan correctly.

MAM1 := fmlvar("MA 60:90", "MAM1");
MAS1 := fmlvar("MA 60:90", "MAS1");

{MA1_CROSS := cross(MAM1, MAS1);}
MA1_CROSS := IF( ISDEFINED( BARSSINCE( Cross(MAM1, MAS1))), BARSSINCE( Cross(MAM1, MAS1) < 34), 0);
{TRIG_SUP := SIROC_SM > REF(SIROC_SM, -1) and REF(SIROC_SM,-1) < REF(SIROC_SM,-2);}

SCAN_TRIG := MA1_CROSS;
SCAN_TRIG;


So next up is to include the IsDefined code as a qualifier to find the (open source) Siroc indicator turning up within the 34 day period after the Moving Average main crosses the signal line, with Scan Settings Period set to 1:

MAM1 := fmlvar("MA 60:90", "MAM1");
MAS1 := fmlvar("MA 60:90", "MAS1");

SIROC_SM := fmlvar("SIROC1_D SHORT", "SIROCM1");
SIROC_SS := fmlvar("SIROC1_D SHORT", "SIROCS1");

QF1 := IF( ISDEFINED( BARSSINCE( Cross(MAM1, MAS1))), BARSSINCE( Cross(MAM1, MAS1) < 34), 0);

TRIG_SUP := SIROC_SM > REF(SIROC_SM, -1) and REF(SIROC_SM,-1) < REF(SIROC_SM,-2);

SCAN := TRIG_SUP  and QF1;
SCAN;

After initialisation the scan gets to 3 of 1971 1AG: Altera Limited; and freezes there for some reason.
So conclude the IsDefined code is problematic, unless deployed incorrectly.
« Last Edit: 13/07/2019, 07:59:57 PM by JohnR »

Offline Campbell Sinclair

  • Support & Administration
  • Administrator
  • *****
  • Posts: 202
Re: Help with BCFL custom Scans & Coding
« Reply #73 on: 15/07/2019, 04:45:11 PM »
Thanks, quite happy to wait as this line of code would have taken me several years, like the proverbial hundred monkeys on keyboards, to work out myself! it's quite a valuable string that I will refer to a fair bit.
BTW  what does the zero do at the end there? or does this explain that: "The variable Test will give back 1 for Yes, it happened in the last 34 days, or 0 for no it did not"

Correct. It is all part of the IF statement: IF(This happens to be true, do this, else do this). The 0 is the "else do this part".

To test the code (below) is working I set up two scans for 1971 FPO stocks;
When I run  the IsDefined code with the moving average crossing signal, with scan Settings Period set to 1 by default; BCFL doesn't get past Initialise.
Same when run the above IsDefined code with scan Settings Period 34.

When I run the crossing code alone (green text within parenthesis) and scan Period set to 34 days; I get 204 hits from 1971 (FPO), hopefully meaning there were 204 crossings of the MA signal line in last 34 days, some being duplicate stocks.

I assume this is the best way to test the IsDefined code is working, and both scans should return the same number of crossings?

Have run a few different scans and none produced any hits, so I assume the IsDefined code either isn't working or isn't deployed within the scan correctly.

You are halfway there with the comparison.

You are correct that 204 hits with MA1_CROSS means 204 crosses occured. What the IF statement is doing is asking how many days since the cross occured.

So to test IsDefined itself, you have to see what ISDEFINED( BARSSINCE( Cross(MAM1, MAS1) ) is doing. That is the pivot of the IF statements decision making, which Cross is a part of.

If you can pass through the code for MAM1 and MAS1 I will be able to take a further look at what is causing the freeze in the scan.

Offline JohnR

  • Jr. Member
  • **
  • Posts: 45
Re: Help with BCFL custom Scans & Coding
« Reply #74 on: 16/07/2019, 11:36:39 AM »
Moving Average code :
{---- My Moving Average of MACD1 ---- }
MAM1 := MOV(CLOSE, 60, E);
MAS1 := MOV(MAM1, 90, E);
MAM1;
MAS1;

BTW been meaning to ask about the indicator smoothing options:
SMOOTHING:  - EXPONENTIAL[E], WEIGHTED[W], TIMESERIES[T], TRIANGULAR[TRI], VOLUMEADJUSTED[VOL]

Is there a smoothing option for Moving Average Variable as per the indicator lists? tried V & VAR but didn't take.

Thanks.
« Last Edit: 16/07/2019, 11:44:36 AM by JohnR »