NexusFi: Find Your Edge


Home Menu

 





VSA for ThinkorSwim


Discussion in ThinkOrSwim

Updated
      Top Posters
    1. looks_one snowcloud with 93 posts (25 thanks)
    2. looks_two StockJock with 91 posts (27 thanks)
    3. looks_3 cbritton with 37 posts (71 thanks)
    4. looks_4 swimtrader with 22 posts (19 thanks)
      Best Posters
    1. looks_one Hornblower with 2.3 thanks per post
    2. looks_two cbritton with 1.9 thanks per post
    3. looks_3 StockJock with 0.3 thanks per post
    4. looks_4 snowcloud with 0.3 thanks per post
    1. trending_up 310,549 views
    2. thumb_up 223 thanks given
    3. group 86 followers
    1. forum 434 posts
    2. attach_file 131 attachments




 
Search this Thread

VSA for ThinkorSwim

  #271 (permalink)
dqbuzz
USA
 
Posts: 11 since Sep 2010
Thanks Given: 5
Thanks Received: 1

One thing I have noticed on the color bars....I will usually go long off red bars at S/R or 50%/61.8 fib levels and short off green candles at S/R or 50/61.8 levels. Seems to be fairly consistant. I kind of view all other colors as noise. Also a point of intrest, Gavin Holmes will doing a VSA webinar with Infinity Futures this Wed., Dec 7, 1 PM for anyone interested. I do not have enough posts here to provide a link so go to Infinity to registar for the event.

Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Quantum physics & Trading dynamics
The Elite Circle
Better Renko Gaps
The Elite Circle
ZombieSqueeze
Platforms and Indicators
REcommedations for programming help
Sierra Chart
Cheap historycal L1 data for stocks
Stocks and ETFs
 
  #272 (permalink)
morrisix
Detroit
 
Posts: 3 since Oct 2010
Thanks Given: 0
Thanks Received: 0

I believe the use for the colored bars is more in the value of "looking back in time." When looking back, you know what the short term, med term , and long term trends were at that specific time.

Reply With Quote
  #273 (permalink)
StockJock
Chicago + Illinois/USA
 
Posts: 256 since Aug 2010
Thanks Given: 15
Thanks Received: 154


morrisix,

How do you use that information in your trading decisions?

Reply With Quote
  #274 (permalink)
dqbuzz
USA
 
Posts: 11 since Sep 2010
Thanks Given: 5
Thanks Received: 1


morrisix View Post
I believe the use for the colored bars is more in the value of "looking back in time." When looking back, you know what the short term, med term , and long term trends were at that specific time.


Yes you may, but that info is also available on the bars in the upper left corner. I also lengthened out the time frame to a 50 period. (less signals but still reliable).

Reply With Quote
  #275 (permalink)
morrisix
Detroit
 
Posts: 3 since Oct 2010
Thanks Given: 0
Thanks Received: 0


dqbuzz View Post
Yes you may, but that info is also available on the bars in the upper left corner. I also lengthened out the time frame to a 50 period. (less signals but still reliable).

dqbuzz, What time frame do you use or like best? I use 5 min mainly, but also the 15Min time frame. Also any particular setups / signals that you prefer? I have noticed the best signals for me are the Test for supply (white box) followed by the successful test (blue triangle.) Especially on the 15 min. Maybe we should post some charts of nice setups we have seen or used. Would like to keep this thread going.

Reply With Quote
  #276 (permalink)
dqbuzz
USA
 
Posts: 11 since Sep 2010
Thanks Given: 5
Thanks Received: 1


morrisix View Post
dqbuzz, What time frame do you use or like best? I use 5 min mainly, but also the 15Min time frame. Also any particular setups / signals that you prefer? I have noticed the best signals for me are the Test for supply (white box) followed by the successful test (blue triangle.) Especially on the 15 min. Maybe we should post some charts of nice setups we have seen or used. Would like to keep this thread going.

