• LIMITED TIME ONLY: Take $40 off VIP with code: BTD40.

Trying to write a pivot point script

Vsevolod

New member
I'm just trying to make an indicator that would plot an up arrow every time there's a bar with lower high and lower lows than the previous and next bar and a down arrow every time there's a bar with higher high and lower low than the previous and next bar. I'm not sure where to start. I uploaded an example of where I wanted to plot the arrows. Thanks!

Image is from A Complete Guide to Volume Price Analysis by Anna Coulling
r6CzkXr.png
 
Last edited by a moderator:
Solution
I've tried looking on the website and on the platform. The closest thing I could find on the TOS platform itself is the williams fractals pattern, but it doesn't plot exactly what I want which is indicators/arrows at a candle with lower highs and lower lows than both the candles on either side and vice versa. So I'm thinking that this isn't exactly difficult to code as it isn't super complicated, I'm not sure how to code it though since there aren't tutorials and the language is confusing.

Edit: I did find a study but I had to do some editing to the code.
Here is the edited study
https://tos.mx/4IEK9Ze

Here is the unedited study
https://community.tradovate.com/t/bill-williams-fractal-indicator-from-tos/692
...

Vsevolod

New member
I've tried looking on the website and on the platform. The closest thing I could find on the TOS platform itself is the williams fractals pattern, but it doesn't plot exactly what I want which is indicators/arrows at a candle with lower highs and lower lows than both the candles on either side and vice versa. So I'm thinking that this isn't exactly difficult to code as it isn't super complicated, I'm not sure how to code it though since there aren't tutorials and the language is confusing.

Edit: I did find a study but I had to do some editing to the code.
Here is the edited study
https://tos.mx/4IEK9Ze

Here is the unedited study
https://community.tradovate.com/t/bill-williams-fractal-indicator-from-tos/692
 
Last edited:

SleepyZ

Well-known member
VIP
Lifetime
I've tried looking on the website and on the platform. The closest thing I could find on the TOS platform itself is the williams fractals pattern, but it doesn't plot exactly what I want which is indicators/arrows at a candle with lower highs and lower lows than both the candles on either side and vice versa. So I'm thinking that this isn't exactly difficult to code as it isn't super complicated, I'm not sure how to code it though since there aren't tutorials and the language is confusing.

Edit: I did find a study but I had to do some editing to the code.
Here is the edited study
https://tos.mx/4IEK9Ze

Here is the unedited study
https://community.tradovate.com/t/bill-williams-fractal-indicator-from-tos/692

Hopefully, this modified swing high/low code that I did awhile ago will work as you requested. You can input the number of bars to be in your swing/pivot, show arrows, show price bubbles, and/or show horizontal lines. Theses are all color coded. The chart below is set to 3 bars in a swing.

Screenshot-2021-08-18-071906.jpg
Ruby:
#Swing High/Low (Fractal)
#Higher Highs or Higher Lows are designated by green dots and/or green horizontal lines
#Lower Highs or Lower Lows are designated by red dots and/or red horizontal lines
#User input to select how many horizontal lines are plotted
#User input to plot lines connecting swing highs to each other and swing lows to each other
#User input to plot lines connecting swing highs to swing lows

input swing = 1;
input spacer = 0;


def swinghigh = if Round(Highest(high[1], swing), 2) < Round(high, 2) and
                   Round(high, 2) > Round(Highest(high[-swing], swing), 2) and
                   Round(Lowest(low[1], swing), 2) < Round(Lowest(low[-swing], swing), 2)              
                then 1
                else 0;
def fast      = if swinghigh == 1 then high else fast[1];

plot sh1 = if swinghigh == 1 then high + spacer * TickSize() else Double.NaN;
sh1.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
sh1.AssignValueColor(if fast[1] < fast
                     then Color.GREEN
                     else if fast[1] == fast
                     then Color.YELLOW
                     else Color.RED);
