Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

Tams

Trendline (EasyLanguage)

Recommended Posts

This thread is about using EasyLanguage to draw trendlines on a chart.

 

 

 

 

 

TL_New

 

Displays a trendline, with the specified starting and ending points,

on the chart that the study is based on;

 

returns a trendline-specific ID number, required to modify the trendline.

 

Usage

 

TL_New (sDate, sTime, sPriceValue, eDate, eTime, ePriceValue)

 

Parameters

 

sDate - a numerical expression specifying the trendline starting point date;

the date is indicated in the YYYMMdd format,

where YYY is the number of years since 1900,

MM is the month,

and dd is the day of the month

 

sTime - a numerical expression specifying the trendline starting point time;

the time is indicated in the 24-hour HHmm format,

where 1300 = 1:00 PM

 

sPriceValue - a numerical expression specifying the trendline starting point price value

(vertical position, corresponding to a value on the price scale of a chart)

 

eDate - a numerical expression specifying the trendline ending point date

 

eTime - a numerical expression specifying the trendline ending point time

 

ePriceValue - a numerical expression specifying the trendline ending point price value

 

Example

 

Display a trendline,

that begins at 9:00 AM at a price value of 1381,

and ends at 3:00 PM at a price value of 1337,

on January 17th, 2008,

on the chart that the study is based on:

 

Value1 = TL_New( 1080117, 900, 1381, 1080117, 1500, 1337);

 

 

 

 

 

source: EasyLanguage Manual

Share this post


Link to post
Share on other sites

Here's an example of

drawing a trendline

at the highest high and the lowest low of X days back.

 

 

it utilizes the highD and lowD functions to obtain the highest/lowest prices.

 

 

attachment.php?attachmentid=10322&stc=1&d=1240776619

 

 

MC version can be used on sub-minute charts.

i.e. tick, seconds, volume bar, etc.

HL_Bar.jpg.fb00aac27016e2e3fed753ce3e41567b.jpg

HL_bar_(TS).txt

HL_bar_(MC).txt

Edited by Tams

Share this post


Link to post
Share on other sites

I think that I understand TL_New but no way to extend extend lines on the right !!! :angry:

 

I've coded :missy: something horrible and complicate , but it works

 

Tams, If you have time to correct it I will appreciate it a lot

 

// HL bar (MC)
// version: beta 0.1
// author: TAMS
// date: 20090426
// license: public use
// description: this indicator draws a trendline 
// at the highest high and lowest low of X days back

input:
lookback(	1	),
Line.size (	1 	),
Line.style (	1	),
color.tl.h(	blue	),
color.tl.l(	red	);
// 1
if date <> date[1] and lookback = 1 then begin
value1 = tl_new_s(d , time_s , highd(1), d  , time_s, highd(1 ));	
value2 = tl_new_s(d  , time_s, lowd(1), d  , time_s, lowd(1));

tl_setcolor( value1, color.tl.h );
TL_SetSize(  value1, Line.size  );
TL_SetStyle( value1, Line.style );		

tl_setcolor(  value2 , color.tl.l );
TL_SetSize(   value2, Line.size   );
TL_SetStyle(  value2, Line.style  );		
end;

if lookback = 1 then begin
tl_setend_s(value1, d , time_s , highd(1) );
tl_setend_s(value2, d , time_s , lowd(1)  );
end;

// 2
if date <> date[1] and lookback = 2 then begin
value1 = tl_new_s(d , time_s , highd(1), d  , time_s, highd(1 ));	
value2 = tl_new_s(d  , time_s, lowd(1), d  , time_s, lowd(1));
value3 = tl_new_s(d , time_s , highd(2), d  , time_s, highd(2 ));	
value4 = tl_new_s(d  , time_s, lowd(2), d  , time_s, lowd(2));

tl_setcolor( value1, color.tl.h );
TL_SetSize(  value1, Line.size  );
TL_SetStyle( value1, Line.style );		

tl_setcolor(  value2 , color.tl.l );
TL_SetSize(   value2, Line.size   );
TL_SetStyle(  value2, Line.style  );

tl_setcolor( value3, color.tl.h );
TL_SetSize(  value3, Line.size  );
TL_SetStyle( value3, Line.style );		

