SimplerTrading Voodoo Lines for ThinkorSwim

maddy91

New member
I'm looking for the Voodoo Lines and Prediction Points type indicators for ThinkorSwim. Someone made a sample script but for a different platform below.

Some traders were interested in "voodoo lines" and "gravity points", and other hocchie-coochie lines. I came across the Voodoo Lines indicator from SimplerTrading but D. K. and J. C. failed to provide a tradable method. My idea would be to put eight equidistant and stationary lines across the chart. You would trade with the trend, or against the trend. If bullish stay with the trend until the candle crosses one level down.

Code:
once ELow = 666.4
once EHigh = 1220.1
// Number of levels 1-3
levels = 3

// Fire lines
if levels >= 1 then
once F1 = Elow
once F2 = Ehigh
once F3= (Ehigh-Elow)*0.618 + Ehigh
once F4 = (Ehigh-Elow)*1.618 + Ehigh
once F5 = (Ehigh-Elow)*3.236 + Ehigh
endif

//Three lines
if levels >= 2 then
once T1 = F1 + (F2-F1)*0.382
once T2 = F1 + (F2-F1)*0.618
once T3 = F2 + (F3-F2)*0.382
once T4 = F2 + (F3-F2)*0.618
once T5 = F3 + (F4-F3)*0.382
once T6 = F3 + (F4-F3)*0.618
once T7 = F4 + (F5-F4)*0.382
once T8 = F4 + (F5-F4)*0.618
endif

//Snow lines
if levels >= 3 then
once S1 = F1 + (T1-F1)*0.382
once S2 = F1 + (T1-F1)*0.618
once S3 = T1 + (T2-T1)*0.382
once S4 = T1 + (T2-T1)*0.618
once S5 = T2 + (F2-T2)*0.382
once S6 = T2 + (F2-T2)*0.618
once S7 = F2 + (T3-F2)*0.382
once S8 = F2 + (T3-F2)*0.618
once S9 = T3 + (T4-T3)*0.382
once S10 = T3 + (T4-T3)*0.618
once S11 = T4 + (F3-T4)*0.382
once S12 = T4 + (F3-T4)*0.618
once S13 = F3 + (T5-F3)*0.382
once S14 = F3 + (T5-F3)*0.618
once S15 = T5 + (T6-T5)*0.382
once S16 = T5 + (T6-T5)*0.618
once S17 = T6 + (F4-T6)*0.382
once S18 = T6 + (F4-T6)*0.618
once S19 = F4 + (T7-F4)*0.382
once S20 = F4 + (T7-F4)*0.618
once S21 = T7 + (T8-T7)*0.382
once S22 = T7 + (T8-T7)*0.618
once S23 = T8 + (F5-T8)*0.382
once S24 = T8 + (F5-T8)*0.618
endif

If anyone can convert to thinkscript that would be great.

Update: This is what I have from Syracuse voodoo.

Code:
#SyracusePro

declare upper;

input symbol_1 = "FB";
input symbol_5 = "NFLX";
input symbol_6 = "SPY";
input symbol_7 = "QQQ";
input symbol_8 = "/CL";

def Start;
def Finish;

if (GetUnderlyingSymbol() == symbol_1)
{

    Start = 17.55;
    Finish = 32.51;

}
else if (GetUnderlyingSymbol() == symbol_5)
{
    Start = 7.54;
    Finish = 28.23;

}
else if (GetUnderlyingSymbol() == symbol_6)
{
    Start = 77.07;
    Finish = 157.52;
}
else if (GetUnderlyingSymbol() == symbol_7)
{
    Start = 120.5;
    Finish = 72.5;
}
else if (GetUnderlyingSymbol() == symbol_8)
{
    Start = 9.75;
    Finish = 41.15;



}
else
{
    Start = Double.NaN;
    Finish = Double.NaN;

}

   #FireLine Calculations#


script MYFib1618 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.618);
    plot d = Rng;
}


script MYFib2618 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.618);
    plot d = Rng;
}


script MYFib4236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 4.236);
    plot d = Rng;
}


script MYFib6854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 6.854);
    plot d = Rng;
}

   #TreeLine Calculations#

        ###########
        ###########
        ###########

