Get Updates:
Email
Twitter
RSS

In an effort to reduce the processor load incurred by these studies I have separated the daily version of the Volume and TPO Profiles into separate studies for 1) today only and 2) all historical days. The update is posted in the PRO Subscriber area of the forum as usual. Here is an updated video on how to set up the now three variations of the studies.

After numerous subscriber requests, I put together a daily version of both the Volume Profile and TPO Profile scripts. Whereas the original profile studies total all data displayed on the current TOS chart, the new versions will display only one day’s data and the associated profile. The daily volume point of control (VPOC) is shown as the yellow bar. I have modified the original Volume and TPO Profile studies to allow the user to move them further to the right to mitigate the overlap when running concurrently with the new daily version. Note: Subscriber update has been posted to the forum along with setup instructions.

Daily Volume Profile

Daily Volume Profile


Daily TPO Profile

Daily TPO Profile

GoProButton

UPDATE: This looks to be a much easier way to accomplish the $TICK alerts without use of a complex formula. I’ll leave the Complex Alert methodology below as a reference.

1) Just set up a TOS alert like you would for any other symbol (i.e. LAST at or above 1000/ at or below -1000), check “Recreate alert for reverse crossover” and customize the sound if desired.
TA

___________________________________________________
Thanks to an email from TOS’ Guido passed along to me, we now have a way to have audible $TICK alerts in TOS that reset automatically. Here are the basic steps:

1. Go to the Market Watch Tab and enter the symbol $TICK
2. Press the Study Alert button
TA1
3. Choose Complex Formula
4. In the formula box enter either high > 1000 or low < -1000 (Substitute your own thresholds as required). You’ll need a separate alert for the high and low $TICK
5. Change the Tigger if to Above 0.50
6. Select 1m for the aggregation period
7. Press Create Alert
TA2
8. Back in the Alert Book, right click on the word “Active” in the status column and select “Cancel/Replace Alert”
TA3
9. Click the little gear at the far right of the new alert
10. Check “Recreate alert for reverse crossover” and customize the sound if desired.
11. Ensure the threshold value is still 0.5 (mine resets to 0 – Might be able to skip step 5)
12. Hit OK and then Create Alert
TA4
Three cheers for TOS and Guido for listening to our requests.

DT Oscillator

Here’s a Saturday evening quickie. Lou dropped into the forum last week looking for a simple thinkScript conversion of the DT Oscillator code he had. It’s pretty basic but I thought I’d post it here in case you missed it in the forum. In essence it is just another version of the Stochastic RSI. I’ve been a bit quiet these days in the forum as I have spent a fair amount of time deep in the ThinkScripter laboratory cooking up some new goodies for you all. A careful examination of the price pane will reveal that the daily version of the Volume Profile is nearly complete. Stay tuned….

DT Oscillator

DT Oscillator

# TS_DTOscillator thinkScript translation by ThinkScripter
# http://www.thinkscripter.com
# thinkscripter@gmail.com
# Last Update 15 OCT 2009

declare lower;

input RSIPeriod = 13;
input StochasticPeriod=8;
input MAType = {default SMA,EMA};
input KPeriod = 5;
input DPeriod = 3;
input upper = 70;
input lower = 30;

def StoRSI= 100*(( RSIWilder( RSIPeriod) - lowest( RSIWilder( RSIPeriod ) , StochasticPeriod ) ) / ( (
highest( RSIWilder( RSIPeriod) , StochasticPeriod ) ) - lowest(RSIWilder( RSIPeriod ), StochasticPeriod ) )
);

def SK;
def SD;

Switch (MAType){
case SMA:
SK=average(StoRSI,KPeriod);
SD=average(SK,Dperiod);
case EMA:
SK=ExpAverage(StoRSI,KPeriod);
SD=ExpAverage(SK,DPeriod);
}

Plot DTOscSK = SK;
DTOscSK.setDefaultColor(color.blue);
plot DTOscSD = SD;
DTOscSD.setDefaultCOlor(color.gray);
DTOscSD.setStyle(curve.SHORT_DASH);
plot zero = 50;
zero.setDefaultColor(color.white);
plot UpperL = upper;
UpperL.setDefaultColor(color.red);
plot LowerL = lower;
lowerL.setDefaultColor(color.green);

