Thursday, September 9, 2010

MarketProfile Targets

Green lines are High Value Areas (HVA) and Red lines are Low Value Areas (LVA).
This MarketProfile indicator plots Volume to Price Distribution.

Free MarketProfile code is a couple post below this one.

I discovered another use for it, you can find the market or sector leaders, when applied to a basket of symbols. I would like to make a video, as it's way to difficult to convey with words and a simple picture, even that will be difficult.

It's tricky to setup, I added some setup notes below this post.








How to use it:
1) Green levels are areas where price found value in the past, ie these levels become targets.

2) Red levels are areas where price didn't feel the love.
Potential levels to enter and aim for a high volume level target. Seems to me more often
than not price will either blast through or quickly chop before continuing on to the green
value level.
And some times the red levels are just as strong as the green levels, so buyer beware.

3) The histogram shows the bigger picture. Larger peaks are major value levels and where price
could end up at any time, typically price will chop around a bit before heading off to re-test
another level.
I like to smooth out or decrease the volume to price resolution "DeltaPrice" to
reduce the number of levels and make it easier to interpret the chart.

4) Breadth symbols seem to respond as well. Look for price and breadth to synchronize and then
find a leading indicator or indication such as divergence to enter.

MarketProfile Setup Notes

Setup Notes:
1) $VALSPD:
1) DeltaPrice: 250000
2) daybac: 11
2) $VOLSPD
1) DeltaPrice: 20000
2) daybac: 66
3) $ADSPD
1) DeltaPrice: 25
2) daybac: 66
4) $VXV.X
1) DeltaPrice: .1
2) daybac: 66
3) Volume: Tick count
5) @ES.D, 30 min:
1) DeltaPrice: 1
2) daybac: 180
6) @ES.D, 12 min:
1) DeltaPrice: 1
2) daybac: 66
7) @ES.D, 4 min:
1) DeltaPrice: 1
2) daybac: 66
8) @ES.D, 1 min:
1) DeltaPrice: .25
2) daybac: 66
9) EURUSD, 1 min:
1) DeltaPrice: .001
2) daybac: 66

MarketProfile Code With Target Levels

[SameTickOpt = True]
[LegacyColorValue = true];

{
Indicator Name: !!AmasterMarketP6
This code originally was coded by ghkramer and then added to by owen, and lookn4ddeal has added to it as well. I made a few tweaks to it as well, and cleaned up the code so it's easier to read.

Code originally posted in the TradeStation forums.
Links:
https://www.tradestation.com/Discussions/Topic.aspx?Topic_ID=93008
https://www.tradestation.com/Discussions/Topic.aspx?Topic_ID=50398
https://www.tradestation.com/Discussions/Topic.aspx?Topic_ID=51450
}


inputs:
PlacFirststartTLonchart ( 1 ) {,RetracePct(5)},
DeltaPrice ( .25 ),
//highVolColor ( green ),
lowVolColor ( red ), {lightgray}
color ( green ), {was cyan}
{mostrecent ( true ),}
SinDistVol ( false ),
Daysver ( true ),
daybac ( 3 ),
seetext ( true ),
alerts ( false ),
scalelocationpercent ( .5 ) ;

variables:
barsend ( 0 ),
Startid ( 1 ),
EndId ( 0 ),
seeDotlines ( true ),
mostrecent ( true ) {,realtimeend(true)},
endatdate ( true ),
deletpast ( false ),
FivLines ( false ),
seeplots ( false ),
HiV1LowV2Both3non0 ( 3 ) ;

variables:
PercTpointF ( false ) {, HistoWindowType(0)},
delettls ( true ),
deletpeaks ( true ),
seedots ( false ),
textLoc ( 100 ) ;


///////////////////////////

variables:
{maxhistoprev ( 0 ),}
prevyprice ( 0 ),
PrevEndDate ( 0 ),
PrevEndTime ( 0 ),
prevypricex ( 0 ),
PrevEndDatex ( 0 ),
PrevEndTimex ( 0 ) ;
{ prevypricedif ( 0 ),
PrevEndDatedif ( 0 ),
PrevEndTimedif ( 0 ) ;
}

{
Input:
TextVertPct ( 81 ) ;
}