tl_setcolor(  value4 , color.tl.l );
TL_SetSize(   value4, Line.size   );
TL_SetStyle(  value4, Line.style  );			
end;
if lookback = 2 then begin
tl_setend_s(value1, d , time_s , highd(1) );
tl_setend_s(value2, d , time_s , lowd(1)  );
tl_setend_s(value3, d , time_s , highd(2) );
tl_setend_s(value4, d , time_s , lowd(2)  );
end;

// 3
if date <> date[1] and lookback = 3 then begin
value1 = tl_new_s(d , time_s , highd(1), d  , time_s, highd(1 ));	
value2 = tl_new_s(d  , time_s, lowd(1), d  , time_s, lowd(1));
value3 = tl_new_s(d , time_s , highd(2), d  , time_s, highd(2 ));	
value4 = tl_new_s(d  , time_s, lowd(2), d  , time_s, lowd(2));
value5 = tl_new_s(d , time_s , highd(3), d  , time_s, highd(3 ));	
value6 = tl_new_s(d  , time_s, lowd(3), d  , time_s, lowd(3 ));

tl_setcolor( value1, color.tl.h );
TL_SetSize(  value1, Line.size  );
TL_SetStyle( value1, Line.style );		

tl_setcolor(  value2 , color.tl.l );
TL_SetSize(   value2, Line.size   );
TL_SetStyle(  value2, Line.style  );

tl_setcolor( value3, color.tl.h );
TL_SetSize(  value3, Line.size  );
TL_SetStyle( value3, Line.style );		

tl_setcolor(  value4 , color.tl.l );
TL_SetSize(   value4, Line.size   );
TL_SetStyle(  value4, Line.style  );

tl_setcolor( value5, color.tl.h );
TL_SetSize(  value5, Line.size  );
TL_SetStyle( value5, Line.style );		

tl_setcolor(  value6 , color.tl.l );
TL_SetSize(   value6, Line.size   );
TL_SetStyle(  value6, Line.style  );					
end;

if lookback = 3 then begin
tl_setend_s(value1, d , time_s , highd(1) );
tl_setend_s(value2, d , time_s , lowd(1)  );
tl_setend_s(value3, d , time_s , highd(2) );
tl_setend_s(value4, d , time_s , lowd(2)  );
tl_setend_s(value5, d , time_s , highd(3) );
tl_setend_s(value6, d , time_s , lowd(3)  );
end;

// 4
if date <> date[1] and lookback = 4 then begin
value1 = tl_new_s(d , time_s , highd(1), d  , time_s, highd(1 ));	
value2 = tl_new_s(d  , time_s, lowd(1), d  , time_s, lowd(1));
value3 = tl_new_s(d , time_s , highd(2), d  , time_s, highd(2 ));	
value4 = tl_new_s(d  , time_s, lowd(2), d  , time_s, lowd(2));
value5 = tl_new_s(d , time_s , highd(3), d  , time_s, highd(3 ));	
value6 = tl_new_s(d  , time_s, lowd(3), d  , time_s, lowd(3 ));
value7 = tl_new_s(d , time_s , highd(4), d  , time_s, highd(4 ));	
value8 = tl_new_s(d  , time_s, lowd(4), d  , time_s, lowd(4 ));

tl_setcolor( value1, color.tl.h );
TL_SetSize(  value1, Line.size  );
TL_SetStyle( value1, Line.style );		

tl_setcolor(  value2 , color.tl.l );
TL_SetSize(   value2, Line.size   );
TL_SetStyle(  value2, Line.style  );

tl_setcolor( value3, color.tl.h );
TL_SetSize(  value3, Line.size  );
TL_SetStyle( value3, Line.style );		

tl_setcolor(  value4 , color.tl.l );
TL_SetSize(   value4, Line.size   );
TL_SetStyle(  value4, Line.style  );

tl_setcolor( value5, color.tl.h );
TL_SetSize(  value5, Line.size  );
TL_SetStyle( value5, Line.style );		

tl_setcolor(  value6 , color.tl.l );
TL_SetSize(   value6, Line.size   );
TL_SetStyle(  value6, Line.style  );