For better or worse here goes. I am new so please be patient with me. I trade off the 1, 2, and 5 min charts. I review the 15 min, 1hr, 4 hr, and daily for analysis also. I include various fib studies along with a full stoch on the 1 & 2 min charts. I start with fib price levels off of swing highs and swing lows, also S/R areas which price has respected. Here is a 4hr chart showing this. the red lines are off the swing high and the brown lines are off the swing low. White are S/R levels. I am going to do this in multiple posts as this is the third attempt as a response. I must have been trying to do too much in one post.... TechSmith | Screencast.com, online video sharing, 2010-12-09_2341

Reply With Quote
  #277 (permalink)
dqbuzz
USA
 
Posts: 11 since Sep 2010
Thanks Given: 5
Thanks Received: 1


dqbuzz View Post
For better or worse here goes. I am new so please be patient with me. I trade off the 1, 2, and 5 min charts. I review the 15 min, 1hr, 4 hr, and daily for analysis also. I include various fib studies along with a full stoch on the 1 & 2 min charts. I start with fib price levels off of swing highs and swing lows, also S/R areas which price has respected. Here is a 4hr chart showing this. the red lines are off the swing high and the brown lines are off the swing low. White are S/R levels. I am going to do this in multiple posts as this the third attempt as a response. I must have been trying to do too much in one post.... TechSmith | Screencast.com, online video sharing, 2010-12-09_2341


Here is a 5 min chart off the swing highs..... TechSmith | Screencast.com, online video sharing, 2010-12-10_0115
Same chart with the VSA.... TechSmith | Screencast.com, online video sharing, 2010-12-10_0118

Reply With Quote
  #278 (permalink)
dqbuzz
USA
 
Posts: 11 since Sep 2010
Thanks Given: 5
Thanks Received: 1




OK...here is the 1 min chart on the 144 pip Dec 2nd move arrowed in the last chart. The move started with stopping volume and a successful test of supply (the following bar closed higher than the test bar) at a fib price level (on red candles which I like for longs). Notice how price rested at the 144 pip level (3112) but the VSA gave no signals of weakness. Price also rested on the S/R level of 3150. VSA showed a down arrow but no upthrust. The move retraced on stopping volume with an upthrust at a fib price level of 3201 (on green candles which I also like for exits or short entries). Price did move on up to its -.236 target on a 50% fib pull which is not shown here. I hope this helps in some small way. What I am really looking forward to is how others in this thread use the VSA in their own setups. Thanks to all who have contributed to this topic. Happy Holidays.

Buzz...... TechSmith | Screencast.com, online video sharing, 2010-12-10_0134

Reply With Quote
  #279 (permalink)
dqbuzz
USA
 
Posts: 11 since Sep 2010
Thanks Given: 5
Thanks Received: 1


dqbuzz View Post
OK...here is the 1 min chart on the 144 pip Dec 2nd move arrowed in the last chart. The move started with stopping volume and a successful test of supply (the following bar closed higher than the test bar) at a fib price level (on red candles which I like for longs). Notice how price rested at the 144 pip level (3112) but the VSA gave no signals of weakness. Price also rested on the S/R level of 3150. VSA showed a down arrow but no upthrust. The move retraced on stopping volume with an upthrust at a fib price level of 3201 (on green candles which I also like for exits or short entries). Price did move on up to its -.236 target on a 50% fib pull which is not shown here. I hope this helps in some small way. What I am really looking forward to is how others in this thread use the VSA in their own setups. Thanks to all who have contributed to this topic. Happy Holidays.

Buzz...... TechSmith | Screencast.com, online video sharing, 2010-12-10_0134

Just opened charts....here is a 50% retrace DH teaches......pull 1.3157 (swing low) to 1.3278 (swing high)..5 min chart, enter 1.3218 on stopping volume. 1.3307 is the .236 target. Test is the 50 short shown and the swing high itself. Yes, I missed it!.... TechSmith | Screencast.com, online video sharing, 2010-12-10_0403

Reply With Quote
  #280 (permalink)
 
marcovth's Avatar
 marcovth 
Canada
 
