Page 1 of 5

TRO_DYNAMIC_FIBSSR

Posted: Thu Jul 19, 2007 11:05 pm
by TheRumpledOne
TRO_DYNAMIC_FIBSSR - ENHANCEMENT





I added an enhancement to TRO_DYNAMIC_FIBSSR.

The iPlotTrade input, when = TRUE, will place a white dot behind the dynamic support/resistance dots. This is your TRADE ENTRY TRIGGER!

Notice how many winners and the amount you could have made per share. Lots of "MILK" in that RIMM cow!!

ELD and Workspace attached.

I also included a surprise "treasure" showme indicator.

Posted: Fri Jul 20, 2007 12:58 am
by cvax
Can you post the algorithm you are using to plot the iPlotTrade dots for us without Tradestation?

Posted: Fri Jul 20, 2007 1:09 am
by TheRumpledOne
Here's the code:


Code: Select all

{ _TRO_Dynamic_FibsSR - draw fibs between the Support/Resistance lines }
   
{Attn: TradeStation
if this indicator is posted on the TradeStation Forum, I, TheRumpledOne, did NOT post it there,
so I can't be blamed for this indicator having my contact info.}


{Programmer:  Avery T. Horton, Jr.  aka TheRumpledOne,
gifts and donations accepted, PO Box 43575, Tucson, AZ 85733 }

{ ? Copyright 2006 Avery T. Horton, Jr.}

 

inputs:

   iAlert(false),
   iStartDate(1070101),  // if not intraday, date to start counting
   iPlotFibs(true),
   iPlotSR(true),
   iPlotTrade(false),
   iPrice( Close ),
   iDecimals(2),
   iPeriods(5),
//   iHigh( HighD(0) ),
//   iLow( LowD(0) ),

   iFibPlot("R"),         // "P" = projections, "R" = retracements
iFib1(.24),
iFib2(.38),
iFib3(.50),
iFib4(.62),
iFib5(.76),
iFib1Color(darkcyan ),
iFib2Color(darkbrown),
iFib3Color(darkgray),
iFib4Color(darkbrown ),
iFib5Color(darkcyan  ),
   HighColor(  red),
   LowColor(  blue),

   idummy("");

variables:

fg8(white),
bg8(black),


xAppType(0),
sFirstPass(true),
 
tInd(""),
tAlert(""),

xFib1(iFib1),
xFib2(iFib2),
xFib3(iFib3),
xFib4(iFib4),
xFib5(iFib5),

tFib(""),

xLowestLow(0),
xHighestHigh(0),
xRange(0),

xPosition(0),
   
oExtremeVal( 0 ),
oExtremeBar( 0 ) ;


variables:

xBars( 0 ),
xPeriods(05),
xOldPeriods(0),

   Dynamic_R( 0 ),
   Dynamic_S( 0 ),
   OldDynamic_R( 0 ),
   OldDynamic_S( 0 ),
   PrevDynamic_R( 0 ),
   PrevDynamic_S( 0 ) ;


{commentary variables}
variables:
xcomm(0),
oComm1( "" ),    
oComm2( "" ),    
oComm3( "" ),    
oComm4( "" ),    
oComm5( "" ),
oComm6( "" ),
oComm7( "" ),
oComm8( "" ),
oComm9( "" ),    
oComm10( "" );



{first time through}

if sFirstPass
then begin
   
sFirstPass = false;


{ APP TYPE TEST }
 
sFirstPass = false;

xAppType = GetAppInfo(aiApplicationType);        // cUnknown = 0 cChart = 1  cRadarScreen = 2 cOptionStation = 3


end; {if sFirstPass}


{ INITIALIZE }


tInd   = "";
tAlert  = "";
      

{ CALCULATIONS }
         



If date this bar >= iStartDate
then begin

{save old values}
   
If Dynamic_R <> PrevDynamic_R
   then OldDynamic_R = PrevDynamic_R;
      
If Dynamic_S <> PrevDynamic_S
   then OldDynamic_S  = PrevDynamic_S ;
   
OldDynamic_R = PrevDynamic_R ;
OldDynamic_S = PrevDynamic_S ;

PrevDynamic_R = Dynamic_R ;
PrevDynamic_S = Dynamic_S ;



{ high / low for period }
   


xBars = xBars + 1;




oExtremeVal = Extremes( L, iPeriods, -1, Dynamic_S , oExtremeBar ) ; // lowest low

oExtremeVal = Extremes( H, iPeriods, 1, Dynamic_R , oExtremeBar ) ; // highest high



If Dynamic_R <> H
and Dynamic_R < PrevDynamic_R
   then if PrevDynamic_R <> 0
      then Dynamic_R = PrevDynamic_R;
   
If Dynamic_S <> L
and Dynamic_S > PrevDynamic_S       
   then if PrevDynamic_S <> 0
      then Dynamic_S = PrevDynamic_S;

{
If iLow <> iLow[1]
Or iHigh <> iHigh[1]
then begin
}
If iFibPlot = "R"
Or iFibPlot = "r"
then begin
 

xLowestLow =  Dynamic_S ;

xRange        = Dynamic_R -  Dynamic_S ;

xFib1      = iFib1 * xRange + xLowestLow;
xFib2      = iFib2 * xRange + xLowestLow;
xFib3      = iFib3 * xRange + xLowestLow;
xFib4      = iFib4 * xRange + xLowestLow;
xFib5      = iFib5 * xRange + xLowestLow;
end // If iFibPlot = "R"...
else Begin

// oExtremeVal = Extremes( iLow[iPeriods], iPeriods, -1, xLowestLow , oExtremeBar ) ; // lowest low

// oExtremeVal = Extremes( iHigh[iPeriods], iPeriods, 1, xHighestHigh , oExtremeBar ) ; // highest high

xLowestLow   = Dynamic_S ;

xHighestHigh = Dynamic_R ;

xRange        = xHighestHigh - xLowestLow;

If close > OpenD(0)
then begin
xFib1      = iFib1 * xRange + xHighestHigh;  // high projections
xFib2      = iFib2 * xRange + xHighestHigh;
xFib3      = iFib3 * xRange + xHighestHigh;
xFib4      = iFib4 * xRange + xHighestHigh;
xFib5      = iFib5 * xRange + xHighestHigh;
end
else begin
xFib1      = xLowestLow - iFib1 * xRange ;  // low projections
xFib2      = xLowestLow - iFib2 * xRange ;
xFib3      = xLowestLow - iFib3 * xRange ;
xFib4      = xLowestLow - iFib4 * xRange ;
xFib5      = xLowestLow - iFib5 * xRange ;
end;

end;

// end; { If iLow <> iLow[1]... }



{ Alert criteria }

If high >= Dynamic_R
then begin
   Fg8 = red;
   Bg8 = white;
   tAlert = "Price touched Resistance" ;
end
else
If Low   <= Dynamic_S
then begin
   Fg8 = blue;
   Bg8 = white;
   tAlert = "Price touched Support" ;
end;



{ Alert }

if iAlert
and tAlert <> ""
//and tAlert <> tAlert[1]
   then Alert( tAlert ) ;


if iPlotFibs   
then begin
   
Plot1(xFib1 , "fib1", iFib1Color ) ;

Plot2(xFib2 , "fib2", iFib2Color ) ;

Plot3(xFib3 , "fib3", iFib3Color ) ;

Plot4(xFib4 , "fib4", iFib4Color ) ;

Plot5(xFib5 , "fib5", iFib5Color ) ;

end; // iPlotFibs

if iPlotSR   
then begin

Plot6(Dynamic_R , "Resistance",    HighColor ) ;

Plot7(Dynamic_S , "Support",   LowColor ) ;

end; // iPlotSR

if iPlotTrade
then begin
   if Low[1] = Dynamic_S
   and Close[1] > Low[1]
      then Plot9 (Dynamic_S , "go long",   white ) ;
   
   if High[1] = Dynamic_R
   and Close[1] < High[1]
      then Plot10 (Dynamic_R , "go short",   white ) ;
end ; // iPlotTrade

end; // If date >= xStartDate



               

if xAppType = 2   
then begin
   
if close = xFib1
   then SetPlotBGColor( 1, white );

if close = xFib2
   then SetPlotBGColor( 2, white );

if close = xFib3
   then SetPlotBGColor( 3, white );

if close = xFib4
   then SetPlotBGColor( 4, white );

if close = xFib5
   then SetPlotBGColor( 5, white );

if close = Dynamic_R
   then SetPlotBGColor( 6, white );

if close = Dynamic_S
   then SetPlotBGColor( 7, white );

   Plot8(tAlert , "Alert", yellow ) ;
end;

CommentaryCl( "Dynamic_R: ", NumToStr( Dynamic_R , iDecimals) );

CommentaryCl( "Dynamic_S: ", NumToStr( Dynamic_S , iDecimals) );

Posted: Fri Jul 20, 2007 2:10 am
by tradecrazy
Are you sure youare spleeling the file correctly? Is it TRO_DYNAMIC_FIBSSR or TRO_DYNAMIC_FIBSR with only 1 S?

tnx

Posted: Fri Jul 20, 2007 9:34 am
by cvax
If you only want to capture 10cents per stock


5cents per stock


just breakeven

This one tells us just 9% of trades will go sour instantly upon entry and never provide profit opportunities.

Wow there truly is tons of milk. Don't be too greedy and fill the milk jugs all day!

Posted: Fri Jul 20, 2007 10:19 am
by vittorio
If you only want to capture 10cents per stock


Hi,

What stop loss do you set in your statistic and
what is your entry level ?

Posted: Fri Jul 20, 2007 10:34 am
by cvax
No no. The stats I generated here are not that sophisticated. It is just a very simple win-to-total trades ratio and win is defined by how many trades hit your scalping target.

Basically the first case is if you required yourself to scalp at least $0.10 you would achieve this target 59% of the time. Lets just keep our analysis simple.

Long trades=3909
Percent Win=59.79% -> Win Trades=3909*59.79%=2337.1911
Percent Loss=40.21% -> Loss Trades=3909*40.21%=1571.8089
1000 sh per trade@$0.10 per share=$100
Stop@$0.10=-$100
2337.1911*$100+1571.8089*-$100=$76538.22
Cost basis=$234.20*1000=$234200
Margin 4:1 -> Equity=$58550
ROE=76538.22/58550=130.72% in one year. Actual returns will be much lower if you calculate in commissions but you get the idea. Also keep in mind that the % wins do not take into account real-time possibilities like your stop being hit before rebounding to hit your target. It just assumes if there was a runup that hit your target it was a winning trade.


Entry is the open of the bars with the dots.

Posted: Fri Jul 20, 2007 10:44 am
by vittorio
cvax wrote:
Entry is the open of the bars with the dots.


thank you .

Posted: Fri Jul 20, 2007 10:52 am
by cvax
The trigger was the bar before the bar with the dot. You should be prepared to enter on the bar with the dot before that bar starts building.

Posted: Fri Jul 20, 2007 12:58 pm
by TheRumpledOne
CVAX:

Rerun the calcs for only the FIRST HOUR of trading, and see what happens!

The real profit target is the 50% fib retrace level. The real stop loss is .01 above resistance or .01 below support.