script MYFib382 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 0.382);
    plot d = Rng;
}

script MYFib618 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 0.618);
    plot d = Rng;
}

        ###########
        ###########
        ###########

script MYFib1236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.236);
    plot d = Rng;
}

script MYFib1382 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.382);
    plot d = Rng;
}

        ############
        ############
        ############

script MYFib2 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2);
    plot d = Rng;
}

script MYFib2236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.236);
    plot d = Rng;
}

        ############
        ############
        ############

script MYFib3236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 3.236);
    plot d = Rng;
}

script MYFib3618 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 3.618);
    plot d = Rng;
}

        ############
        ############
        ############

script MYFib5236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 5.236);
    plot d = Rng;
}

script MYFib5854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 5.854);
    plot d = Rng;
}

        ###########   
        ###########
        ###########

    #SnowLine Calculations#

        ###########
        ###########
        ###########

script MYFib146 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * .146);
    plot d = Rng;
}

script MYFib236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * .236);
    plot d = Rng;
}

        ###########
        ###########

script MYFib472 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * .472);
    plot d = Rng;
}

script MYFib528 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * .528);
    plot d = Rng;
}

        ###########
        ###########

script MYFib764 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * .764);
    plot d = Rng;
}

script MYFib854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * .854);
    plot d = Rng;
}

        ###########
        ###########
        ###########

script MYFib1090 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.090);
    plot d = Rng;
}


script MYFib1146 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.146);
    plot d = Rng;
}


        ##########
        ##########

script MYFib1236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.236);
    plot d = Rng;
}




        ###########
        ###########



        ###########
        ###########


script MYFib1472 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.472);
    plot d = Rng;
}

script MYFib1528 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.528);
    plot d = Rng;
}


        ###########
        ###########
        ###########



script MYFib1326 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.326);
    plot d = Rng;
}
script MYFib1854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.854);
    plot d = Rng;
}

        ###########
        ###########

script MYFib2090 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.090);
    plot d = Rng;
}



script MYFib2146 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.146);
    plot d = Rng;
}

        ###########
        ###########

script MYFib2224 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.224);
    plot d = Rng;

}

script MYFib1292 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.292);
    plot d = Rng;
}

        ###########
        ###########

script MYFib2382 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.382);
    plot d = Rng;
}

script MYFib2472 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.472);
    plot d = Rng;
}

        ###########
        ###########

script MYFib1764 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 1.764);
    plot d = Rng;
}



script MYFib2854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 2.854);
    plot d = Rng;
}


        ###########
        ###########
        ###########




script MYFib3 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 3);
    plot d = Rng;
}






        #########
        #########

        #########
        #########

script MYFib3382 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 3.382);
    plot d = Rng;
}


script MYFib3472 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 3.472);
    plot d = Rng;
}

        #########
        #########

script MYFib3854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 3.854);
    plot d = Rng;
}
script MYFib4 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 4);
    plot d = Rng;
}

        #########
        #########
        #########

script MYFib4618 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 4.618);
    plot d = Rng;
}
script MYFib4854 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 4.854);
    plot d = Rng;
}

        #########
        #########

script MYFib5472 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 5.472);
    plot d = Rng;
}

script MYFib5618 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 5.618);
    plot d = Rng;
}

        ##########
        ##########


script MYFib6236 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 6.236);
    plot d = Rng;
}



script MYFib6472 {
    input H = 1;
    input L = 1;
    def Rng = ((H - L)  * 6.472);
    plot d = Rng;
}



#Fib Ratio Plots#



    #FireLine Plots#

plot Begin = if IsNaN(close) then Double.NaN else Start;
plot End = if IsNaN(close) then Double.NaN else Finish;
plot FireLine_1 = if IsNaN(close) then Double.NaN else MYFib1618(Finish, Start) + Start;
plot FireLine_2 = if IsNaN(close) then Double.NaN else MYFib2618(Finish, Start) + Start;
plot FireLine_3 = if IsNaN(close) then Double.NaN else MYFib4236(Finish, Start) + Start;
plot FireLine_4 = if IsNaN(close) then Double.NaN else MYFib6854(Finish, Start) + Start;

    #TreeLine Plots#