Experience: Advanced
Platform: Sierra Chart
Trading: ES,6E
Posts: 25 since Jun 2010
Thanks Given: 1
Thanks Received: 30


Hello ...

I think I found a nice way to normalize OFF-Market (nightly) volume bars. In other words, to bring the tiny nightly volume bars within the same range as the Market (day time) volume bars. This picture attempts to explain that ...




 
Code
declare on_volume;
declare real_size;


#######
# Arguments
input AvgVolumeType = {default Normalized_Nightly, EMA, Day_Night_Split, Hourly_Avg };
input volumeEMALength = 500;


def MarketsHours = if (secondsFromTime(0930) >= 0) and (secondsTillTime(1610) >= 0) then yes else no;

def Hour00 = if (secondsFromTime(0000) >= 0) and (secondsTillTime(0100) > 0) then yes else no;
def Hour01 = if (secondsFromTime(0100) >= 0) and (secondsTillTime(0200) > 0) then yes else no;
def Hour02 = if (secondsFromTime(0200) >= 0) and (secondsTillTime(0300) > 0) then yes else no;
def Hour03 = if (secondsFromTime(0300) >= 0) and (secondsTillTime(0400) > 0) then yes else no;
def Hour04 = if (secondsFromTime(0400) >= 0) and (secondsTillTime(0500) > 0) then yes else no;
def Hour05 = if (secondsFromTime(0500) >= 0) and (secondsTillTime(0600) > 0) then yes else no;
def Hour06 = if (secondsFromTime(0600) >= 0) and (secondsTillTime(0700) > 0) then yes else no;
def Hour07 = if (secondsFromTime(0700) >= 0) and (secondsTillTime(0800) > 0) then yes else no;
def Hour08 = if (secondsFromTime(0800) >= 0) and (secondsTillTime(0900) > 0) then yes else no;
def Hour09 = if (secondsFromTime(0900) >= 0) and (secondsTillTime(0930) > 0) then yes else no;
def Hour930 = if (secondsFromTime(0930) >= 0) and (secondsTillTime(1000) > 0) then yes else no;
def Hour10 = if (secondsFromTime(1000) >= 0) and (secondsTillTime(1100) > 0) then yes else no;
def Hour11 = if (secondsFromTime(1100) >= 0) and (secondsTillTime(1200) > 0) then yes else no;
def Hour12 = if (secondsFromTime(1200) >= 0) and (secondsTillTime(1300) > 0) then yes else no;
def Hour13 = if (secondsFromTime(1300) >= 0) and (secondsTillTime(1400) > 0) then yes else no;
def Hour14 = if (secondsFromTime(1400) >= 0) and (secondsTillTime(1500) > 0) then yes else no;
def Hour15 = if (secondsFromTime(1500) >= 0) and (secondsTillTime(1600) > 0) then yes else no;
def Hour16 = if (secondsFromTime(1600) >= 0) and (secondsTillTime(1630) > 0) then yes else no;
def Hour1630 = if (secondsFromTime(1630) >= 0) and (secondsTillTime(1700) > 0) then yes else no;
def Hour17 = if (secondsFromTime(1700) >= 0) and (secondsTillTime(1800) > 0) then yes else no;
def Hour18 = if (secondsFromTime(1800) >= 0) and (secondsTillTime(1900) > 0) then yes else no;
def Hour19 = if (secondsFromTime(1900) >= 0) and (secondsTillTime(2000) > 0) then yes else no;
def Hour20 = if (secondsFromTime(2000) >= 0) and (secondsTillTime(2100) > 0) then yes else no;
def Hour21 = if (secondsFromTime(2100) >= 0) and (secondsTillTime(2200) > 0) then yes else no;
def Hour22 = if (secondsFromTime(2200) >= 0) and (secondsTillTime(2300) > 0) then yes else no;
def Hour23 = if (secondsFromTime(2300) >= 0) and (secondsTillTime(2359) >= 0) then yes else no;


