You almost had it right. I tested the code below and works but note I 
changed the period to 10 bars from 200 so I could test it on my hour 
chart. 

You MUST display this indicator in an hour chart. OR you have to do 
the timeframeset/restore/expand for the inHourly EMA. Then you can 
only use it on an hour or shorter time frame chart. I put the pieces 
together with their timeframe. 

There were two errors.
1. You can't timeframeexpand the short term EMA because you never 
calculated it in a settimeframe. 
2. The lone timeframerestore at the bottom should not be used. You 
calculated the short term EMA on an hour chart. There was no need to 
expand it or restore it.

Try it with 10 bars then change it back to 200 bars. If you get an 
Empty error you don't have enough data in that time frame.

Cheers,
Barry

TimeFrameSet(inDaily);
LongTermEMA = EMA(Close, 10);
TimeFrameRestore();
WriteIf(1,"Daily EMA","");
WriteVal(TimeFrameExpand(LongTermEMA, inDaily));

TimeFrameSet(inHourly * 4);
MediumTermEMA = EMA(Close, 10);
TimeFrameRestore();
WriteIf(1,"4 Hourly EMA","");
WriteVal(TimeFrameExpand(MediumTermEMA, inHourly * 4));

ShortTermEMA = EMA(Close, 10);
WriteIf(1,"Hourly EMA","");
WriteVal(ShortTermEMA);

You may also be able to use 
printf("Daily EMA = " + WriteVal(TimeFrameExpand(LongTermEMA, 
inDaily)));
printf("\n4 Hourly EMA = " + WriteVal(TimeFrameExpand(MediumTermEMA, 
inHourly * 4)));
printf("Hourly EMA = " + WriteVal(ShortTermEMA));

--- In [email protected], Chris Grafham <[EMAIL PROTECTED]> wrote:
>
> 
> I have similar time frame code that is not working as 
expected...for   
> a commentary run against an hourly chart...
> 
> TimeFrameSet(inDaily);
> LongTermEMA = EMA(Close, 200);
> TimeFrameRestore();
> 
> 
> TimeFrameSet(inHourly * 4);
> MediumTermEMA = EMA(Close, 200);
> 
> TimeFrameRestore();
> 
> 
> 
> 
> ShortTermEMA = EMA(Close, 200);
> 
> WriteIf(1,"Daily EMA","");
> WriteVal(TimeFrameExpand(LongTermEMA, inDaily));
> 
> WriteIf(1,"4 Hourly EMA","");
> WriteVal(TimeFrameExpand(MediumTermEMA, inHourly * 4));
> 
> WriteIf(1,"Hourly EMA","");
> WriteVal(TimeFrameExpand(ShortTermEMA, inHourly));
> TimeFrameRestore();
> 
> 
> 
> The output is below (same values for all EMA's).
> 
> Daily EMA
>     1.444
> 4 Hourly EMA
>     1.444
> Hourly EMA
>     1.444
> 
> 
> 
> 
> On 15 Jul 2008, at 11:49, tayamaan wrote:
> 
> > Hi, you will need to restore time-frame, after that 
timeframeExpand
> > and lastly plotting.
> >
> > Cheers,
> >
> > Adrian
> >
> > --- In [email protected], "bilbo0211" <wjdandreta@> wrote:
> > >
> > > I am trying to plot a daily, weekly and monthly indicator (like
> > > Bollinger Bands) on one chart e.g., daily.
> > >
> > > Sample code:
> > >
> > > TimeFrameSet( inWeekly );
> > >
> > > P = ParamField("Price field",-1);
> > > Periods = Param("Periods", 15, 2, 100, 1 );
> > > Width = Param("Width", 2, 0, 10, 0.05 );
> > > Color = ParamColor("Color", colorCycle );
> > > Style = ParamStyle("Style");
> > > Plot( TimeFrameExpand(BBandTop( P, Periods, Width ),inWeekly),
> > > "wBBTop" + _PARAM_VALUES(), Color, Style );
> > > Plot( TimeFrameExpand(BBandBot( P, Periods, Width ),inWeekly),
> > > "wBBBot" + _PARAM_VALUES(), Color, Style );
> > >
> > > This plots something on the daily chart but it is clearly not 
the
> > > weekly BB I see on the weekly chart!
> > >
> > > Any suggestions on how to achieve my objective?
> > >
> > > Bill
> > >
> >
> >
> >
>


Reply via email to