TRO Control PMSM with different time frames

free & uncensored discussion arena for TheRumpledOne

Moderator: moderators

rosenskier
rank: <50 posts
rank: <50 posts
Posts: 17
Joined: Tue Jun 20, 2006 6:56 pm
Reputation: 0
Gender: None specified

TRO Control PMSM with different time frames

Postby rosenskier » Mon Oct 16, 2006 6:29 pm

If you are using TRO_Control in TradeStation, you may find this indicator valuable. I use it all the time. _TRO_CONTROL_PMSM2 has a top line value that gives historical values of the control throughout the day. However, it only gives you the timeframe that your current chart is watching.
This indicator will give you the values of TRO_CONTROL2 from radar screen throughout the day for all 5 time frames.
I will include the indicator and a workspace to use it since it is not obvious to build.

If you want to just download the .eld, here are the instructions to building the chart.
On your 1 min chart, click insert-symbol to add a symbol to the chart. Be sure it is the SAME symbol as the one you are trading.
Click 'Prompt for Format' and in Settings, change the time frame to 5 min and on scaling, change the sub-graph to 'Hidden'. Repeat that step 2 more times for the same symbol on 15 minute and 60 minute intervals. Your chart should not look any different, but if you click 'format-symbol', you should see 4 repetitions of the same symbol with data1-data4 in 1 min - 60 minutes intervals.
Then include the indicator _RS_CTRL_PMSM_TF and you should see 5 dots that correspond to the Control2 radarscreen values.

Please offer comments and helpful ideas to making this better if you see fit.
Attachments
RS CONTROL PMSM.ELD
(17.71 KiB) Downloaded 144 times
ER2 s_r 1min.tsw
(128 KiB) Downloaded 141 times
Last edited by rosenskier on Tue Oct 17, 2006 2:07 pm, edited 1 time in total.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
TheRumpledOne
rank: 10000+ posts
rank: 10000+ posts
Posts: 11396
Joined: Sun May 14, 2006 9:31 pm
Reputation: 45
Location: Oregon
Real name: Avery T. Horton, Jr.
Gender: None specified
Contact:

Postby TheRumpledOne » Mon Oct 16, 2006 10:31 pm

Dang, I am on TS 8.0 and I can't import...

Please upload the text!

Thanks
IT'S NOT WHAT YOU TRADE, IT'S HOW YOU TRADE IT!

Please do NOT PM me with trading or coding questions, post them in a thread.

rosenskier
rank: <50 posts
rank: <50 posts
Posts: 17
Joined: Tue Jun 20, 2006 6:56 pm
Reputation: 0
Gender: None specified

Postby rosenskier » Tue Oct 17, 2006 2:10 pm

[LegacyColorValue = true];

{ _RS_CTRL_PMSM_TF }

{credit of this indicator still goes out to Avery, please send your donations to him.}