rec SumVol00 = if Hour00 then SumVol00[1] + volume else SumVol00[1];
rec nBarsHour00 = if Hour00 then nBarsHour00[1] + 1 else nBarsHour00[1];
def AvgVolHour00 = SumVol00 / nBarsHour00;

rec SumVol01 = if Hour01 then SumVol01[1] + volume else SumVol01[1];
rec nBarsHour01 = if Hour01 then nBarsHour01[1] + 1 else nBarsHour01[1];
def AvgVolHour01 = SumVol01 / nBarsHour01;

rec SumVol02 = if Hour02 then SumVol02[1] + volume else SumVol02[1];
rec nBarsHour02 = if Hour02 then nBarsHour02[1] + 1 else nBarsHour02[1];
def AvgVolHour02 = SumVol02 / nBarsHour02;

rec SumVol03 = if Hour03 then SumVol03[1] + volume else SumVol03[1];
rec nBarsHour03 = if Hour03 then nBarsHour03[1] + 1 else nBarsHour03[1];
def AvgVolHour03 = SumVol03 / nBarsHour03;

rec SumVol04 = if Hour04 then SumVol04[1] + volume else SumVol04[1];
rec nBarsHour04 = if Hour04 then nBarsHour04[1] + 1 else nBarsHour04[1];
def AvgVolHour04 = SumVol04 / nBarsHour04;

rec SumVol05 = if Hour05 then SumVol05[1] + volume else SumVol05[1];
rec nBarsHour05 = if Hour05 then nBarsHour05[1] + 1 else nBarsHour05[1];
def AvgVolHour05 = SumVol05 / nBarsHour05;

rec SumVol06 = if Hour06 then SumVol06[1] + volume else SumVol06[1];
rec nBarsHour06 = if Hour06 then nBarsHour06[1] + 1 else nBarsHour06[1];
def AvgVolHour06 = SumVol06 / nBarsHour06;

rec SumVol07 = if Hour07 then SumVol07[1] + volume else SumVol07[1];
rec nBarsHour07 = if Hour07 then nBarsHour07[1] + 1 else nBarsHour07[1];
def AvgVolHour07 = SumVol07 / nBarsHour07;

rec SumVol08 = if Hour08 then SumVol08[1] + volume else SumVol08[1];
rec nBarsHour08 = if Hour08 then nBarsHour08[1] + 1 else nBarsHour08[1];
def AvgVolHour08 = SumVol08 / nBarsHour08;

rec SumVol09 = if Hour09 then SumVol09[1] + volume else SumVol09[1];
rec nBarsHour09 = if Hour09 then nBarsHour09[1] + 1 else nBarsHour09[1];
def AvgVolHour09 = SumVol09 / nBarsHour09;

rec SumVol930 = if Hour930 then SumVol930[1] + volume else SumVol930[1];
rec nBarsHour930 = if Hour930 then nBarsHour930[1] + 1 else nBarsHour930[1];
def AvgVolHour930 = SumVol930 / nBarsHour930;

rec SumVol10 = if Hour10 then SumVol10[1] + volume else SumVol10[1];
rec nBarsHour10 = if Hour10 then nBarsHour10[1] + 1 else nBarsHour10[1];
def AvgVolHour10 = SumVol10 / nBarsHour10;

rec SumVol11 = if Hour11 then SumVol11[1] + volume else SumVol11[1];
rec nBarsHour11 = if Hour11 then nBarsHour11[1] + 1 else nBarsHour11[1];
def AvgVolHour11 = SumVol11 / nBarsHour11;

rec SumVol12 = if Hour12 then SumVol12[1] + volume else SumVol12[1];
rec nBarsHour12 = if Hour12 then nBarsHour12[1] + 1 else nBarsHour12[1];
def AvgVolHour12 = SumVol12 / nBarsHour12;

rec SumVol13 = if Hour13 then SumVol13[1] + volume else SumVol13[1];
rec nBarsHour13 = if Hour13 then nBarsHour13[1] + 1 else nBarsHour13[1];
def AvgVolHour13 = SumVol13 / nBarsHour13;