plot TreeLine_1 = if IsNaN(close) then Double.NaN else MYFib382(Finish, Start) + Start;
plot TreeLine_2 = if IsNaN(close) then Double.NaN else MYFib618(Finish, Start) + Start;
plot TreeLine_3 = if IsNaN(close) then Double.NaN else MYFib1236(Finish, Start) + Start;
plot TreeLine_4 = if IsNaN(close) then Double.NaN else MYFib1382(Finish, Start) + Start;
plot TreeLine_5 = if IsNaN(close) then Double.NaN else MYFib2(Finish, Start) + Start;
plot TreeLine_6 = if IsNaN(close) then Double.NaN else MYFib2236(Finish, Start) + Start;
plot TreeLine_7 = if IsNaN(close) then Double.NaN else MYFib3236(Finish, Start) + Start;
plot TreeLine_8 = if IsNaN(close) then Double.NaN else MYFib3618(Finish, Start) + Start;
plot TreeLine_9 = if IsNaN(close) then Double.NaN else MYFib5236(Finish, Start) + Start;
plot TreeLine_10 = if IsNaN(close) then Double.NaN else MYFib5854(Finish, Start) + Start;

    #SnowLine Plots#

plot SnowLine_1 = if IsNaN(close) then Double.NaN else MYFib146(Finish, Start) + Start;
plot SnowLine_2 = if IsNaN(close) then Double.NaN else MYFib236(Finish, Start) + Start;
plot SnowLine_3 = if IsNaN(close) then Double.NaN else MYFib472(Finish, Start) + Start;
plot SnowLine_4 = if IsNaN(close) then Double.NaN else MYFib528(Finish, Start) + Start;
plot SnowLine_5 = if IsNaN(close) then Double.NaN else MYFib764(Finish, Start) + Start;
plot SnowLine_6 = if IsNaN(close) then Double.NaN else MYFib854(Finish, Start) + Start;
plot SnowLine_7 = if IsNaN(close) then Double.NaN else MYFib1090(Finish, Start) + Start;
plot SnowLine_8 = if IsNaN(close) then Double.NaN else MYFib1146(Finish, Start) + Start;
plot SnowLine_9 = if IsNaN(close) then Double.NaN else MYFib1146(Finish, Start) + Start;
plot SnowLine_10 = if IsNaN(close) then Double.NaN else MYFib1326(Finish, Start) + Start;
plot SnowLine_11 = if IsNaN(close) then Double.NaN else MYFib1236(Finish, Start) + Start;
plot SnowLine_12 = if IsNaN(close) then Double.NaN else MYFib1472(Finish, Start) + Start;
plot SnowLine_13 = if IsNaN(close) then Double.NaN else MYFib1764(Finish, Start) + Start;
plot SnowLine_14 = if IsNaN(close) then Double.NaN else MYFib1528(Finish, Start) + Start;
plot SnowLine_15 = if IsNaN(close) then Double.NaN else MYFib1854(Finish, Start) + Start;
plot SnowLine_16 = if IsNaN(close) then Double.NaN else MYFib2090(Finish, Start) + Start;
plot SnowLine_17 = if IsNaN(close) then Double.NaN else MYFib2146(Finish, Start) + Start;
plot SnowLine_18 = if IsNaN(close) then Double.NaN else MYFib1292(Finish, Start) + Start;
plot SnowLine_19 = if IsNaN(close) then Double.NaN else MYFib2382(Finish, Start) + Start;
plot SnowLine_20 = if IsNaN(close) then Double.NaN else MYFib2472(Finish, Start) + Start;
plot SnowLine_21 = if IsNaN(close) then Double.NaN else MYFib2854(Finish, Start) + Start;
plot SnowLine_22 = if IsNaN(close) then Double.NaN else MYFib3(Finish, Start) + Start;
plot SnowLine_23 = if IsNaN(close) then Double.NaN else MYFib3382(Finish, Start) + Start;
plot SnowLine_24 = if IsNaN(close) then Double.NaN else MYFib3472(Finish, Start) + Start;
plot SnowLine_25 = if IsNaN(close) then Double.NaN else MYFib3854(Finish, Start) + Start;
plot SnowLine_26 = if IsNaN(close) then Double.NaN else MYFib4(Finish, Start) + Start;
plot SnowLine_27 = if IsNaN(close) then Double.NaN else MYFib4618(Finish, Start) + Start;
plot SnowLine_28 = if IsNaN(close) then Double.NaN else MYFib4854(Finish, Start) + Start;
plot SnowLine_29 = if IsNaN(close) then Double.NaN else MYFib5472(Finish, Start) + Start;
plot SnowLine_30 = if IsNaN(close) then Double.NaN else MYFib5618(Finish, Start) + Start;
plot SnowLine_31 = if IsNaN(close) then Double.NaN else MYFib6236(Finish, Start) + Start;
plot SnowLine_32 = if IsNaN(close) then Double.NaN else MYFib6472(Finish, Start) + Start;



    #FireLine Colors#

