Create a Woodie Pivots scan?

zeek

zeek

Active member
2019 Donor
Was wondering if it would be possible to create a scan only looking for a certain support or resistance level using the Woodie Pivots in TOS. For example, lets say i want to know which stocks are close to their Woodie R3 level (intraday) and if it would be possible to also have alerts when the price is lets say 5 cents from hitting the R3, that would have been great.

Can a scan like this be made?

Here`s the code for the Thinkorswim Woodie Pivots

Code:
#
# TD Ameritrade IP Company, Inc. (c) 2009-2019
#

input timeFrame = {default DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP", QUARTER, YEAR};
input showOnlyToday = no;

def highByPeriod = high(period = timeFrame)[1];
def lowByPeriod = low(period = timeFrame)[1];
def openByPeriod = open(period = timeFrame);
def closeByPeriod = close(period = timeFrame)[-1];

plot R3;
plot R2;
plot R1;
plot PP;
plot S1;
plot S2;
plot S3;

if showOnlyToday and !IsNaN(closeByPeriod)
then {
    R1 = Double.NaN;
    R2 = Double.NaN;
    R3 = Double.NaN;
    PP = Double.NaN;
    S1 = Double.NaN;
    S2 = Double.NaN;
    S3 = Double.NaN;
} else {
    PP = (highByPeriod + lowByPeriod + 2 * openByPeriod) / 4;
    R1 = 2 * PP - lowByPeriod;
    S1 = 2 * PP - highByPeriod;
    R2 = PP + R1 - S1;
    S2 = PP + S1 - R1;
    R3 = R2 + R1 - PP;
    S3 = S2 + S1 - PP;
}

PP.SetDefaultColor(GetColor(0));
R1.SetDefaultColor(GetColor(5));
R2.SetDefaultColor(GetColor(5));
R3.SetDefaultColor(GetColor(5));
S1.SetDefaultColor(GetColor(6));
S2.SetDefaultColor(GetColor(6));
S3.SetDefaultColor(GetColor(6));

PP.SetStyle(Curve.SHORT_DASH);
R1.SetStyle(Curve.SHORT_DASH);
R2.SetStyle(Curve.SHORT_DASH);
R3.SetStyle(Curve.SHORT_DASH);
S1.SetStyle(Curve.SHORT_DASH);
S2.SetStyle(Curve.SHORT_DASH);
S3.SetStyle(Curve.SHORT_DASH);

def paintingStrategy = if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else if timeFrame == timeFrame.MONTH or timeFrame == timeFrame."OPT EXP" or timeFrame == timeFrame.QUARTER or timeFrame == timeFrame.YEAR then PaintingStrategy.LINE_VS_SQUARES else PaintingStrategy.LINE_VS_POINTS;

PP.SetPaintingStrategy(paintingStrategy);
R1.SetPaintingStrategy(paintingStrategy);
R2.SetPaintingStrategy(paintingStrategy);
R3.SetPaintingStrategy(paintingStrategy);
S1.SetPaintingStrategy(paintingStrategy);
S2.SetPaintingStrategy(paintingStrategy);
S3.SetPaintingStrategy(paintingStrategy);
 
Last edited by a moderator:
T

tomsk

Well-known member
VIP
@zeek As I read through your request there are a couple of issues to point out. First of all Woodie's Pivots has been defined for aggregations of DAY and above. It does not cover intraday aggregations. Here is the definition from that study

Code:
input timeFrame = {default DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP", QUARTER, YEAR};

If you so choose, you can of course program this to include intraday aggregations but in so doing it would not be a true Woodie's Pivot study would it.

The other thing to point out is that if you do decide to use the actual Woodie Pivot study as the basis for your scan query, the scanner does not accept secondary aggregations like an intraday. This is because the base study has the minimal aggregation period of DAY and you're looking to scan for an intraday.

Have a think through this and make any adjustments as needed to your scan requirements for any future follow up
 
zeek

zeek

Active member
2019 Donor
Ok, no problem. But i do have another request that relates to this study and what i am looking for are chart labels for the different Resistance levels that displays the price for R1,R2 & R3. The support levels are not necessary to have as labels.

Can this be added to the Woodie Pivot study?
 
T

tomsk

Well-known member
VIP
Ok, no problem. But i do have another request that relates to this study and what i am looking for are chart labels for the different Resistance levels that displays the price for R1,R2 & R3. The support levels are not necessary to have as labels.

Can this be added to the Woodie Pivot study?

@zeek Sure thing, just add the following to the end of the TOS Woodie Pivot study

Code:
AddLabel(1, "R1 = " + R1, Color.Yellow);
AddLabel(1, "R2 = " + R2, Color.Yellow);
AddLabel(1, "R3 = " + R3, Color.Yellow);
 

Similar threads

Top