{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:

iDecimals(2),

iLgColor(green),
iShColor(red),

iPrice( close ),
iInd( xaverage(close,5) ),
iBarsBack(1),
iAboveColor( darkblue ),
iBelowColor( darkmagenta ),
iIndRisingColor( cyan ),
iIndFallingColor( magenta ) ;



inputs:


iMode("No"), { if "auto" code sets xPeriods, if not "auto" code uses iPeriods}
iDefault(false), // if true then load defaults from _fDYNAMIC_SR
iPeriods(05),
iResetSR(true), // if true reset dynamic s/r, if false don't for Forex use false!!
iStartDate(1060120), // if not intraday, date to start counting
iHorizontal(false), // if true only show horizontal dots
HighColor( red),
LowColor( blue),
SpikeColor( yellow );

variables:

FG_S( yellow ),
FG_R( yellow ),

xTicker(GetSymbolName),
xDecimals(4),
xPriceThreshold(0),
xWidthThreshold(0),
xChannelBars(0),

xStartDate(iStartDate), // if not intraday, date to start counting

oExtremeVal( 0 ),
oExtremeBar( 0 ) ,

xBarsSR( 0 ),

xOldPeriods(0),

//xPeriods(05),
//xInterval(0),

HavePrevLines( false ),
TLHigh( 0 ),
TLLow( 0 ),
Dynamic_R( 0 ),
Dynamic_S( 0 ),
OldDynamic_R( 0 ),
OldDynamic_S( 0 ),
PrevDynamic_R( 0 ),
PrevDynamic_S( 0 ) ,

Dynamic_UpVol( 0 ),
Dynamic_DnVol( 0 ) ,

PrevDynamic_UpVol( 0 ),
PrevDynamic_DnVol( 0 ) ;


variables:
xColor1FG(white),

xMajor( 0 ),

xMinor( 0 ),

xMid( 0 ),
xMid5( 0 ),
xMid15( 0 ),
xMid60( 0 ),
xMidD( 0 ),

xPrevMid( 0 ),
xPrevMid5( 0 ),
xPrevMid15( 0 ),
xPrevMid60( 0 ),
xPrevMidD( 0 ),

tPrevMid(""),


tMid(""),
tMsg(""),

PLTop( 0 ),
PLBottom( 0 ),

DayTop( 0 ),
DayBottom( 0 ),
DayHigh( 0 ),
PrevMid( 0 ),
DayLow( 0 ),

xPeriods(60),
xInterval(0),

sFirstPass(true),

xBars(0),

xInd(0),
tInd(""),
tAlert("");

variables:

xx(white),

FG1(white),
BG1(black),

fg2(white),
bg2(black),

fg3(white),
bg3(black),

fg4(white),
bg4(black),

fg5pm(white),
fg5cm(white),

fg15pm(white),
fg15cm(white),

fg60pm(white),
fg60cm(white),

fgDpm(white),
fgDcm(white);





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



variables:

xDate(0),
xTime(0),
xOpen(0),
xClose(0),
xHigh(0),
xLow(0);



{first time through}

if sFirstPass
then begin

sFirstPass = false;

{bar test}

If bartype = 4
then xInterval = 94
else
If bartype = 3
then xInterval = 93
else
If bartype = 2
then xInterval = 92
else
If bartype = 1
then begin
xInterval = BarInterval;
end; { If bartype = 1 }

If iDefault
then begin
value1 = _fDynamic_SR_Load( xTicker, xPeriods , xDecimals , xPriceThreshold , xWidthThreshold , xChannelBars ) ;
end
else begin
xPeriods = iPeriods ;
end;

xOldPeriods = xPeriods ; // save this value

xStartDate = iStartDate ;

end; {if sFirstPass}


{ INITIALIZE }

FG1 = WHITE;
BG1 = BLACK;

fg2 = WHITE;
bg2 = BLACK;

fg3 = WHITE;
bg3 = BLACK;

//fg4 = WHITE;
//bg4 = BLACK;

tInd = "";

tAlert = "WAIT ";

xDate = Date ;

xTime = Time ;

xOpen = Open;

xClose = Close;

xHigh = High;

xLow = Low;

{ PROCESSING }

xMid = ( (High[0] + Low[0] ) * .50 );
xMid5 = ( (High[0] of data2 + Low[0] of data2 ) * .50 );
xMid15 = ( (High[0] of data3 + Low[0] of data3 ) * .50 );
xMid60 = ( (High[0] of data4 + Low[0] of data4 ) * .50 );
xMidD = ( (HighD(0) + LowD(0) ) * .50 );

xPrevMid = ( (High[1] + Low[1] ) * .50 );
xPrevMid5 = ( (High[1] of data2 + Low[1] of data2 ) * .50 );
xPrevMid15 = ( (High[1] of data3 + Low[1] of data3 ) * .50 );
xPrevMid60 = ( (High[1] of data4 + Low[1] of data4 ) * .50 );
xPrevMidD = ( (HighD(1) + LowD(1) ) * .50 );


If close crosses above PrevMid
or close crosses below PrevMid
then xBars = 1
else xBars = xBars + 1;



{ Alert criteria }




If close > xPrevMid
then begin
tPrevMid = "BUYERS";
Fg1 = iLgColor;
Bg1 = BLACK;
end
else
If close < xPrevMid
then begin
tPrevMid = "SELLERS";
Fg1 = iShColor;
Bg1 = BLACK;
end;
If close > xMid
then begin
tMid = "BUYERS";
Fg2 = iLgColor;
Bg2 = BLACK;
end
else
If close < xMid
then begin
tMid = "SELLERS";
Fg2 = iShColor;
Bg2 = BLACK;
end;


If close > xPrevMid5
then begin
Fg5pm = iLgColor;
end
else
If close < xPrevMid5
then begin
Fg5pm = iShColor;
end;
If close > xMid5
then begin
Fg5cm = iLgColor;
end
else
If close < xMid5
then begin
Fg5cm = iShColor;
end;


If close > xPrevMid15
then begin
Fg15pm = iLgColor;
end
else
If close < xPrevMid15
then begin
Fg15pm = iShColor;
end;
If close > xMid15
then begin
Fg15cm = iLgColor;
end
else
If close < xMid15
then begin
Fg15cm = iShColor;
end;

If close > xPrevMid60
then begin
Fg60pm = iLgColor;
end
else
If close < xPrevMid60
then begin
Fg60pm = iShColor;
end;
If close > xMid60
then begin
Fg60cm = iLgColor;
end
else
If close < xMid60
then begin
Fg60cm = iShColor;
end;

If close > xPrevMidD
then begin
FgDpm = iLgColor;
end
else
If close < xPrevMidD
then begin
FgDpm = iShColor;
end;
If close > xMidD
then begin
FgDcm = iLgColor;
end
else
If close < xMidD
then begin
FgDcm = iShColor;
end;




{ Alert criteria }

{
If CLOSE CROSSES ABOVE PrevMid
then begin
tMsg = "XA PrevMid " + Numtostr(close - PrevMid , idecimals) ;
Fg4 = BLACK;
Bg4 = yellow;

end
else
If CLOSE CROSSES below PrevMid
then begin
tMsg = "XB PrevMid " + Numtostr( PrevMid - close , idecimals) ;
Fg4 = red;
Bg4 = yellow;
end
else
If CLOSE > PrevMid
then begin
tMsg = "Above PrevMid " + Numtostr(close - PrevMid , idecimals) ;
Fg4 = BLACK;
Bg4 = green;
end
else
If CLOSE < PrevMid
then begin
tMsg = "Below PrevMid " + Numtostr( PrevMid - close , idecimals) ;
Fg4 = BLACK;
Bg4 = red;
end
else begin
tMsg = "Prev Midpoint! " ;
Fg4 = magenta;
Bg4 = white;
end;

}


{ Alert }

{
if tAlert <> "wait "
and tAlert <> tAlert[1]
then Alert( tAlert + Numtostr( PrevMid , idecimals)) ;
}

if xBars = 1
then Alert( tMsg + " / " + Numtostr( PrevMid , idecimals)) ;


If iPrice >= iInd
then begin
If iInd >= iInd[iBarsBack]
then xColor1FG = iIndRisingColor
else xColor1FG = iAboveColor ;
end
else begin
If iInd < iInd[iBarsBack]
then xColor1FG = iIndFallingColor
else xColor1FG = iBelowColor;
end;




If date this bar >= xStartDate
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 ;

PrevDynamic_UpVol = Dynamic_UpVol ;
PrevDynamic_DnVol = Dynamic_DnVol ;


{ high / low for period }


If d <> d[1]
then xBarsSR = 0;

xBarsSR = xBarsSR + 1;

If xBarsSR < xOldPeriods
and iResetSR
and xInterval < 92
then begin
xPeriods = xBarsSR ; // start fresh each day
PrevDynamic_S = L ;
PrevDynamic_R = H ;
end
else begin
xPeriods = xOldPeriods ; // no reset
end;


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

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

Dynamic_UpVol = UpTicks ;

Dynamic_DnVol = DownTicks ;


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 iHorizontal
then begin

If Dynamic_S = Dynamic_S[1]
then FG_S = LowColor;

If Dynamic_R = Dynamic_R[1]
then FG_R = HighColor;
end
else begin


If Dynamic_S = Dynamic_S[1]
then FG_S = darkblue
else FG_S = LowColor ;

If Dynamic_R = Dynamic_R[1]
then FG_R = darkred
else FG_R = HighColor ;


if low = Dynamic_S
then FG4 = FG_S
else if high = Dynamic_R
then FG4 = FG_R;

end; // If iHorizontal


end; // If date >= xStartDate


{ PLOT }

if fg1 <> fg2
then begin
fg1 = yellow;
end;
if fg5pm <> fg5cm
then begin
fg5pm = yellow;
end;
if fg15pm <> fg15cm
then begin
fg15pm = yellow;
end;
if fg60pm <> fg60cm
then begin
fg60pm = yellow;
end;
if fgDpm <> fgDcm
then begin
fgDpm = yellow;
end;


Plot1( 1.5 , "1min Ctrl", fg1 ) ;
//SetPlotBGColor( 1, bg1);

{
Plot2( 1 , "Minor", fg2 ) ;
//SetPlotBGColor( 2, bg2);



Plot3( 0, "Ind2", xColor1FG ) ;
//SetPlotBGColor( 3, bg3);



Plot4( -1 , "Dyn S/R", fg4 ) ;
SetPlotBGColor( 4, bg4 );}

Plot5( 1 , "5min Ctrl", fg5pm ) ;
Plot6( .5 , "15min Ctrl", fg15pm ) ;
Plot7( 0 , "60min Ctrl", fg60pm ) ;
Plot8( -.5 , "Day Ctrl", fgDpm ) ;



xComm = _fCommentary(oComm1, oComm2, oComm3, oComm4, oComm5, oComm6, oComm7, oComm8, oComm9, oComm10);

CommentaryCl(oComm1 );

CommentaryCl(oComm2 );
CommentaryCl(oComm3 );
CommentaryCl(oComm4 );
CommentaryCl(oComm5 );
CommentaryCl(oComm6 );
CommentaryCl(oComm7 );
CommentaryCl(oComm8 );
CommentaryCl(oComm9 );
CommentaryCl(oComm10 );




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


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

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.


Return to “TheRumpledOne”