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.


  • Posts

    • Date: 21st February 2025.   European PMI Disappoint, Weighing on Euro Before German Elections   The Euro is the first currency to witness the volatility on this month’s PMI reports. The French, German and British PMI data have resulted in the Euro being the worst-performing currency of the European Session so far. However, will the Euro continue to decline throughout the day? European Purchasing Managers’ Indexes The French Purchasing Managers Index was the first European index to be made public. The release resulted in the Euro instantly declining 0.24%. The main concern from the French data was the Services PMI which fell from 48.2 to 44.5. Previously the market was expecting the data to remain more or less unchanged. The weak data triggered the decline which came to a halt after Germany’s PMI was released.     The German Manufacturing PMI read 0.5 points higher than previous expectations and the Services PMI was 0.2 points lower. The data from Germany was a relief for Euro investors and the price rose 0.12% higher. However, traders should note that the price of the EURUSD continues to remain 0.20% lower than yesterday’s close. The price of the EURUSD will now depend on the PMI data from the US. The value of the US Dollar will depend on its PMI release this afternoon and the Consumer Sentiment Index. Analysts expect both the US Services and Manufacturing PMI data to remain above the 50.00 level in the expansion zone. German Elections 2 Days Away Germany is set to hold a general election this Sunday, February 23rd, following the collapse of the coalition of social democrats, liberals, and greens. Given the country's highly proportional electoral system, German polls provide a strong indication of potential government formations post-election. The main concern for Germany is the AFD party who are Far-Right Nationalists. Currently, ahead in the polls are CDU (centre-right), and AFD (far right), followed by the SPD (centre-left). Traders should note that the results of the elections are likely to trigger strong volatility on Monday, but also influence volatility today. Economists may become further concerned if the far-right gains power for the first time due to uncertainty. If the government, similar to France, is unable to form a coalition, this would also be a concern for the Eurozone. Furthermore, the Euro this week is also under pressure from comments from members of the European Central Bank. ECB Governing Council member Fabio Panetta said to journalists that officials need not slow interest rate cuts, as January's 2.5% inflation is still expected to reach the 2.0% target this year. He also advised the European economy is weaker than previously expected. EURUSD - Technical Analysis and Indicators The EURUSD is trading above the 75-bar Exponential Moving Average and 100-bar Simple Moving Average on the 2-hour chart. However, the price is moving away from the key resistance level at 1.05058 indicating the price is losing momentum. The short-term volatility is indicating the price is retracing downwards. On the 5-minute timeframe, the price is trading below the 200-bar SMA and is also forming clear lower lows and highs. Simultaneously, the US Dollar Index is trading above the 200-bar SMA on the 5-minute chart confirming no current conflicts. Currently, the US Dollar is the best-performing currency of the day attempting to regain losses from the past 2 weeks. Watch today’s Live Analysis Session for more signals as they develop!   Key Takeaway Points: Weak French Services PMI triggered an initial Euro decline, but German PMI provide a slight relief. However, EURUSD remains lower than yesterday’s close. The Euro’s direction now depends on the US PMI reports, with analysts expecting US data to stay in expansion territory. Sunday's German election could drive volatility, especially if the far-right AFD gains power or if coalition formation proves difficult. ECB official Fabio Panetta suggested no need to slow rate cuts, citing weaker-than-expected economic performance and expected inflation decline. Always trade with strict risk management. Your capital is the single most important aspect of your trading business.   Please note that times displayed based on local time zone and are from time of writing this report.   Click HERE to access the full HFM Economic calendar.   Want to learn to trade and analyse the markets? Join our webinars and get analysis and trading ideas combined with better understanding of how markets work. Click HERE to register for FREE!   Click HERE to READ more Market news.   Michalis Efthymiou HFMarkets   Disclaimer: This material is provided as a general marketing communication for information purposes only and does not constitute an independent investment research. Nothing in this communication contains, or should be considered as containing, an investment advice or an investment recommendation or a solicitation for the purpose of buying or selling of any financial instrument. All information provided is gathered from reputable sources and any information containing an indication of past performance is not a guarantee or reliable indicator of future performance. Users acknowledge that any investment in Leveraged Products is characterized by a certain degree of uncertainty and that any investment of this nature involves a high level of risk for which the users are solely responsible and liable. We assume no liability for any loss arising from any investment made based on the information provided in this communication. This communication must not be reproduced or further distributed without our prior written permission.
    • BE Bloom Energy stock, watch for a range breakout, target 34 area at https://stockconsultant.com/?BE
    • APLD Applied Digital stock. nice rally, watch for a top of range breakout at https://stockconsultant.com/?APLD
    • UAL United Airlines stock, watch for a narrow range breakout, target 122 area at https://stockconsultant.com/?UAL
    • WBD Warner Bros Discovery stock, watch for a range breakout at https://stockconsultant.com/?WBD
×
×
  • Create New...

Important Information

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