variables:
jBar ( 0 ),
jCol ( 0 ),
jPrice ( 0 ),
jLow ( 0 ),
jHigh ( 0 ),
NbrPriceRows ( 0 ),
MinPrice(1000000),
MaxPrice ( 0 ),
HistoPrice ( 0 ),
dPrice ( 0 ),
dP2 ( 0 ),
lx ( 0 ),
dVol ( 0 ),
TotVol ( 0 ),
dVolx ( 0 ),
TotVolx ( 0 ),
dp ( 0 ),
DisplayIntensity ( 0 ),
MaxHisto ( 0 ),
MaxHistox ( 0 ),
EndDate ( 0 ),
EndTime ( 0 ),
EndVal ( 0 ),
{
EndDatex ( 0 ),
EndTimex ( 0 ),
EndValx ( 0 ),
}
EndDatedif ( 0 ),
EndTimedif ( 0 ),
EndValdif ( 0 ),
jDate ( 0 ),
TLRef ( 0 ),
TLRefx ( 0 ),
TLRefdif ( 0 ),
TLRefdif2 ( 0 ),
j ( 0 ),
{
Temp ( 0 ),
}
yPrice ( 0 ),
yPricex ( 0 ),
MaxPriceRows ( 1000 ), {v2.4 Must be = dim(Histo[]) - 1}
FirstTimeThru(true),
NbrTLs ( 0 ),
iTL ( 0 ),
NbrTLsx ( 0 ),
iTLx ( 0 ),
iTLdif ( 0 ),
NbrTLsdif ( 0 ),
xProfileLength ( 0 ) ;

variables:
barnum ( 0 ),
startbar ( 0 ),
xhistobars ( 0 ),
d15 ( 0 ),
dum ( 0 ) ;


array:
Dates[1500] ( 0 ),
Times[1500] ( 0 ),
Histo[1500] ( 0 ),
iTLRef[1050,5] ( 0 ),
LisTLs[1050] ( 0 ),
txt[1050] ( 0 ),
TLval[1050] ( 0 ) ;

variables:
dumsr ( 0 );

variables:
Swingdir ( 0 ),
SwingBar ( 0 ),
SwingPrice ( 0 ),
SwingDate ( 0 ),
SwingTime ( 0 ),
id ( 0 ),
x ( 0 ),
xbar ( 0 ) ;

variables:
Swingdirj ( 0 ),
SwingBarj ( 0 ),
SwingPricej ( 0 ),
SwingDatej ( 0 ),
SwingTimej ( 0 ),
idj ( 0 ) ;

variables:
DD ( 0 ),
TT ( 1 ),
PP ( 2 ),
barNo ( 3 ),
Dir ( 4 ),
VolUDT ( 0 ),
xend ( 0 ),
xxend ( 0 ),
xvalue1 ( 0 ),
colored ( 0 ) ;
{
array:
SW[42,9] ( 0 );
}
array:
Hj[1501,9] ( 0 ) ;

variables:
LisID ( 0 ) ;
{color(0)};

variables:
stopbar ( 11111111111110 ),
Hilo ( 0 ),
xavg ( 0 ) ;
{dir ( 0 )}

variables:
reset ( false ),
newnum ( 0 ),
xx1 ( 0 ),
md ( 0 ),
mt ( 0 ),
HLs ( c ),
EL ( 0 ),
lbar ( 0 ),
lbar2 ( 0 ),
enbar ( 0 ),
Lb ( false ),
Lb2 ( false ),
nDaysBack ( 0 ),
MinutesPerSession ( 0 ),
BarsPerSession ( 0 ) ;

var:
ex ( 0 ) ;

var:
xa ( 0 ) ;

{
array:
tlval[40] ( 0 ) ;
}


barnum=barnumber;

if
date<>date[1]
and
lbar2=0
then
begin
lbar2=lbar;
lbar=barnum[1];
end;

if
date<>date[1]
then
enbar=barnum[1];

if
Daysver
and
lboc
then
begin
if
daybac=1
then
xHistoBars = {barnum-}((barnum-enbar));

if
daybac>-1
then
xHistoBars = {barnum-}(((lbar-lbar2)*daybac)+barnum-enbar);

if
lb2 = false
then
begin
plot12[xHistoBars+2](c+5);
plot13[xHistoBars+2](c-5);

dum = text_new(date[xHistoBars+2], time[xHistoBars+2], close-6,"start location of referenced volume");
lb2=true;
end;
end;