$TICK Range

NOTE:The original post of the code had the > signs swapped with < signs and is now fixed.
Here’s one for the folks over at EminiAddict and followers of Dave Halsey’s methods. This study is designed only to run on an intraday chart of the $TICK. The day’s range is indicated by the red and green horizontal envelope. Each new high TICK (NHT) or new low TICK (NLT) will push the envelope lines out giving you a handy reference. Extreme TICK readings above user-selectable thresholds are additionally tagged with a yellow triangle. The white line in the center is a 20 period moving average linked to Bollinger Bands in gray. The chart itself is set to a one minute bar chart. The color of the bars changes in response to the TICK moving average above or below the zero line. I added a TPO Profile to the chart as I found it interesting how symmetrical today’s $TICK distribution was. Enjoy – Eric

NOTE: If you are having trouble pasting this code into the TOS Script Editor (i.e. lots of errors), paste the code into a text editor like Notepad first, then copy and paste into TOS from there. This will strip out any hidden formatting that makes the script editor puke.

$TICK Range

$TICK Range

# TICKRANGE
# http://www.thinkscripter.com
# thinkscripter@gmail.com
# Last Update 30 SEP 2009
# For use on charts of $TICK only

input showOnlyToday = YES;
input Market_Open_Time = 0930;
input Market_Close_Time = 1600;
input tickAveragePeriod = 20;
input bollingerBandFactor = 2.0;

def day = getDay();
def lastDay = getLastDay();
def isToday = if(day==lastDay,1,0);
def shouldPlot = if(showOnlyToday and isToday, 1,if(!showOnlyToday,1,0));

def pastOpen = if((secondsTillTime(Market_Open_Time) > 0), 0,1);
def pastClose = if((secondsTillTime(Market_Close_Time) > 0), 0,1);
def marketOpen = if(pastOpen and !pastClose, 1, 0);
def firstBar =if (day[1] != day, day-1, 0);

rec regHoursHigh = if(high > regHoursHigh[1] and marketOpen, high, if(marketOpen and !firstBar, regHoursHigh[1], high));
plot TICK_High = if(marketOpen and shouldPlot, regHoursHigh, Double.nan);
TICK_High.SetDefaultColor(color.green);
TICK_High.SetLineWeight(1);

rec regHoursLow = if(low < regHoursLow[1] and marketOpen, low, if(marketOpen and !firstBar, regHoursLow[1],low));
plot TICK_Low = if(marketOpen and shouldPlot, regHoursLow, double.nan);
TICK_Low.SetLineWeight(1);
TICK_Low.setDefaultColor(color.red);

input HighThreshold = 1000;
input LowThreshold = -1000;

def tickDataLow = low("$TICK");
def tickDataHigh = high("$TICK");
def tickClose = close("$TICK");

def isLow = if((tickDataLow < LowThreshold), 1, 0);
def isHigh = if((tickDataHigh > HighThreshold), 1, 0);

plot ExtremeTick = if(isLow and !isHigh, low, if(isHigh and !isLow , high, double.nan));
ExtremeTick.setStyle(curve.POINTS);
ExtremeTick.setPaintingStrategy(paintingStrategy.LINE_VS_TRIANGLES);
ExtremeTick.setDefaultColor(color.yellow);
ExtremeTick.setLineWeight(3);

plot tickSMA = average(tickClose,tickAveragePeriod);
tickSMA.setLineWeight(3);
tickSMA.setDefaultColor(color.white);

def ticksDev = stdev(tickClose, tickAveragePeriod);

plot tickBBH = tickSMA+bollingerBandFactor*tickSDev;
tickBBH.setLineWeight(1);
tickBBH.setDefaultColor(color.dark_gray);

plot tickBBL = tickSMA-bollingerBandFactor*tickSDev;
tickBBL.setLineWeight(1);
tickBBL.setDefaultColor(color.dark_gray);

AssignPriceColor(if tickSMA >= 0 then color.green else color.red);

plot eHT = HighThreshold;
eHT.setDefaultColor(color.dark_gRAY);

plot eLT = LowThreshold;
eLT.setDefaultColor(color.dark_gRAY);

plot zero = 0;
zero.setDefaultColor(color.red);
zero.setLineWeight(2);

Older Posts »