Begin.SetDefaultColor(Color.RED);
Begin.SetLineWeight(3);

End.SetDefaultColor(Color.RED);
End.SetLineWeight(3);

FireLine_1.SetDefaultColor(Color.RED);
FireLine_1.SetLineWeight(3);

FireLine_2.SetDefaultColor(Color.RED);
FireLine_2.SetLineWeight(3);

FireLine_3.SetDefaultColor(Color.RED);
FireLine_3.SetLineWeight(3);

FireLine_4.SetDefaultColor(Color.RED);
FireLine_4.SetLineWeight(3);

    #TreeLine Colors#

TreeLine_1.SetDefaultColor(Color.UPTICK);
TreeLine_1.SetLineWeight(2);

TreeLine_2.SetDefaultColor(Color.UPTICK);
TreeLine_2.SetLineWeight(2);

TreeLine_3.SetDefaultColor(Color.UPTICK);
TreeLine_3.SetLineWeight(2);

TreeLine_4.SetDefaultColor(Color.UPTICK);
TreeLine_4.SetLineWeight(2);

TreeLine_5.SetDefaultColor(Color.UPTICK);
TreeLine_5.SetLineWeight(2);

TreeLine_6.SetDefaultColor(Color.UPTICK);
TreeLine_6.SetLineWeight(2);

TreeLine_7.SetDefaultColor(Color.UPTICK);
TreeLine_7.SetLineWeight(2);

TreeLine_8.SetDefaultColor(Color.UPTICK);
TreeLine_8.SetLineWeight(2);

TreeLine_9.SetDefaultColor(Color.UPTICK);
TreeLine_9.SetLineWeight(2);

TreeLine_10.SetDefaultColor(Color.UPTICK);
TreeLine_10.SetLineWeight(2);


    #SnowLine Colors#

SnowLine_1.SetDefaultColor(Color.WHITE);
SnowLine_1.SetLineWeight(1);

SnowLine_2.SetDefaultColor(Color.WHITE);
SnowLine_2.SetLineWeight(1);

SnowLine_3.SetDefaultColor(Color.WHITE);
SnowLine_3.SetLineWeight(1);

SnowLine_4.SetDefaultColor(Color.WHITE);
SnowLine_4.SetLineWeight(1);

SnowLine_5.SetDefaultColor(Color.WHITE);
SnowLine_5.SetLineWeight(1);

SnowLine_6.SetDefaultColor(Color.WHITE);
SnowLine_6.SetLineWeight(1);

SnowLine_7.SetDefaultColor(Color.WHITE);
SnowLine_7.SetLineWeight(1);


SnowLine_8.SetDefaultColor(Color.WHITE);
SnowLine_8.SetLineWeight(1);


SnowLine_10.SetDefaultColor(Color.WHITE);
SnowLine_10.SetLineWeight(1);

SnowLine_11.SetDefaultColor(Color.WHITE);
SnowLine_11.SetLineWeight(1);

SnowLine_12.SetDefaultColor(Color.WHITE);
SnowLine_12.SetLineWeight(1);

SnowLine_11.SetDefaultColor(Color.WHITE);
SnowLine_11.SetLineWeight(1);

SnowLine_12.SetDefaultColor(Color.WHITE);
SnowLine_12.SetLineWeight(1);

SnowLine_13.SetDefaultColor(Color.WHITE);
SnowLine_13.SetLineWeight(1);

