TC2000.com• Download software • Tutorial videos • Subscription & data-feed pricing • Class schedule
TC2000Brokerage.com• New account application • Trading resources • Margin rates • Stock & option commissions
Worden Discussion Forum » Customer Training & Support » Ask a Trainer - TC2000 version 12/18 » HMA 5 on BOP
I'm trying to plot a 5 period Hull moving average on BOP without success.
(30 * C + 27 * C1 - 7 * C3 - 4 * C4 - C5) / 45
When I switch the data source to BOP is when I have problems.
Does the below plot a 5 sma of the HMA 5?
Many thanks for any help.
You aren't going to be able to successfully change the data source of any of the Custom PCF Indicators. These indicators will always use price and volume as the data source.
You could re-write the Indicator Formula to use BOP however.
(30 * BOP + 27 * BOP1.1 - 7 * BOP1.3 - 4 * BOP1.4 - BOP1.5) / 45
Bruce,
Many thanks.
Have a nice weekend.
Don
I tried to change the datasource for the formula (c>avgc2 and c1<avgc2) *c
to a stochastic 12/3, with no values coming in. Is there any workaround for this? I actual try to get dots for "is true", if and when that crossing up happens to the DSS Bressert, that means to an underlying identical stochastic being the data source for the second stochastic . Therefore implementing the stoc formula into the condition part can´t help, I think.
thank you,
Franz J.
You can't change the data source of Custom PCF Indicators and there really isn't a workaround for this other than to re-write the formula (if possible).
We can write a formula for Bressert DSS in TC2000 v17 (but not in earlier versions of TC2000). This assumes it is in fact an exponentilal stochastic of an exponential stochastic.
So something like the following for the Bressert DSS 10, 10:
100 * XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10)
And the following for crossing up its own 2 period simple moving average.
XUP(XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10), AVG(XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10) ,2))
Great to have this option in V 17, read the new version hints but didn´t realize this. Thank you very much,
Now, in order to get a dot within the DSS curve indicating the DSS turning up, I would have to set the DSS formula as multiplier. For the formula being calculated "very slow", is there a way to reference the already calculated DSS? Remembering my Metastock times I would have defined A= (DSS formula) and the multiplier would be simply A. Maybe V 17 has an approach to this too.
For now I have the multiplier set to (-1) and get the dot at 100 %. I would like to hide the corresponding dots ("not true") which appear at 0, but I miss the idea for this. The Dots print in the same window with the DSS. Can you help again?
thank you, Franz
There is no way to assign a variable or reference a previously calculated value.
If you use division instead of multiplication, you can generate a division by zero error when the Condition Formula portion is not true and make it so the dots don't plot.
100 * XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10) / ABS(XUP(XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10), AVG(XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10) ,2)))
that´s exactly what I was looking for. Not only the false dots are hidden, but the dots plot within the DSS line. Great, and thank you very much!
PS: Maybe I will find out by myself how to alter the formula to get the "DSS turning down" dots plotted. But I am a graphic mind, no mathematic one. Can you please giv a hint ;) ?
There is a XUP about a third of the way through the formula which needs to be changed to XDOWN instead.
100 * XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10) / ABS(XDOWN(XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10), AVG(XAVG((XAVG(STOC10, 10) - MIN(XAVG(STOC10, 10), 10)) / (MAX(XAVG(STOC10, 10), 10) - MIN(XAVG(STOC10, 10), 10)), 10) ,2)))
I see. Thank you very much again!
now I want this frormula to be true yesterday. I tend to write STOC10, 10.1 every time STOC10, 10 occurs. For I need it for a PCF containing an OR, I cannot use the features that are available in a scan.
Do you think my idea to be correct?
Thank you, FRanz J.
If I am understanding correctly, you need to replace each instance of STOC10 with STOC10.1.1 instead of just using STOC10.1 (because the second parameter is a simple %K).
STOC10
STOC10.1.1
STOC10.1
100 * XAVG((XAVG(STOC10.1.1, 10) - MIN(XAVG(STOC10.1.1, 10), 10)) / (MAX(XAVG(STOC10.1.1, 10), 10) - MIN(XAVG(STOC10.1.1, 10), 10)), 10) / ABS(XUP(XAVG((XAVG(STOC10.1.1, 10) - MIN(XAVG(STOC10.1.1, 10), 10)) / (MAX(XAVG(STOC10.1.1, 10), 10) - MIN(XAVG(STOC10.1.1, 10), 10)), 10), AVG(XAVG((XAVG(STOC10.1.1, 10) - MIN(XAVG(STOC10.1.1, 10), 10)) / (MAX(XAVG(STOC10.1.1, 10), 10) - MIN(XAVG(STOC10.1.1, 10), 10)), 10) ,2)))
you did understand correctly, but my mistake, I actually tried to write a condition formula.
With DSS Bressert 21,3 = D1, and DSS Bressert 42,3 = D2, the condition should be:
( (D1 and D2 turning up) OR (D1 turning up and D2 turned up yesterday) OR (D2 turning up and D1 turned up yesterday) ) I am able to write the pcf this way: ( ((D1 > D1 yest. and D1 yest.<D1 before yest.) and (D2 > D2 yest. and D2 yest.<D2 before yest.)) OR and so on
, but I would assume there is an easier way to write the formula. Can you help again?
Thank you!
I don't think there really is a good way to write what I suspect you actually want. The quick and dirty way will also return true if D1 and D2 turned up yesterday (and requires both stochastic to still be going up).
(XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2), 2) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2), 2))
What you actually requested is quite a bit longer (and it is possible for one of the stochastics to have started going back down).
(XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2))) OR (XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), 2))) OR (XUP(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2)))
I suspect the combination you really want is as follows and I'm not sure there is a really good way to write it.
D1 and D2 moving up today.
D1 moving down yesterday and/or D2 moving down yesterday.
If both D1 and D2 were moving down yesterday ignore two days ago.
If D1 was moving up yesterday and D2 was moving down yesterday then D1 must have been moving down two days ago.
If D1 was moving down yesterday and D2 was moving up yesterday, then D2 must have been moving down two two days ago.
Indeed the latter of your 2 pcfs is exactly what I was looking for. Your "dirty" pcf is great too even with its specialties and would be sufficient for me, but it didn´t detect 2 (D1+D2 turning up) cases on Friday in my symbol universe (PM and INCY).
Thank you very much for your great help,
now I tried to add the condition(s) to your latter formula, that either D1 or D2 has to be < 18. But obviously there is something I am doing wrong, for the scan results contain many values > 18.
The pcf applied is:
I would assume there is a precedence issue only, but I don´t see it. Can you please take a look? (previous post)
thanks
You need to compare each formula to 18, not OR the formulas and compare the result to 18.
((XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2))) OR (XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), 2))) OR (XUP(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2)))) AND (100 * XAVG((XAVG(STOC21,3) - MIN(XAVG(STOC21,3), 21)) / (MAX(XAVG(STOC21,3), 21) - MIN(XAVG(STOC21,3), 21)), 3) < 18 OR 100 * XAVG((XAVG(STOC42,3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42,3), 42) - MIN(XAVG(STOC42,3), 42)), 3) < 18)
Creating a new scan and inserting that formula I get an error (please insert formula"). Maybe I´ll find out at the weekend, but may b e you can take a look before?
It was pretty much just a copy and paste of your formula with < 18 made to each of the two 100 * formulas at the end instead of just having one < 18 at the end.
That said, I don't get an error message when I use the formula. My first thought was that it could be using . as a decimal marker vs using , as a decimal marker, but I don't think there are actually any decimal markers in the formula.
your pcf is working perfectly, don´t know what first had happened there.
can you help again and invert this formula from up to down? That means, the Bresserts turning down instead of up and the values being > 82 instead of <18.
Would be very appreciated.
FRanz Josef
Please try the following Condition Formula.
((XDOWN(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XDOWN(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2))) OR (XDOWN(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XDOWN(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), 2))) OR (XDOWN(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), 2)) AND XDOWN(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2)))) AND (100 * XAVG((XAVG(STOC21,3) - MIN(XAVG(STOC21,3), 21)) / (MAX(XAVG(STOC21,3), 21) - MIN(XAVG(STOC21,3), 21)), 3) > 82 OR 100 * XAVG((XAVG(STOC42,3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42,3), 42) - MIN(XAVG(STOC42,3), 42)), 3) > 82)
with your formula working fine, I tried to have a "condition true" dot displayed above the candles (resp. below them for the XUP case). But I couldn´t find out where to place my multipliers *H*1,0002 resp. *L*0,9998.
Please how to implement that parts?
Thank you,
Maybe the following for the XDOWN case?
H * 1,0002 * ABS(((XDOWN(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XDOWN(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2))) OR (XDOWN(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XDOWN(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), 2))) OR (XDOWN(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), 2)) AND XDOWN(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2)))) AND (100 * XAVG((XAVG(STOC21,3) - MIN(XAVG(STOC21,3), 21)) / (MAX(XAVG(STOC21,3), 21) - MIN(XAVG(STOC21,3), 21)), 3) > 82 OR 100 * XAVG((XAVG(STOC42,3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42,3), 42) - MIN(XAVG(STOC42,3), 42)), 3) > 82))
And the following for the XUP case?
L * 0,9998 * ABS(((XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2))) OR (XUP(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21, 3) - MIN(XAVG(STOC21, 3), 21)) / (MAX(XAVG(STOC21, 3), 21) - MIN(XAVG(STOC21, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42.1.1, 3) - MIN(XAVG(STOC42.1.1, 3), 42)) / (MAX(XAVG(STOC42.1.1, 3), 42) - MIN(XAVG(STOC42.1.1, 3), 42)), 3), 2))) OR (XUP(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), AVG(100 * XAVG((XAVG(STOC21.1.1, 3) - MIN(XAVG(STOC21.1.1, 3), 21)) / (MAX(XAVG(STOC21.1.1, 3), 21) - MIN(XAVG(STOC21.1.1, 3), 21)), 3), 2)) AND XUP(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), AVG(100 * XAVG((XAVG(STOC42, 3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42, 3), 42) - MIN(XAVG(STOC42, 3), 42)), 3), 2)))) AND (100 * XAVG((XAVG(STOC21,3) - MIN(XAVG(STOC21,3), 21)) / (MAX(XAVG(STOC21,3), 21) - MIN(XAVG(STOC21,3), 21)), 3) < 18 OR 100 * XAVG((XAVG(STOC42,3) - MIN(XAVG(STOC42, 3), 42)) / (MAX(XAVG(STOC42,3), 42) - MIN(XAVG(STOC42,3), 42)), 3) < 18))
yes the positions of the true points seems correct, but they appear outside of the chart (if not displayed as a histogram). It seems the formulas result in values 10000x the stock price. But simple dividing the formula(s) by that number didn´t help. (I had to replace the comma in 1,0002 resp. 0,0098 by a dot).
Thanks,
You could replace the 1,0002 with 10002 / 10000 and the 0,9998 with 9998 / 1000 instead and it should work everywhere. That said, I am a bit surprised it would be necessary as the charts normally use the local decimal marker settings. Using the . as the decimal marker is usually only an issue with stuff processed on your servers like the WatchList Columns.
1,0002
10002 / 10000
0,9998
9998 / 1000
taking away my multiplier the dots match exactly with the H. Is there still a way to have the dots slightly above the H without a syntax error?
Well 0.02% above and below the high and low isn't very much. You could use larger values. The following would be 1% (which might be too big), but you can adjust the values as desired.
H * 101 / 100 * ABS
And:
L * 99 / 100 * ABS
An alternative would be to use a percentage of the range over a period instead of a percentage of the values.
(H + (MAXH100 - MINL100) / 1000) * ABS
(L - (MAXH100 - MINL100) / 1000) * ABS
Again, you could change the 1000 in the formula to adjust how much above and below the highs and lows to plot the dots.