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

you are missing "TL_SetExtRight(xxx,True)" for all your trend lines that you want to extend where xxx is the name of those trendline.

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Topics

  • Posts

    • Apparently, the murdering psychopussy military industrial complex is suffering from 'Middle East Fatigue'. Oh dear, the poor little lambs must be bored of killing 500k innocent people and displacing 10 million others all based on a pack of never ending lies. Obviously, you won't need the host to give you a blow by blow account of how you're being treated like a 5 year old..
    • Don't have time to post Big Picture today... quick notes:  I could almost re-post same content again ... 4 weeks later ??  except -  index finger is back up to speed Out of half the N copper position near 3.2 on Wed.  Just tucked stop on rest of the position up under today's lows... that's what reminded me of that Big Picture post PM’s: are still precious   ... "Silver is the new gold"  ;0 lol ... and if you take that seriously ... jokes on you... have a great weekend all.
    • ...been banging / just sayin' on this for a while now http://www.informationliberation.com/?id=58283
    • (... only posted because not much will be said on msm about these...)   There is ‘under the law’ and there is ‘above the law’  ... just sayin’
      https://www.zerohedge.com/news/2018-04-20/nunes-gowdy-and-goodlatte-go-nuclear-after-comey-memos-released
          speaking of msm There is ‘under the truth’ and there is ‘above the truth’  ... just sayin’ https://www.strategic-culture.org/news/2018/04/19/how-guardian-fulfills-george-orwell-prediction-of-newspeak.html
    • Date : 20th April 2018.

      MACRO EVENTS & NEWS OF 20th April 2018.



      FX News Today

      European Outlook: SNB’s Jordan sees no need for change in policy. The Swiss central bank President told Bloomberg last night that “there is no need to do anything regarding monetary policy at this morning”. Speaking after the CHF broke through the 1.20 per euro mark for the first time since the SNB gave up that ceiling, Jordan said the franc’s drop goes in the “right direction” but added that the currency is still considered a haven and the situation “fragile” and prone to change. So the SNB “remains very prudent” and “convinced that the current monetary policy is still necessary”. Further confirmation that the SNB is firmly on hold while watching also the ECB’s move very closely. If and when the ECB finally starts to reign in its support it will also increase the room for the SNB to manoeuvre. Bloomberg polls predict the first rate hike from the SNB in the last quarter of 2019.

      US Updates: Revealed a Philly Fed rise to 23.2 in April and a 1k initial claims downtick to a slightly-elevated 232k in the BLS survey week of April. The ISM-adjusted Philly Fed beat estimates with only a small April drop to 59.7 from a 45-year high of 61.8 in March, thus outperforming Monday’s Empire State where we saw an April drop to 15.8 from 22.5 with an ISM-adjusted decline to 56.2 from 57.3. For claims, the trend remains tight despite modestly higher readings over the last three weeks, as the moving Easter holiday and school breaks often distort April claims. We still expect a 210k April nonfarm payroll rise. The weekly Bloomberg consumer comfort index hit a third consecutive new cycle-high in mid-April of 58.1, and leading indicators rose 0.3% in March to leave a 22-month stretch without a decline, and a rise in the 6-month annualized reading to a lofty 8.8%

      Charts of the Day



      Main Macro Events Today
        CAD Retail sales – Expectations are for an improvement of 0.5% in February after the 0.3% gain in January. The ex-autos sales aggregate is expected at +0.3% after the 0.9% gain in January. The CPI’s gasoline price index edged 0.7% lower in February after jumping 3.2% in January following a 3.3% drop in December. % m/m inline with expectations CAD CPI – Expect March CPI, due Friday, to expand 0.4% (m/m) after the 0.6% surge in February. The annual growth rate is projected at 2.5% in March, up from the 2.2% y/y pace seen in February that was the fasted rate of CPI growth since the 2.4% pace in October of 2014. The BoC took the recent CPI climb in stride, viewing it as in line with their outlook. The temporary factors that had been restraining inflation, the Bank explained, “have largely dissipated, as expected.” The close to 2% core inflation rates are consistent with an “economy operating with little slack.” Inflation in 2018 is expected to be modestly higher than they expected in January, but due to the transitory impact of higher gas prices and recent minimum wage increases. See the preview. IMF Speeches – Saunders (BOE) Weidmann (Buba) Williams (FOMC) Support & Resistance Levels



      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 HotForex Economic calendar.

      Want to learn to trade and analyse the markets? Join our webinars and get analysis and trading ideas combined with better understanding on how markets work. Click HERE to register for FREE!

      Click HERE to READ more Market news. 


      Stuart Cowell
      Senior Market Analyst
      HotForex


      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.
×

Important Information

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