tl_setcolor( value7, color.tl.h );
TL_SetSize(  value7, Line.size  );
TL_SetStyle( value7, Line.style );		

tl_setcolor(  value8 , color.tl.l );
TL_SetSize(   value8, Line.size   );
TL_SetStyle(  value8, Line.style  );						
end;

if lookback = 4 then begin
tl_setend_s(value1, d , time_s , highd(1) );
tl_setend_s(value2, d , time_s , lowd(1)  );
tl_setend_s(value3, d , time_s , highd(2) );
tl_setend_s(value4, d , time_s , lowd(2)  );
tl_setend_s(value5, d , time_s , highd(3) );
tl_setend_s(value6, d , time_s , lowd(3)  );
tl_setend_s(value7, d , time_s , highd(4) );
tl_setend_s(value8, d , time_s , lowd(4)  );
end;

Share this post


Link to post
Share on other sites
I think that I understand TL_New but no way to extend extend lines on the right !!! :angry:

I've coded :missy: something horrible and complicate , but it works

Tams, If you have time to correct it I will appreciate it a lot

 

 

 

I am not sure if I understand what you want to achieve.

 

Can you make a screen shot, then draw some lines/arrows/notes to illustrate your intention?

Share this post


Link to post
Share on other sites

It's good to have friends all over the world :)

 

The idea is simple and works like classicals pivots

 

The goal is to have High Blue and low Red in a solid color

 

And to extend in Dotted lines to the right during xDays

 

The circles shows interesting S/R on the 15 mn graph

 

They are a lot of pullback in 1 mn on these support

HLXtended.thumb.jpg.c0b32bf41400a9082716e9ff7d5a9546.jpg

Share this post


Link to post
Share on other sites
It's good to have friends all over the world :)

The idea is simple and works like classicals pivots

The goal is to have High Blue and low Red in a solid color

And to extend in Dotted lines to the right during xDays

The circles shows interesting S/R on the 15 mn graph

They are a lot of pullback in 1 mn on these support

 

 

ok, simple enough...

 

sneo suggested the correct keyword -- TL_SetExtRight( id.tl, True);

 

 

here's the trick:

you only want to extend the lines on current day.

you don't want previous day's lines to clutter up your chart:

 

if lastbaronchart then begin

tl_setextright(value1, true);

... and so on

Edited by Tams

Share this post


Link to post
Share on other sites

I don't see any changes...

 

I'm not a fan of multi colored lines too

 

Blue for High and red for low

 

I'm not complaining guys !!!

 

Your help is a gift :)

 

I think that my way is not the good way to do what I "want"

 

The code is too heavy because if I want to have 50 days back...

 

2 millions exponentials codes lines may be ?

 

Also it's better to have the beginning of the line with the real first day in a solid line to better interpretation and the choose of, let's say, 50 days of Xtended dotted lines on the right

 

My 15 mn charts is exactly my goal

 

50 ThanX anyway, I really do appreciate your help.

Share this post


Link to post
Share on other sites
I don't see any changes...

...

 

 

you better write some lines/arrows/notes on your chart.

 

;-)

Edited by Tams

Share this post


Link to post
Share on other sites
...

I'm not a fan of multi colored lines too

...

 

 

you can set the color to anything you like when you are trading,

but when you are programming, you have to see which line is which.

Share this post


Link to post
Share on other sites

You are right

 

I must give more informations if I want to be understood

 

I hope that this graph is clear enough

 

The lookback period is usefull to clean the graph from pollution of all the H/L of the data range

 

Let say on my graph that I estimated that the -4 day is an important top

 

It could be also the -10 day ( the yellow arrow )

 

or any lookback (may be maxi 50 days ?)

 

The Blue/red color for H/L is a way to immediatly see the confluences of the H/L

Untitled-1.thumb.jpg.b96761956b0b46546c880b9aa319dbcc.jpg

Share this post


Link to post
Share on other sites
You are right

 

I must give more informations if I want to be understood

 

I hope that this graph is clear enough

 

The lookback period is usefull to clean the graph from pollution of all the H/L of the data range

 

Let say on my graph that I estimated that the -4 day is an important top

 

 