if
(Daysver=false
and
TL_Exist(PlacFirststartTLonchart) )
then
begin
if
(Daysver=false
and
TL_GetBeginDate(PlacFirststartTLonchart)=date
and
TL_GetBeginTime(PlacFirststartTLonchart)=time)
then
stopbar= {FindBar(BD, BT)}barnum;
end;

if
barnum = stopbar
then
begin
plot10[2](c+5, "plot10", darkred);
plot11[2](c-5, "plot11", darkgreen);
end;

if
Daysver = false
and
barnum > stopbar
then
xHistoBars = barnum - stopbar;
xxend = 0;
//color = colordn ;

{------------------- (Main: Compute Histogram and plot)-------------------}
{------------------- (Calculate Histogram parameters)-------------------}

if
(xHistoBars > 0)
and
(CurrentBar >= xHistoBars)
{and
lboc}
then
begin
MinPrice = Lowest(L, xHistoBars);
MaxPrice = Highest(H, xHistoBars);
end;

{------------------- (xxx)-------------------}

if
(DeltaPrice <= 0)
then {v2.4 Change}
begin
NbrPriceRows = 100;
dPrice = (MaxPrice - MinPrice) / NbrPriceRows;
end
else {user specified DeltaPrice}
begin
NbrPriceRows = floor((MaxPrice - MinPrice)/DeltaPrice) + 1;

if
NbrPriceRows < 1
then {s/b >= 1, but test anyway to prevent divide by 0}
NbrPriceRows = 1;

if
NbrPriceRows <= MaxPriceRows
then
dPrice = DeltaPrice
else {constrain NbrPriceRows to array limits}
begin
NbrPriceRows = MaxPriceRows;
dPrice = (MaxPrice - MinPrice)/NbrPriceRows;
end;
end;

{------------------- (Initialize Histogram Cells)-------------------}

for
jPrice = {0}xxend
to
NbrPriceRows
begin
Histo[jPrice] = 0;
end;

{------------------- (Compute Histogram)-------------------}
{------------------- (dPrice must be > 0, otherwise exit without Plotting v1.1 fix)-------------------}
if
dPrice > 0
then
{end1} begin
TotVol = 0;
dVol = 0;
TotVolx = 0;
dVolx = 0;

for
jBar = {0}xxend
to
(xHistoBars-1) {changed for endid}
begin
jLow = floor((L[jBar] - MinPrice)/dPrice); {31Jan05, removed +1 , v2.2 fix}
jHigh = floor((H[jBar] - MinPrice)/dPrice); {31Jan05, removed +1 , v2.2 fix}
if
((jHigh - jLow) > 0)
then {31Jan05, case where all trades at 1 price, v2.3}
begin
if
(SinDistVol)
then
dp = 180/(jHigh - jLow); {30Jan05,chged * to /, moved out of loop, v2.1}

if
(SinDistVol )= false
then
dVol = ticks[jBar]/(jHigh - jLow);

{------------------- (scale by area of sin pedestal = 1/2.785)-------------------}

for
jPrice = jLow
to
jHigh
begin
if
(SinDistVol)
then
dVol = 0.35991*{volume}Ticks[jBar]*(sine((jPrice-jLow)*dp ) + 0.25);

if
(SinDistVol)
then
TotVol = TotVol + dVol;
Histo[jPrice] = Histo[jPrice] + dVol;

if
(SinDistVol) = false
then
TotVol = TotVol + dVol;
end;
end;
end;
{------------------- (Plot Histogram)-------------------}

{Volume must be > 0, otherwise, exit without plotting v1.1 fix}

if
(TotVol > 0)
then
{end2} begin
{------------------- (Normalize Histogram)-------------------}
MaxHisto = -100000;
MaxHistox = -100000;

for
jPrice = 0
to
NbrPriceRows
begin
Histo[jPrice] = Histo[jPrice]/TotVol;

if
(Histo[jPrice] > MaxHisto)
then
MaxHisto = Histo[jPrice];
end;

{------------------- (Plot Profile using trendlines v2.0 fix-)-------------------}

{---------Scale Histogram-----------}
for
jPrice = 0
to
NbrPriceRows
begin
Histo[jPrice] = (round((xHistoBars-xxend)*Histo[jPrice]/MaxHisto, 0)*.875);
end;


