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.


  • Topics

  • Posts

    • Date: 22nd November 2024.   BTC flirts with $100K, Stocks higher, Eurozone PMI signals recession risk.   Asia & European Sessions:   Geopolitical risks are back in the spotlight on fears of escalation in the Ukraine-Russia after Russia reportedly used a new ICBM to retaliate against Ukraine’s use of US and UK made missiles to attack inside Russia. The markets continue to assess the election results as President-elect Trump fills in his cabinet choices, with the key Treasury Secretary spot still open. The Fed’s rate path continues to be debated with a -25 bp December cut seen as 50-50. Earnings season is coming to an end after mixed reports, though AI remains a major driver. Profit taking and rebalancing into year-end are adding to gyrations too. Wall Street rallied, led by the Dow’s 1.06% broadbased pop. The S&P500 advanced 0.53% and the NASDAQ inched up 0.03%. Asian stocks rose after  Nvidia’s rally. Nikkei added 1% to 38,415.32 after the Tokyo inflation data slowed to 2.3% in October from 2.5% in the prior month, reaching its lowest level since January. The rally was also supported by chip-related stocks tracked Nvidia. Overnight-indexed swaps indicate that it’s certain the Reserve Bank of New Zealand will cut its policy rate by 50 basis points on Nov. 27, with a 22% chance of a 75 basis points reduction. European stocks futures climbed even though German Q3 GDP growth revised down to 0.1% q/q from the 0.2% q/q reported initially. Cryptocurrency market has gained approximately $1 trillion since Trump’s victory in the Nov. 5 election. Recent announcement for the SEC boosted cryptos. Chair Gary Gensler will step down on January 20, the day Trump is set to be inaugurated. Gensler has pushed for more protections for crypto investors. MicroStrategy Inc.’s plans to accelerate purchases of the token, and the debut of options on US Bitcoin ETFs also support this rally. Trump’s transition team has begun discussions on the possibility of creating a new White House position focused on digital asset policy.     Financial Markets Performance: The US Dollar recovered overnight and closed at 107.00. Bitcoin currently at 99,300,  flirting with a run toward the 100,000 level. The EURUSD drifts below 1.05, the GBPUSD dips to June’s bottom at 1.2570, while USDJPY rebounded to 154.94. The AUDNZD spiked to 2-year highs amid speculation the RBNZ will cut the official cash rate by more than 50 bps next week. Oil surged 2.12% to $70.46. Gold spiked to 2,697 after escalation alerts between Russia and Ukraine. Heightened geopolitical tensions drove investors toward safe-haven assets. Gold has surged by 30% this year. Haven demand balanced out the pressure from a strong USD following mixed US labor data. Silver rose 0.9% to 31.38, while palladium increased by 0.9% to 1,040.85 per ounce. Platinum remained unchanged. 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. Andria Pichidi 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 FX and CFDs 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.
    • A few trending stocks at support BAM MNKD RBBN at https://stockconsultant.com/?MNKD
    • BMBL Bumble stock watch, pull back to 7.94 support area with high trade quality at https://stockconsultant.com/?BMBL
    • LUMN Lumen Technologies stock watch, pull back to 7.43 support area with bullish indicators at https://stockconsultant.com/?LUMN
×
×
  • Create New...

Important Information

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