SnowLine_14.SetDefaultColor(Color.WHITE);
SnowLine_14.SetLineWeight(1);

SnowLine_15.SetDefaultColor(Color.WHITE);
SnowLine_15.SetLineWeight(1);

SnowLine_16.SetDefaultColor(Color.WHITE);
SnowLine_16.SetLineWeight(1);

SnowLine_17.SetDefaultColor(Color.WHITE);
SnowLine_17.SetLineWeight(1);

SnowLine_18.SetDefaultColor(Color.WHITE);
SnowLine_18.SetLineWeight(1);

SnowLine_19.SetDefaultColor(Color.WHITE);
SnowLine_19.SetLineWeight(1);

SnowLine_20.SetDefaultColor(Color.WHITE);
SnowLine_20.SetLineWeight(1);

SnowLine_21.SetDefaultColor(Color.WHITE);
SnowLine_21.SetLineWeight(1);

SnowLine_22.SetDefaultColor(Color.WHITE);
SnowLine_22.SetLineWeight(1);

SnowLine_23.SetDefaultColor(Color.WHITE);
SnowLine_23.SetLineWeight(1);

SnowLine_24.SetDefaultColor(Color.WHITE);
SnowLine_24.SetLineWeight(1);

SnowLine_25.SetDefaultColor(Color.WHITE);
SnowLine_25.SetLineWeight(1);

SnowLine_26.SetDefaultColor(Color.WHITE);
SnowLine_26.SetLineWeight(1);

SnowLine_27.SetDefaultColor(Color.WHITE);
SnowLine_27.SetLineWeight(1);

SnowLine_28.SetDefaultColor(Color.WHITE);
SnowLine_28.SetLineWeight(1);

SnowLine_29.SetDefaultColor(Color.WHITE);
SnowLine_29.SetLineWeight(1);

SnowLine_30.SetDefaultColor(Color.WHITE);
SnowLine_30.SetLineWeight(1);

SnowLine_31.SetDefaultColor(Color.WHITE);
SnowLine_31.SetLineWeight(1);

SnowLine_32.SetDefaultColor(Color.WHITE);
SnowLine_32.SetLineWeight(1);
 
Last edited by a moderator:

Jonas99

Active member
VIP
The math and code are already laid out in the thread, the issue is picking the swing low and swing high of the elliot wave 1 for each individual stock. This can be done by opening up a long term chart and identifying elliot wave 1
I ran Wolf wave, the support, and resistance similar to the voodoo line, for the time being, it's an alternative as the voodoo line is not being scripted by anyone yet. https://postimg.cc/1nnwLz7D/767c0482
Note that the 591 level of TSLA was exactly the same as the voodoo line SO has.
 
Last edited:

New Indicator: Buy the Dip

Check out our Buy the Dip indicator and see how it can help you find profitable swing trading ideas. Scanner, watchlist columns, and add-ons are included.

Download the indicator

Kordon

New member
I ran Wolf wave, the support, and resistance similar to the voodoo line, for the time being, it's an alternative as the voodoo line is not being scripted by anyone yet. https://postimg.cc/1nnwLz7D/767c0482
Note that the 591 level of TSLA was exactly the same as the voodoo line SO has.
It's unlikely that it will be scripted since the initial data points come from outside of the scripts. However, it's something that can easily be accomplished by a community effort here if everyone understands the underlying principles of script and the lines.

The voodoo lines are all generated from the bottom two firelines. These two lines come from Elliot Wave 1 (the bottom of wave 1 and the top of wave 2) on a long-term chart. Elliot Waves are pictured here:
7UOhiSQ.gif


For example let's look at TSLA. I opened up the 2Y1D chart and drew Elliot Wave 1 (and possibly 2) on it. The bottom fire lines ended up being 35.4 and 188.96, with 35.4 conveniently being the low of the chart. Here is the drawing of Elliot Wave 1:


uiIw7qG.png


I used the ThinkScript code posted by OP and just plugged in the numbers I measured for TSLA and the lines were drawn (I deleted Snowlines for clarity). Pretty simple once you understand the concept behind the Elliot Wave/Fibonacci tools used to create the lines. Maybe a group of people can start maintaining the start/end values for various tickers. Hope this helps!
 