{------------------- (xxx)-------------------}
for
j = 0
to
NbrPriceRows
begin
Dates[j] = Date[round((xHistoBars - Histo[j])*scalelocationpercent,0)];
Times[j] = Time[round((xHistoBars - Histo[j])*scalelocationpercent,0)];
end;

if
lb = false
then
begin
plot10[round((xHistoBars - Histo[NbrPriceRows])*scalelocationpercent,0)](c+5, "plot10", red);
plot11[round((xHistoBars - Histo[NbrPriceRows])*scalelocationpercent,0)](c-5, "plot11", green);

if
scalelocationpercent <> 1
then
dum = text_new(date[round((xHistoBars - Histo[NbrPriceRows])*scalelocationpercent,0)],
time[round((xHistoBars - Histo[NbrPriceRows])*scalelocationpercent,0)],c-6,"scaled location smaller to fit chart");
lb = true;
end;

{------------------- (Ticks)-------------------}

{Delete prior set of TLs}
if
FivLines
then
d15=5
else
d15=1;

if
((FirstTimeThru = false)
and
(NbrTLs > 0))
then
begin
{if deletpeaks then }
for
iTL = 1
to
LisID
begin
if
deletpeaks
and
LisTLs[iTL]>0
and
xvalue1<>2
or
(deletpast
and
LisTLs[iTL]>0)
then
begin
if
seetext
then
text_delete(txt[iTL]);
TL_Delete(LisTLs[iTL]);
end;
LisID=0;
end;

for
iTL = 1
to
NbrTLs
begin
if
delettls
and
iTLRef[iTL,D15]>0
and
xvalue1<>2
or
(deletpast
and
iTLRef[iTL,1]>0)
then
TL_Delete(iTLRef[iTL,D15]);
{ iTLRef[iTL,5]= iTLRef[iTL,4];
iTLRef[iTL,4]= iTLRef[iTL,3];
iTLRef[iTL,3]= iTLRef[iTL,2];
iTLRef[iTL,2]= iTLRef[iTL,1];
if iTLRef[iTL,2]>0 and FivLines then
TL_SetColor(iTLRef[iTL,2], color+7); }
NbrTLs=0;
end;
end;

{--------Plot Market Profile-----------}

for
j = 0
to {round(}
NbrPriceRows{*.5,0)} {fix v2.2}
{end3} begin
yPrice = MinPrice + j*dPrice;
{BeginVal = yPrice;}
EndDate = Dates[j];
EndTime = Times[j];

if
j >0
then
begin
prevyprice = MinPrice + (j-1)*dPrice;;
PrevEndDate = Dates[j-1];
PrevEndTime = Times[j-1];
end
else
begin
prevyprice = yPrice;
PrevEndDate = Dates[j];
PrevEndTime = Times[j];
end;

TLRef = TL_New(prevendDate, prevendTime, prevyPrice, EndDate, EndTime, yPrice) ;
{Save TLRef}
NbrTLs = NbrTLs + 1;
iTLRef[NbrTLs,1] = TLRef;
TL_SetSize(TLRef, 0) ;
TL_SetStyle(TLRef, 1) ;

if
FivLines = false
then
colored = color+7
else
colored = color;

TL_SetColor(TLRef, colored);

{------------------- (xxx)-------------------}

if
HiV1LowV2Both3non0 > 0
and
j > 3
and
j < NbrPriceRows
then
begin {histo is}
condition1 =
(
Histo[j] > Histo[j-2]
and
Histo[j] > Histo[j+2]
and
(
Histo[j] >= Histo[j-1]
and
Histo[j]>{=} Histo[j+1] {peakes}
)
);

condition2 =
(
Histo[j] < Histo[j-2]
and
Histo[j] < Histo[j+2]
)
and
(
Histo[j] <= Histo[j-1]
and
Histo[j] <{=} Histo[j+1] {lows}
) ;

condition3 =
(
Histo[j] > Histo[j-3]
and
Histo[j] > Histo[j+3] {peakes}
);

condition4 =
(
Histo[j] < Histo[j-3]
and
Histo[j] );
end;

{ if 1=1 and (condition1 {or condition2} )and (condition3 {or condition4 }) then begin}