rec SumVol14 = if Hour14 then SumVol14[1] + volume else SumVol14[1];
rec nBarsHour14 = if Hour14 then nBarsHour14[1] + 1 else nBarsHour14[1];
def AvgVolHour14 = SumVol14 / nBarsHour14;

rec SumVol15 = if Hour15 then SumVol15[1] + volume else SumVol15[1];
rec nBarsHour15 = if Hour15 then nBarsHour15[1] + 1 else nBarsHour15[1];
def AvgVolHour15 = SumVol15 / nBarsHour15;

rec SumVol16 = if Hour16 then SumVol16[1] + volume else SumVol16[1];
rec nBarsHour16 = if Hour16 then nBarsHour16[1] + 1 else nBarsHour16[1];
def AvgVolHour16 = SumVol16 / nBarsHour16;

rec SumVol1630 = if Hour1630 then SumVol1630[1] + volume else SumVol1630[1];
rec nBarsHour1630 = if Hour1630 then nBarsHour1630[1] + 1 else nBarsHour1630[1];
def AvgVolHour1630 = SumVol1630 / nBarsHour1630;

rec SumVol17 = if Hour17 then SumVol17[1] + volume else SumVol17[1];
rec nBarsHour17 = if Hour17 then nBarsHour17[1] + 1 else nBarsHour17[1];
def AvgVolHour17 = SumVol17 / nBarsHour17;

rec SumVol18 = if Hour18 then SumVol18[1] + volume else SumVol18[1];
rec nBarsHour18 = if Hour18 then nBarsHour18[1] + 1 else nBarsHour18[1];
def AvgVolHour18 = SumVol18 / nBarsHour18;

rec SumVol19 = if Hour19 then SumVol19[1] + volume else SumVol19[1];
rec nBarsHour19 = if Hour19 then nBarsHour19[1] + 1 else nBarsHour19[1];
def AvgVolHour19 = SumVol19 / nBarsHour19;

rec SumVol20 = if Hour20 then SumVol20[1] + volume else SumVol20[1];
rec nBarsHour20 = if Hour20 then nBarsHour20[1] + 1 else nBarsHour20[1];
def AvgVolHour20 = SumVol20 / nBarsHour20;

rec SumVol21 = if Hour21 then SumVol21[1] + volume else SumVol21[1];
rec nBarsHour21 = if Hour21 then nBarsHour21[1] + 1 else nBarsHour21[1];
def AvgVolHour21 = SumVol21 / nBarsHour21;

rec SumVol22 = if Hour22 then SumVol22[1] + volume else SumVol22[1];
rec nBarsHour22 = if Hour22 then nBarsHour22[1] + 1 else nBarsHour22[1];
def AvgVolHour22 = SumVol22 / nBarsHour22;

rec SumVol23 = if Hour23 then SumVol23[1] + volume else SumVol23[1];
rec nBarsHour23 = if Hour23 then nBarsHour23[1] + 1 else nBarsHour23[1];
def AvgVolHour23 = SumVol23 / nBarsHour23;

rec SumVolMarketsHours = if MarketsHours then SumVolMarketsHours[1] + volume else SumVolMarketsHours[1];
rec nBarsMarketsHours = if MarketsHours then nBarsMarketsHours[1] + 1 else nBarsMarketsHours[1];
def AvgVolMarketsHours = SumVolMarketsHours / nBarsMarketsHours;

rec SumVolOFFMarketsHours = if !MarketsHours then SumVolOFFMarketsHours[1] + volume else SumVolOFFMarketsHours[1];
rec nBarsOFFMarketsHours = if !MarketsHours then nBarsOFFMarketsHours[1] + 1 else nBarsOFFMarketsHours[1];
def AvgVolOFFMarketsHours = SumVolOFFMarketsHours / nBarsOFFMarketsHours;

