ADE question

Questions about MultiCharts and user contributed studies.
nuno-online
Posts: 166
Joined: 31 Jan 2006
Has thanked: 72 times
Been thanked: 3 times

ADE question

Postby nuno-online » 12 Jan 2010

Hi,
I am using ADE to transfer an indicator information from a daily chart to an intraday chart. That's ok for this

In my 1hour Chart, i have the information (the value of my indicator) for the last daily bar closed.
Is it possible to have the information for this last bar even if the bar isn't closed?

for exemple, today (12 january 2010) i have the daily indicator value for the last bar closed (11 january2001)
I would like to have the daily indicator value for the last bar even if this bar isn't closed (12 january 2010)

is it possible?

NR
Attachments
ADE.png
ADE.png (98.69 KiB) Viewed 143 times

User avatar
ABC
Posts: 518
Joined: 16 Dec 2006
Has thanked: 110 times
Been thanked: 293 times
Contact:

Postby ABC » 12 Jan 2010

Hi nuno-online,

it's doable with EL Collections and as ADE uses the ELC framework, it should be, too.
I don't use ADE, only EL Collections, so my comment might not 100% apply for you: Make sure the indicator values from the daily are stored in the maps each tick and not only at the end of the bar (so you might need intrabarpersist variables).

Regards,
ABC

nuno-online
Posts: 166
Joined: 31 Jan 2006
Has thanked: 72 times
Been thanked: 3 times

Postby nuno-online » 12 Jan 2010

Thanks ABC

in my code i use ADE
where can i find an example with elcollections

nuno-online
Posts: 166
Joined: 31 Jan 2006
Has thanked: 72 times
Been thanked: 3 times

Postby nuno-online » 12 Jan 2010

here is the code i have

the indicator to plot data

Inputs:
Bollinger.Price( Close ), Bollinger.Length( 20 ), Bollinger.NumDevsUp( 2 ), Bollinger.NumDevsDn( -2 );

Variables:
Bollinger.Avg(0),Bollinge r.Sd(0),Bollinger.UpperBa nd(0),Bollinger.LowerBand (0),
//used to pass data to ADE
Class("ADE.Bollinger.Uppe rBand"), InfoMap(MapSN.New),
Class1("ADE.Bollinger.Low erBand"), InfoMap1(MapSN.New),
Ade.Bollinger.UpperBand(0 ), Ade.Bollinger.LowerBand(0 );
Bollinger.Avg = AverageFC( Bollinger.Price, Bollinger.Length) ;
Bollinger.Sd = StandardDev( Bollinger.Price, Bollinger.Length, 1 ) ;
Bollinger.UpperBand = Bollinger.Avg + Bollinger.NumDevsUp* Bollinger.Sd;
Bollinger.LowerBand = Bollinger.Avg + Bollinger.NumDevsDn* Bollinger.Sd;

Plot1(Bollinger.Avg, "MidLine",darkgray) ;

Condition1 = Bollinger.UpperBand >= Bollinger.UpperBand[1];
Condition2 = Bollinger.LowerBand >= Bollinger.LowerBand[1];
If Condition1 then
begin
Plot2[1]( Bollinger.UpperBand[1], "UpperBand",green);
Plot2( Bollinger.UpperBand, "UpperBand",green);
end
else
begin
Plot2[1]( Bollinger.UpperBand[1], "UpperBand",red);
Plot2( Bollinger.UpperBand, "UpperBand",red);
end;
If Condition2 then
begin
Plot3[1]( Bollinger.LowerBand[1], "LowerBand",green);
Plot3( Bollinger.LowerBand, "LowerBand",green);
end
else
begin
Plot3[1]( Bollinger.LowerBand[1], "LowerBand",red);
Plot3( Bollinger.LowerBand, "LowerBand",red);
end;

// Retrieve the info for the current symbol and bar interval into InfoMap
Value33 = ADE.GetBarInfo(Class, GetSymbolName, ADE.Daily, ADE.BarID, InfoMap);
Value44 = ADE.GetBarInfo(Class1, GetSymbolName, ADE.Daily, ADE.BarID, InfoMap1);
// Fetch the values from the InfoMap into variables
Ade.Bollinger.UpperBand = MapSN.Get(InfoMap, "ADE.Bollinger.UpperBand" );
Ade.Bollinger.LowerBand = MapSN.Get(InfoMap1, "ADE.Bollinger.LowerBand" );
Plot4(Ade.Bollinger.Upper Band, "Ade.BB.Up");
Plot5(Ade.Bollinger.Lower Band, "Ade.BB.Dn");

the indicator to save data

Inputs:
Bollinger.Price( Close ), Bollinger.Length( 20 ), Bollinger.NumDevsUp( 2 ), Bollinger.NumDevsDn( -2 );

Variables:
Bollinger.Avg(0),Bollinge r.Sd(0),Bollinger.UpperBa nd(0),Bollinger.LowerBand (0),
//used to pass data to ADE
Class("ADE.Bollinger.Uppe rBand"), InfoMap(MapSN.New),
Class1("ADE.Bollinger.Low erBand"), InfoMap1(MapSN.New),
Ade.Bollinger.UpperBand(0 ), Ade.Bollinger.LowerBand(0 );
Bollinger.Avg = AverageFC( Bollinger.Price, Bollinger.Length) ;
Bollinger.Sd = StandardDev( Bollinger.Price, Bollinger.Length, 1 ) ;
Bollinger.UpperBand = Bollinger.Avg + Bollinger.NumDevsUp* Bollinger.Sd;
Bollinger.LowerBand = Bollinger.Avg + Bollinger.NumDevsDn* Bollinger.Sd;

Plot1(Bollinger.Avg, "MidLine",darkgray) ;

Condition1 = Bollinger.UpperBand >= Bollinger.UpperBand[1];
Condition2 = Bollinger.LowerBand >= Bollinger.LowerBand[1];
If Condition1 then
begin
Plot2[1]( Bollinger.UpperBand[1], "UpperBand",green);
Plot2( Bollinger.UpperBand, "UpperBand",green);
end
else
begin
Plot2[1]( Bollinger.UpperBand[1], "UpperBand",red);
Plot2( Bollinger.UpperBand, "UpperBand",red);
end;
If Condition2 then
begin
Plot3[1]( Bollinger.LowerBand[1], "LowerBand",green);
Plot3( Bollinger.LowerBand, "LowerBand",green);
end
else
begin
Plot3[1]( Bollinger.LowerBand[1], "LowerBand",red);
Plot3( Bollinger.LowerBand, "LowerBand",red);
end;

//ADE
// Put the information we want to store in our InfoMap
Value1 = MapSN.Put(InfoMap, "ADE.Bollinger.UpperBand" , Bollinger.UpperBand);
Value2 = MapSN.Put(InfoMap1, "ADE.Bollinger.LowerBand" , Bollinger.LowerBand);
// Tell ADE to store this info for the current symbol and bar interval
Value1 = ADE.PutBarInfo(Class, GetSymbolName, ADE.Daily, ADE.BarID, InfoMap);
Value2 = ADE.PutBarInfo(Class1, GetSymbolName, ADE.Daily, ADE.BarID, InfoMap1);

nuno-online
Posts: 166
Joined: 31 Jan 2006
Has thanked: 72 times
Been thanked: 3 times

Postby nuno-online » 13 Jan 2010

one idea how to help me?


Return to “MultiCharts”