if
(
HiV1LowV2Both3non0 = 1
and
condition1
and
condition3
)
or
(
HiV1LowV2Both3non0 = 2
and
condition2
and
condition4
)
or
(
HiV1LowV2Both3non0 = 3
and
condition1
and
condition3
)
or
(
HiV1LowV2Both3non0 = 3
and
condition2
and
condition4
)
then
begin
{------------------- (xxx)-------------------}
LisID = LisID + 1;
if
seeplots = false
{and
id>1}
then
begin
LisTLs[LisID] = TL_New({Begin}endDate, {Begin}endTime, {Prev}yPrice, {SW[id,DD]}date, {SW[id,TT]}time,{Prev}yPrice);
TL_SetStyle(LisTLs[LisID], 1) ;
TL_SetSize(LisTLs[LisID], 1) ;
TL_SetColor(LisTLs[LisID], {yellow}color );

if
condition2
and
condition4
then
begin
TL_SetColor(LisTLs[LisID], lowVolColor ); {low volume level:lightgray}
TL_SetSize(LisTLs[LisID], 0) ;
end;
//text
if
seetext
then
txt[LisID] = text_new(date,time+textLoc*BarInterval,yPrice,NumT oStr(yPrice,2));

if
seetext
then
text_SetStyle(txt[LisID],1,2);
end;//seeplots
end;
{end3} end;

{------------------- (xxx)-------------------}

FirstTimeThru = false;
{end2} end; {LastBarOnChart}
{end1} end; {TotVol > 0}

{------------------- (xxx)-------------------}

if
(
LisID > 39
)
then
begin
for
x = 1
to
40
begin
LisTLs[x-1] = LisTLs[x];
LisID=39;
end;
end;

if
currentbar = 1
then
clearprintlog;

xvalue1 = 0;

{------------------- alert once per bar code -------------------}

if
alerts
then
begin
for
xa = 1
to
40
begin
if
LisTLs[xa] <> 0
then
TL_SetAlert( LisTLs[xa], 2 );
end;
end;//alerts

Sunday, July 5, 2009

How markets move

If you're looking for tools to help you Trading the Economic Reports, Treasuries, and Understanding the Yield Curve", presented by Jack Bouroudjian.

Thanks hippie for the link and Err for the vid, I will post it soon!

http://mediaserver.thinkorswim.com/demos/2008/TOSDemoPlayer.html?vidSource=/transcripts/2009/20090701.swf

Tuesday, June 30, 2009

Trading Rules

Rules for taking a long position (reverse the rules for a short):
1) Enter the trade below the Scalper channel mid line (cyan line) to reduce draw down.
2) If close of bar equals midline of Scalper channel, then you must fade the entry by 2 ticks.
3) Volume Tracker must be positive i.e. above the zero line.
4) Trend Analyzer must be greater than the previous value.
5) One or both of these indicators $TICK or the ROBOT TRACKER should be bullish.
6) First profit target is at 3 ticks, second profit target is at 5 ticks.
7) First stop is at 4 ticks.
8) If first profit target of 3 ticks is achieved, immediately move stop to break even i.e. entry.
9) Price must touch the bottom channel.

Trading Notes:
Trade quanity must be divisible by two for scaling out.
Best trade setups occur when price consolidates for ~3 bars below the Scalper channel midline.
Do not trade if price gaps.
Do not trade if the range bar is large ~>1.50 points on the ES.

Thursday, June 18, 2009

High Probability Trading Friday 6/26





Today there were 8 trades to be taken of them 1 was break even and a small profit and the other price gaped so we don't take the trade.

All indicators are self tuning to the cycles of the market. This allows for faster and more accurate indicator performance.

Some of the rules for taking a long position (reverse the rules for a short):
1) Enter the trade below the Scalper channel mid line (cyan line) to reduce draw down.
2) If close of bar equals midline of Scalper channel, then you must fade the entry by 2 ticks.
3) Volume Tracker must be positive i.e. above the zero line.
4) Trend Analyzer must be greater than the previous value.
5) One or both of these indicators $TICK or the ROBOT TRACKER should be bullish.

Trading Notes:
Best trade setups occur when price consolidates for ~3 bars below the Scalper channel midline.
Do not trade if price gaps.
Do not trade if the range bar is large ~>1.50 points on the ES.


The Volume Tracker indicator uses a very unique approach to view the participants. It plots liquidity entering and leaving the market that can't other wise be seen. We are looking inside the indicator to find patterns.