def AvgVolHourly=
if Hour00 then AvgVolHour00 else
if Hour01 then AvgVolHour01 else
if Hour02 then AvgVolHour02 else
if Hour03 then AvgVolHour03 else
if Hour04 then AvgVolHour04 else
if Hour05 then AvgVolHour05 else
if Hour06 then AvgVolHour06 else
if Hour07 then AvgVolHour07 else
if Hour08 then AvgVolHour08 else
if Hour09 then AvgVolHour09 else
if Hour930 then AvgVolHour930 else
if Hour10 then AvgVolHour10 else
if Hour11 then AvgVolHour11 else
if Hour12 then AvgVolHour12 else
if Hour13 then AvgVolHour13 else
if Hour14 then AvgVolHour14 else
if Hour15 then AvgVolHour15 else
if Hour16 then AvgVolHour16 else
if Hour1630 then AvgVolHour1630 else
if Hour17 then AvgVolHour17 else
if Hour18 then AvgVolHour18 else
if Hour19 then AvgVolHour19 else
if Hour20 then AvgVolHour20 else
if Hour21 then AvgVolHour21 else
if Hour22 then AvgVolHour22 else
if Hour23 then AvgVolHour23 else
 double.nan;

plot AvgVolDailyMarketHrs = if MarketsHours then AvgVolMarketsHours else double.nan;
plot AvgVolNightlyOFFMarketHrs = if !MarketsHours then AvgVolOFFMarketsHours else double.nan;

plot AvgVolHourlyBars=AvgVolHourly;

# Calculate Volume moving average and it's standard deviation
rec sAvgVolume =  compoundValue(volumeEMALength, Average(volume, volumeEMALength), Double.NaN);
def sAvgVolumeSTD = stdev(sAvgVolume, volumeEMALength);

#def normVol= if !MarketsHours then volume*(AvgVolMarketsHours/AvgVolOFFMarketsHours) else volume;
rec normVol= if !MarketsHours then volume*(AvgVolMarketsHours/AvgVolHourly) else volume;
def AvgNormVol=Average(normVol, volumeEMALength);

def AvgVol=
if AvgVolumeType==AvgVolumeType.Hourly_Avg then AvgVolHourly
else if AvgVolumeType==AvgVolumeType.EMA then sAvgVolume
else if AvgVolumeType==AvgVolumeType.Normalized_Nightly then AvgNormVol
else if MarketsHours then AvgVolMarketsHours 
else AvgVolOFFMarketsHours
;


def UHline =if AvgVolumeType==AvgVolumeType.EMA then sAvgVolume[0] + 2.0 * sAvgVolumeSTD else AvgVol + (AvgVol * 1);
def VHline =if AvgVolumeType==AvgVolumeType.EMA then sAvgVolume[0] + 1.0 * sAvgVolumeSTD else AvgVol + (AvgVol * 0.65);
def Hline =if AvgVolumeType==AvgVolumeType.EMA then sAvgVolume[0] else AvgVol + (AvgVol * 0.15);
def Lline =if AvgVolumeType==AvgVolumeType.EMA then sAvgVolume[0] - 1.0 * sAvgVolumeSTD else AvgVol - (AvgVol * 0.15);
def VLline =if AvgVolumeType==AvgVolumeType.EMA then sAvgVolume[0] - 2.0 * sAvgVolumeSTD else AvgVol - (AvgVol * 0.65);
def zeroline = 0;


AddCloud(VHline, UHline, color.pink, color.pink);
AddCloud(Hline, VHline, color.MAGENTA, color.MAGENTA);
AddCloud(Lline, Hline, color.BLUE, color.BLUE);
AddCloud(VLline, Lline, color.MAGENTA, color.MAGENTA);
AddCloud(zeroline, VLline, color.pink, color.pink);


plot normVolPlot= if !MarketsHours && AvgVolumeType==AvgVolumeType.Normalized_Nightly then normVol else double.nan;
normVolPlot.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
normVolPlot.SetDefaultColor(color.orange);
normVolPlot.SetLineWeight(3);

plot AvgNormVolPlot=AvgNormVol;
AvgNormVolPlot.SetDefaultColor(color.red);
AvgNormVolPlot.SetLineWeight(3);

Reply With Quote
Thanked by:




Last Updated on May 21, 2023


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts