Page 1 of 1

ADE question

Posted: Jan 12 2010
by nuno-online
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

Posted: Jan 12 2010
by ABC
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

Posted: Jan 12 2010
by nuno-online
Thanks ABC

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

Posted: Jan 12 2010
by nuno-online
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);

Posted: Jan 13 2010
by nuno-online
one idea how to help me?