The trend indicator monitors the cycling of price. I use hysteresis to clean up the signal.

The Robot Tracker is monitoring program trading, which is about 9% of the ES volume.

The Tick Tracker is monitoring the short term sentiment of the market.

Thursday, June 11, 2009

High Probability Trading




All DSP (digital signal processing) code has been upgraded as well as the functions or logic to plot the curves.

A quick snap shot of Thursday June 25, 2009 signals.

High probability trade indicators:
$TICK TRACKER gauge's the market bias, it's derived from $TICK index.
ROBOT TRACKER monitors program buying and selling, it's derived from the $ESINX.
TREND ANALYZER is a price cycle oscillator incorporating hysteresis as a signal filter.
VOLUME TRACKER monitors the intrabar volume direction.
SCALPERS CHANNEL gauge's the volatility by looking at the statical distribution of price or volume.

Tuesday, June 2, 2009

Volume Control



































This is a dynamic volume indicator which self tunes its self to the market. I've added volatility bands to help me find extreme amplitude. When the histogram changes direction that's your buy signal. I've also added a volatility alarm. This indicators works on all time frames, but the daily charts. But if you use a minute chart and set it to 405 minutes that's very close to a daily chart, then it will plot a daily bar correctly.

Scalper Value Chart






If you like the TTM Value Chart, then you definitely should check this one out.

Scalper Value Chart is in the same class of indicators as the TTM Value Chart and that's where the similarity ends.

DSP (digital signal processing) and MarketProfile comprise the back bone of this new value chart indicator. Dynamically the variables are constantly being updated to plot the relationship of price to the point of control. It is possible to select different signal ratios to customize the plotted display.

There is also the ability to turn on/off Bollinger bands. This allows you to find statistical extremes. The Bollinger bands can also be interpreted as a dynamic over sold, over bought lines.

Trend Analyzer















































































This indicator is fast at identifying trend reversals!!

The Trend Analyzer indicates when the current trend has changed, if the trend is choppy and the trend direction.

When you see the histogram above and below the zero line at the same time the current price move is not very strong. The plotted line indicates price direction. Notice how accurate the signal is even through the chop!

Now we have the option to view the swings with the Bollinger band. In the above picture I have identified every location that the indicator touched the Bollinger bands with an up or down arrow. Depending upon your trading style there is a maximum of 15 points or 8 points/trades (June 8,2009).

Robot Tracker




A leading indicator!
Robot Tracker plots the sentiment or the participation of program tradings involvement.
Setup for TradeStation symbol: $ESINX or any of the PREM (premium) type indices.

Program traders buy when the market is not at fair value. This provides us a fantastic divergence indication of a trend reversal!!

On average 30% of the trading on the NYSE is program trading. Estimates for 2008 range as high as an 80% proportion of all trades in some markets. Here computers make the decision to initiate orders based on information that is received electronically, before human traders are even aware of the information. Some program trading strategies are subject to regulatory restrictions. For instance, NYSE Rule 80A requires index arbitrage trades to be marked when submitted. index arbitrage accounts for about 9% of all program trading.

Examples:
1) My favorite use of the Robot Tracker is an event I call the Robot Stretch. I use it to identify when a strong reversal is about to occur. This event must be used when my other indicators are at an extreme over bought, over sold or high amplitude. When the distance between plots increase, I've noticed it's a very high probability trade.

2) After a big move down, if you see that the slope is moving up rapidly and price is moving sideways, expect a move up.

3) Side ways movement of price while Robot_Tracks is moving strongly in a direction, produces a lower risk trade.

4) The greater the amplitude the more likely price will change direction or to continue on it's present trajectory. Now this is a relative observation. I've added over sold/bought plots for those times that you notice the price is oscillating and respecting a threshold.

5) Divergence: If price moves down while Robot_Tracks is moving up, don't expect price to stay down for long. Price is likely to move up quickly.

Observations:
Works great on a 1 minute chart.
Because it's an oscillator, like all oscillators they don't work on strong trends. But it works fantastic for the trader who scalps or the swing trader to find the best entry.
Works from a little after the open to the close, but be careful of divergence in the morning and don't use it after 4:00pm eastern time.