my last code should do this trick.

all you need to do is to copy my codes in lookback=3 to lookback=4.

 

 

 

It could be also the -10 day ( the yellow arrow )

 

or any lookback (may be maxi 50 days ?)

 

The Blue/red color for H/L is a way to immediatly see the confluences of the H/L

 

 

if you need addition lookbacks, simply use my original code here:

http://www.traderslaboratory.com/forums/f56/trendline-easylanguage-5840.html#post63601

 

this code is for ONE lookback only.

simply apply this indicator to the chart with the lookback at 10,

then you will have the HL lines from 10 days ago.

 

if you also need to lookback at day 50,

then apply the indicator AGAIN... with lookback at 50.

 

QED !

Share this post


Link to post
Share on other sites

additional notes:

 

if you want to plot current day's high low...

this requires a different routine.

 

because past day's HL are static,

all you need is to find the HL once and plot the lines.

 

Current day's HL is a moving target.

Your codes needs to detect and compare current bar's HL

to see if it has made a new HL, then plot the HL lines accordingly.

... and this has to be done for every bar and after every tick.

 

 

You can see an example here:

http://www.traderslaboratory.com/forums/f218/plotting-globex-high-and-low-5630.html

Share this post


Link to post
Share on other sites

Quod erat demonstrandum!

 

If I remember right.

 

It means something like:

 

"What had to be shown"

(sorry for my English, I guess I could it better explain in my mother tongue).

It is usually used, behind a successful finished proof.

 

Hal

Share this post


Link to post
Share on other sites

Here is one of the 3 indicators wich slowed down MC :angry:

 

// The code slows dramatically MC when resizing the scale with the mouse in 1 mn untill it freezezes all the screen during 10 seconds

 

 

// HL bar (MC)
// version: beta 0.3
// author: TAMS
// date: 20090426
// license: public use
// description: this indicator draws a trendline 
// at the highest high and lowest low of X days back
// 
// 20090503: modified by aaa for multi-days lookback
// 20090503: TAMS: added different colors for each day
// 20090503: TAMS: added tl extension for lookback=3
// 20090505: aaa:  removed 
//			multi-days lookback  
//			different colors for each day 
//		     added 
//			StartDate
//			tl_setextright (Sneo suggestion)
// The code slows dramatically MC when resizing the scale with the mouse in 1 mn untill it freezezes all the screen during 10 seconds

input:
StartDate(	1090426),
Line.size (	1 	),
Line.style (	2	),
Color.high(	blue	),
Color.low(	red	);

If date this bar >= StartDate then 
begin

if date <> date[1] then begin
	value1 = tl_new_s(d , time_s , highd(1) , d , time_s , highd(1) );	
	value2 = tl_new_s(d , time_s , lowd( 1) , d , time_s , lowd(1)  );

	tl_setcolor( value1, Color.high );
	TL_SetSize(  value1, Line.size  );
	TL_SetStyle( value1, Line.style );		

	tl_setcolor( value2, Color.low  );
	TL_SetSize(  value2, Line.size  );
	TL_SetStyle( value2, Line.style );		
end;
	tl_setextright(value1, true);
	tl_setextright(value2, true);
end;

Share this post


Link to post
Share on other sites

Suggestion for working with zero problems

 

MC has a very good C++ multiprocessoring engines

 

Actual powered quad CPU + GPU can draw millions of lines in a fraction of a seconds

 

2 Mo memory is enough... 4 Mo is better and cheap (instead 3,xx Mo is available for programms and 1,xx Mo reseved to the system )

 

I suggest a C: ghost each week ( C = windows D = your programm )

 

The system will be clean without virus and You will always have the best of windows performance and security

 

And

 

Backup

Backup

Backup

 

oftently your datas on multiple supports

Share this post


Link to post
Share on other sites

Thats odd AAA the code you posted should run once a day! It should not slow things down.

 

Multicharts rasterisation had always been snotbag slow, something I have tired of telling them about. Apparently they have speeded it up in version 5.0. It frustrated me no end that they did not put more effort into the fundamental things... receiving data from a provider....storing and managing it.....displaying it. They are getting (finally).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.