sh1.SetLineWeight(4);
sh1.HideBubble();
def swinglow = if Round(low, 2) < Round(Lowest(low[1], swing), 2) and
                  Round(low) < Round(Lowest(low[-swing], swing), 2) and
                  Round(Highest(high[1], swing), 2) > Round(Highest(high[-swing], swing), 2)                
               then 1
               else 0;
def slow = if swinglow == 1 then low else slow[1];



plot sl1 = if swinglow == 1 then low - spacer * TickSize() else Double.NaN;
sl1.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
sl1.AssignValueColor(if slow[1] < slow
                     then Color.GREEN
                     else if slow[1] == slow
                     then Color.YELLOW
                     else Color.RED);
sl1.SetLineWeight(4);
sl1.HideBubble();


def sh11    = if !IsNaN(sh1) then high else Double.NaN;
def sl11    = if !IsNaN(sl1) then low else Double.NaN;
def swhigh  = if !IsNaN(sh1) then sh1 else swhigh[1];
def swlow   = if !IsNaN(sl1) then sl1 else swlow[1];
def shcolor = if swhigh != swhigh[1] and swhigh > swhigh[1]
              then 1
              else if shcolor[1] == 1 and swhigh == swhigh[1]
              then 1
              else 0;
def slcolor = if swlow != swlow[1] and swlow > swlow[1]
              then 1
              else if slcolor[1] == 1 and swlow == swlow[1]
              then 1
              else 0;

#Swing Line from High to Low
input showswinghightolowline = yes;
plot hilowline = if showswinghightolowline == no then Double.NaN else if swinghigh then sh11 else sl11;
hilowline.EnableApproximation();
hilowline.SetDefaultColor(Color.BLACK);
hilowline.HideBubble();

#Price Bubbles @Swing
input showbubbles = yes;
AddChartBubble(showbubbles and sh1, high, high, if shcolor == 1 then Color.LIGHT_GREEN else Color.LIGHT_RED, yes);
AddChartBubble(showbubbles and sl1, low, low, if slcolor == 1 then Color.LIGHT_GREEN else Color.LIGHT_RED, no);


#Horizontal Lines
input number_swing_horizontalsstoshow = 2;
input show_horizontallines = yes;
def data = CompoundValue(1, if !IsNaN(sh1) then data[1] + 1 else data[1], 0);
def datacount = (HighestAll(data) - data[1]) + 1;
def data1 = CompoundValue(1, if !IsNaN(sl1) then data1[1] + 1 else data1[1], 0);
def datacount1 = (HighestAll(data1) - data1[1]) + 1;

plot swingHp = if show_horizontallines == no
               then Double.NaN
               else if datacount <= number_swing_horizontalsstoshow
               then swhigh
               else Double.NaN;
swingHp.SetPaintingStrategy(PaintingStrategy.DASHES);
swingHp.setlineWeight(2);
swingHp.AssignValueColor(if shcolor == 1 then Color.GREEN else Color.RED);
swingHp.HideBubble();

plot swingLp = if show_horizontallines == no
               then Double.NaN
               else if datacount1 <= number_swing_horizontalsstoshow
               then swlow
               else Double.NaN;
swingLp.SetPaintingStrategy(PaintingStrategy.DASHES);
swingLp.AssignValueColor(if slcolor == 1 then Color.GREEN else Color.RED);
swinglp.setlineWeight(2);
swingLp.HideBubble();
 
Solution

Cwparker23

Member
I'm just trying to make an indicator that would plot an up arrow every time there's a bar with lower high and lower lows than the previous and next bar and a down arrow every time there's a bar with higher high and lower low than the previous and next bar. I'm not sure where to start. I uploaded an example of where I wanted to plot the arrows. Thanks!

Image is from A Complete Guide to Volume Price Analysis by Anna Coulling
r6CzkXr.png
Here's a video on the script your looking for
 

Similar threads

Top