KG3344

New member
VIP
It's unlikely that it will be scripted since the initial data points come from outside of the scripts. However, it's something that can easily be accomplished by a community effort here if everyone understands the underlying principles of script and the lines.

The voodoo lines are all generated from the bottom two firelines. These two lines come from Elliot Wave 1 (the bottom of wave 1 and the top of wave 2) on a long-term chart. Elliot Waves are pictured here:
7UOhiSQ.gif


For example let's look at TSLA. I opened up the 2Y1D chart and drew Elliot Wave 1 (and possibly 2) on it. The bottom fire lines ended up being 35.4 and 188.96, with 35.4 conveniently being the low of the chart. Here is the drawing of Elliot Wave 1:


uiIw7qG.png


I used the ThinkScript code posted by OP and just plugged in the numbers I measured for TSLA and the lines were drawn (I deleted Snowlines for clarity). Pretty simple once you understand the concept behind the Elliot Wave/Fibonacci tools used to create the lines. Maybe a group of people can start maintaining the start/end values for various tickers. Hope this helps!
I think I am understanding, but how far back would you look back to? For example, the current entry on QQQ is 120.5 and 72.5, which corresponds to the very start of the chart 20-year chart. However, that draws it far below where the QQQs are currently. So my question is, how do you know the next set of swings to use?
 

balishag21

New member
Has anyone been able to figure out how to create an "updated" Voodoo Lines script? I have one original copy from a few months ago but its since not updating new lines. This is the voodoo from simpler. Anyone interested in taking a crack at it?
 

AgentDoubleOhh

New member
I think I am understanding, but how far back would you look back to? For example, the current entry on QQQ is 120.5 and 72.5, which corresponds to the very start of the chart 20-year chart. However, that draws it far below where the QQQs are currently. So my question is, how do you know the next set of swings to use?
This! 👆 Anyone?
 

RajB

New member
Has anyone been able to figure out how to create an "updated" Voodoo Lines script? I have one original copy from a few months ago but its since not updating new lines. This is the voodoo from simpler. Anyone interested in taking a crack at it?
I am interested in taking a crack at it. I have been studying the syracuse pro and the NT8 code posted earlier and some wave theory. How can I contact you?
 

KG3344

New member
VIP
AgentDoubleOhh and RajB Let me know what you figure out. I have always been super interested in Voodoo lines. The problem is entering all the data for individual stocks would be crazy time-consuming. I bet there is a way to better codify Elliot wave theory where you wouldn't have to enter all that data manually.
 
Last edited:

AgentDoubleOhh

New member
AgentDoubleOhh and RajB Let me know what you figure out. I have always been super interested in Voodoo lines. The problem is entering all the data for individual stocks would be crazy time-consuming. I bet there is a way to better codify Elliot wave theory where you wouldn't have to enter all that data manually.
So I have this but its old... and I know how to update it I just don't know what start and end numbers to use.

