04-05-2009, 02:05 PM
|
#18 |
Join Date: Jun 2008 Location: Switzerland Thanks: 240
Thanked 283 Times in 136 Posts
| Re: TICK Coding Help I have added size and style option to this nice indicator Code: inputs:
// StartTime( 0900 ),
// EndTime( 1030 ),
StartTime( SessionStartTime(1,1)),
EndTime( CalcTime(SessionStartTime(1,1),90)),
HL.Size( 1 ),
HL.Style( 2 ),
HighColor( green),
LowColor( red) ;
variables:
HavePrevLines( false ),
TLHigh( 0 ),
TLLow( 0 ),
PeriodHigh( 0 ),
PeriodLow( 999999 ) ;
if BarType <= 1 then { ie, if minute or tick bars }
begin
// if Date <> Date[1] then { ie, if new day }
if CurrentSession(0) <> CurrentSession(0)[1] then { ie, if new session }
begin
{ truncate the previous lines if they exist }
if HavePrevLines then
begin
TL_SetEnd( TLHigh, Date[1], Time[1], PeriodHigh ) ;
TL_SetEnd( TLLow, Date[1], Time[1], PeriodLow ) ;
TL_SetExtRight( TLHigh, false ) ;
TL_SetExtRight( TLLow, false ) ;
end ;
{ re-initialize PeriodHigh,PeriodLow for the new day }
PeriodHigh = 0 ;
PeriodLow = 999999 ;
{ insert the new H,L lines and set their colors/extents }
TLHigh = TL_New( Date, Time, PeriodHigh, Date, Time, PeriodHigh ) ;
TLLow = TL_New( Date, Time, PeriodLow, Date, Time, PeriodLow ) ;
TL_SetColor( TLHigh, HighColor ) ;
TL_SetColor( TLLow, LowColor ) ;
TL_SetSize( TLHigh , HL.Size );
TL_SetSize( TLLow , HL.Size );
TL_SetStyle( TLHigh , HL.Style );
TL_SetStyle( TLLow , HL.Style );
TL_SetExtLeft( TLHigh, false ) ;
TL_SetExtLeft( TLLow,false ) ;
TL_SetExtRight( TLHigh, true ) ;
TL_SetExtRight( TLLow, true ) ;
{ set flag }
if HavePrevLines = false then
HavePrevLines = true ;
end ;
if HavePrevLines = true then
begin
if StartTime <= Time and Time <= EndTime then
begin
if High > PeriodHigh then
begin
PeriodHigh = High ;
{ MUST reset TL end before resetting TL beginning in this case; if order
reversed, begin will first be reset to right side of end, and become the
new end; this will then again be reset by the subsequent statement; the
original begin will not be reset at all. }
TL_SetEnd( TLHigh, Date, Time, PeriodHigh ) ;
TL_SetBegin( TLHigh, Date, Time, PeriodHigh ) ;
end ;
if Low < PeriodLow then
begin
PeriodLow = Low ;
{ MUST reset TL end before resetting TL beginning in this case; see
above. }
TL_SetEnd( TLLow, Date, Time, PeriodLow ) ;
TL_SetBegin( TLLow, Date, Time, PeriodLow ) ;
end ;
end ;
end ;
end ; |
| |