List of TradeStation Premium Indices Symbols:
$ESINX : e-mini S&P 500 Premium Index
$NDIQX : NASDAQ 100 Premium Index
$NQIQX : e-mini NASDAQ 100 Premium Index
$DJDJI: Dow Jones Premium
$TFTOY: Mini Russell Premium
$SPINX: S&P Premium Index
$RLIUX : Russell 2000 Premium Index
$ER2IUX: e-mini Russell 2000 Premium Index

To learn more visit:
http://www.nyse.com/press/12_2009.html (News Release NYSE)
http://wapedia.mobi/en/Algorithmic_trading
http://en.wikipedia.org/wiki/Algorithmic_trading
http://www.investopedia.com/articles/trading/07/program_trading.asp
www.indexarb.com
www.programtrading.com

A video about how program trading affects the market (begin watching at 4:00 minutes):

Sunday, May 31, 2009

Scalpers Channel







I call it the Scalpers Channel. It's good for the scalper, swing and the position traders. It even works on daily, weekly and monthly charts.

At a glance the Scalpers Channel provides clear, fast and meaningful indication of where the current point of control is of three different cycle lengths of volume or price distribution. In addition it shows previous and current support and resistance. There is a lot going on in this simple looking indicator.

I designed the scalper channel indicator to identify areas of extreme volatility based either on price or volume distribution (relative to the other).

Trading Rules:
The way I use the Scalper Channel is to wait for price to consolidate along one side of the channel, "that's my edge, price consolidation!" 3 bars is enough consolidation. Look at your favorite indicator has it changed direction during the consolidation? If yes take the trade in the direction of your indicator. For example the Volume Control/Bollinger indicator, the MACD Adaptive, Trend Analyzer , etc. My scalper channel is a lot faster or indicates more S/R areas for scalping or taking an ambush trade, than any other channel I have reviewed.

The channel is derived by calculating a statical distribution of price or volume respected to the other; I then I calculate the extrema of this distribution, this is being done with a self adaptive cycle recognition calculation. The channel can be modified with many parameters to accommodate your particular trading style.

Included with the Scalper Channel are Scalper Lines. They indicate an idealized entry point. Typically when you enter a trade at the Scalper line you will take very little heat! They are based on price or volume distribution as mentioned above but with a faster cycle calculation and a smaller distribution profile. This faster calculation and smaller distribution place the Scalper Lines closer to the real time action of the price. It might help you to think of the scalper lines as where is the real time POC (point of control) is located. The closer your entry point is to the scalper channel the less heat you will have to endure. But the reality is more often then not price will be near the mid point of the channel when your indicators fire off. This where the Scalper Value Chart indicator, the Robot Tracker or the Trend Analyzer come in handy. As they will indicate the direction and strength of the next move. Which will give you an edge to take the trade or to let it go.

The Scalpers Channels was also designed to gauge volatility contraction and expansion. I've coded in a volatility alarm which plots a magenta line whenever volatility is less than a user defined value. This is great for finding break out areas. If you are familiar with the TTM Squeeze indicator this and are frustrated with it's entry points then check out my volatility alarm. In addition when your primary oscillator indicator indicates a direction it's a great time to take a scalp and it could be a potential trend move. You can also integrate this alarm into your automated strategy. For example, if you have a break out strategy, setting the volatility alarm to a lower threshold will help you to identify when the market volatility has contracted to a level of where the potential is greatest for larger moves. The converse to this is when the volatility alarm is large and turns off, you have an indication that the market is either trending or range bound.

There is another use for the person who uses semi or fully automated strategies and that is it's ability to caution you of increasing or decreasing volatility. When back testing you can test at what volatility levels your strategy is best suited.

Saturday, May 23, 2009

$Tick Tracker












AS_$TICK_TRACKER Trend Identifier.
This indicator plots the trend of the $TICK Index Sentiment.
The histogram offers interesting points of entry and exit.

Java Plugin







Write Java programs effortlessly for the TradeStation platform.
  • Access all TradeStation data feeds directly in Java.
  • Incorporate Java library's.
  • Compile Java programs.
  • Minimal configuration.
  • Easy installer.
  • Create Web hooks/Network enabled.
  • Secure.

MACD Adaptive


This chart compares the traditional 12, 26, 9 MACD to our new Active Scaling MACD.
The vertical lines represent most of the histogram zero line cross over locations.