Code:
# Automatic Opening Range and Fibonacci Levels
# By Prospectus @ https://readtheprospectus.wordpress.com
# Inspired by Trader-X @ http://traderx.blogspot.com
#
# This Thinkscript is designed to plot the OR high, low,
# 50% fib retrace, and fib extensions for the current day.
# This will only work correctly on time-based charts,
# where the OR timeframe is divisible by the bar period
# e.g. 30 minute OR, 10 min bars. An extra fib extension
# may be used if desired to create a target zone.
#
def na=double.nan;
#
# Define time that OR begins (in hhmm format,
# 0930 is the default):
#
input ORBegin = 0930;
#
# Define time that OR is finished (in hhmm format,
# 10:00 is the default):
#
input OREnd = 1000;
#
# Input first and second fib extension levels
# (default 1.382, 1.621):
#
Input FibExt1=1.382;
Input FibExt2=1.621;
#
# Show Today only? (Default Yes)
#
input ShowTodayOnly={"No", default "Yes"};
def s=ShowTodayOnly;
#
# Show Second fib extension? (Default No)
#
input ShowFibExt2={default "No", "Yes"};
def sf2=ShowFibExt2;
#
# Create logic for OR definition:
#
Def ORActive = if secondstilltime(OREnd)>0 AND secondsfromtime(ORBegin)>=0 then 1 else 0;
#
# Create logic to paint only current day post-open:
#
def today=if s==0 OR getday()==getlastday() AND secondsfromtime(ORBegin)>=0 then 1 else 0;
#
# Track OR High:
#
Rec ORHigh = if ORHigh[1]==0 or ORActive[1]==0 AND ORActive==1 then high else if ORActive AND high>ORHigh[1] then high else ORHigh[1];
#
# Track OR Low:
#
Rec ORLow = if ORLow[1]==0 or ORActive[1]==0 AND ORActive==1 then low else if ORActive AND low<ORLow[1] then low else ORLow[1];
#
# Calculate OR width:
#
Def ORWidth = ORHigh - ORLow;
#
# Calculate fib levels:
#
Def fib_mid = (ORHigh+ORLow)/2;
Def fib_ext_up1 = ORHigh + ORWidth*(FibExt1 - 1);
Def fib_ext_down1 = ORLow - ORWidth*(FibExt1 - 1);
Def fib_ext_up2= ORHigh + ORWidth*(FibExt2 - 1);
Def fib_ext_down2 = ORLow - ORWidth*(FibExt2 - 1);
#
# Define all the plots:
#
Plot ORH=if ORActive OR today<1 then na else ORHigh;
Plot ORL=if ORActive OR today<1 then na else ORLow;
Plot FibMid=if ORActive OR today<1 then na else fib_mid;
Plot FibExtUp1=if ORActive OR today<1 then na else fib_ext_up1;
Plot FibExtDown1=if ORActive OR today<1 then na else fib_ext_down1;
Plot FibExtUp2=if ORActive OR today<1 OR sf2<1 then na else fib_ext_up2;
Plot FibExtDown2=if ORActive OR today<1 OR sf2<1 then na else fib_ext_down2;
#
# Formatting:
#
ORH.setdefaultcolor(color.green);
ORH.setStyle(curve.Long_DASH);
ORH.setlineweight(3);
ORL.setdefaultcolor(color.red);
ORL.setStyle(curve.Long_DASH);
ORL.setlineweight(3);
FibMid.setdefaultcolor(color.gray);
FibMid.setStyle(curve.SHORT_DASH);
FibMid.setlineweight(3);
FibExtUp1.setdefaultcolor(color.green);
FibExtUp1.setStyle(curve.SHORT_DASH);
FibExtUp1.setlineweight(2);
FibExtDown1.setdefaultcolor(color.red);
FibExtDown1.setStyle(curve.SHORT_DASH);
FibExtDown1.setlineweight(2);
FibExtUp2.setdefaultcolor(color.green);
FibExtUp2.setStyle(curve.SHORT_DASH);
FibExtUp2.setlineweight(1);
FibExtDown2.setdefaultcolor(color.red);
FibExtDown2.setStyle(curve.SHORT_DASH);
FibExtDown2.setlineweight(1);
 

KG3344

New member
VIP
So I have this but its old... and I know how to update it I just don't know what start and end numbers to use.

Code:
# Automatic Opening Range and Fibonacci Levels
# By Prospectus @ https://readtheprospectus.wordpress.com
# Inspired by Trader-X @ http://traderx.blogspot.com
#
# This Thinkscript is designed to plot the OR high, low,
# 50% fib retrace, and fib extensions for the current day.
# This will only work correctly on time-based charts,
# where the OR timeframe is divisible by the bar period
# e.g. 30 minute OR, 10 min bars. An extra fib extension
# may be used if desired to create a target zone.
#
def na=double.nan;
#
# Define time that OR begins (in hhmm format,
# 0930 is the default):
#
input ORBegin = 0930;
#
# Define time that OR is finished (in hhmm format,
# 10:00 is the default):
#
input OREnd = 1000;
#
# Input first and second fib extension levels
# (default 1.382, 1.621):
#
Input FibExt1=1.382;
Input FibExt2=1.621;
#
# Show Today only? (Default Yes)
#
input ShowTodayOnly={"No", default "Yes"};
def s=ShowTodayOnly;
#
# Show Second fib extension? (Default No)
#
input ShowFibExt2={default "No", "Yes"};
def sf2=ShowFibExt2;
#
# Create logic for OR definition:
#
Def ORActive = if secondstilltime(OREnd)>0 AND secondsfromtime(ORBegin)>=0 then 1 else 0;
#
# Create logic to paint only current day post-open:
#
def today=if s==0 OR getday()==getlastday() AND secondsfromtime(ORBegin)>=0 then 1 else 0;
#
# Track OR High:
#
Rec ORHigh = if ORHigh[1]==0 or ORActive[1]==0 AND ORActive==1 then high else if ORActive AND high>ORHigh[1] then high else ORHigh[1];
#
# Track OR Low:
#
Rec ORLow = if ORLow[1]==0 or ORActive[1]==0 AND ORActive==1 then low else if ORActive AND low<ORLow[1] then low else ORLow[1];
#
# Calculate OR width:
#
Def ORWidth = ORHigh - ORLow;
#
# Calculate fib levels:
#
Def fib_mid = (ORHigh+ORLow)/2;
Def fib_ext_up1 = ORHigh + ORWidth*(FibExt1 - 1);
Def fib_ext_down1 = ORLow - ORWidth*(FibExt1 - 1);
Def fib_ext_up2= ORHigh + ORWidth*(FibExt2 - 1);
Def fib_ext_down2 = ORLow - ORWidth*(FibExt2 - 1);
#
# Define all the plots:
#
Plot ORH=if ORActive OR today<1 then na else ORHigh;
Plot ORL=if ORActive OR today<1 then na else ORLow;
Plot FibMid=if ORActive OR today<1 then na else fib_mid;
Plot FibExtUp1=if ORActive OR today<1 then na else fib_ext_up1;
Plot FibExtDown1=if ORActive OR today<1 then na else fib_ext_down1;
Plot FibExtUp2=if ORActive OR today<1 OR sf2<1 then na else fib_ext_up2;
Plot FibExtDown2=if ORActive OR today<1 OR sf2<1 then na else fib_ext_down2;
#
# Formatting:
#
ORH.setdefaultcolor(color.green);
ORH.setStyle(curve.Long_DASH);
ORH.setlineweight(3);
ORL.setdefaultcolor(color.red);
ORL.setStyle(curve.Long_DASH);
ORL.setlineweight(3);
FibMid.setdefaultcolor(color.gray);
FibMid.setStyle(curve.SHORT_DASH);
FibMid.setlineweight(3);
FibExtUp1.setdefaultcolor(color.green);
FibExtUp1.setStyle(curve.SHORT_DASH);
FibExtUp1.setlineweight(2);
FibExtDown1.setdefaultcolor(color.red);
FibExtDown1.setStyle(curve.SHORT_DASH);
FibExtDown1.setlineweight(2);
FibExtUp2.setdefaultcolor(color.green);
FibExtUp2.setStyle(curve.SHORT_DASH);
FibExtUp2.setlineweight(1);
FibExtDown2.setdefaultcolor(color.red);
FibExtDown2.setStyle(curve.SHORT_DASH);
FibExtDown2.setlineweight(1);
Well, that isn't really an Elliot wave indicator. That's more of a standard opening range indicator. Looks like it works fine on an intraday chart, so not sure what you mean by changing the start and end inputs.
 

KG3344

New member
VIP
Oooooops!! Wrong one. Here you go
Ok so played around with it for a while, and found that basically, the numbers are formatted like 00000xxxx000xxxx. The first row of x's is the high of the Elliot wave to two decimal places and the second row is the low value. I am not sure why but sometimes that is reversed and the lower value is first. The only other thing that changes is the first string of 00000. It is either 10000, 11000, 10000, 00000, 12000, and it changes the spacing of the lines. You really just need some method of finding those two inputs.

@RajB and @AgentDoubleOhh if either of you has a discord I would be down to message more about it. It's kinda hard to get much progress in a thread.
 
Last edited:

BenTen's Watchlist + Setup + Trade Recaps

Get access to Ben's watchlist, swing trading strategy, ThinkorSwim setup, and trade examples.

Learn more

Similar threads

Top